Odpowiedzi:
/sbin/ifconfig -a
inet addr
?
Możesz użyć:
/bin/ip addr
ifconfig
jest teraz wprowadzany w fazę.
ip a
.
Jeśli masz używany wewnętrzny adres, sprawdź
curl http://myip.dnsomatic.com
może być dobrym pomysłem na powłoki uniksowe.
Lub po prostu podłącz ten adres URL do przeglądarki.
Jeśli masz inną odpowiedź od „ ifconfig -a
” efekcie dał swój adres wewnętrzny - co prawdopodobnie nie będzie pracy z zewnątrz.ifconfig
Nawet jeśli wszystko wydaje się w porządku, możesz mieć zaporę ogniową, która uniemożliwia przychodzące połączenia ssh .
W którym momencie powinieneś wypróbować interesujący port z przeglądarki na komputerze w,
http://www.canyouseeme.org/
To potwierdzi łączność poprzez,
curl http://myip.dnsomatic.com
curl ifconfig.me
/bin/hostname -i
hostname --all-ip-addresses
. Wyświetl wszystkie adresy sieciowe hosta. Ta opcja wylicza wszystkie skonfigurowane adresy we wszystkich interfejsach sieciowych. Interfejs pętli zwrotnej i adresy lokalne łącza IPv6 są pomijane. W przeciwieństwie do opcji -i, ta opcja nie zależy od rozpoznawania nazw. Nie przyjmuj żadnych założeń dotyczących kolejności danych wyjściowych.
/bin/hostname -I
/bin/hostname -i
po prostu daje 127.0.1.1
, co jest bezużyteczne.
/sbin/ifconfig|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}'
Jeśli potrzebujesz adresu wewnętrznego, dodaj interfejs po ifconfig, np
/sbin/ifconfig eth0|grep inet|head -1|sed 's/\:/ /'|awk '{print $3}'
Jeśli jesteś za NAT i potrzebujesz publicznego adresu IP, użyj tego:
wget -q -O - checkip.dyndns.org | sed -e 's /. Aktualny adres IP: // '-e' s / <. $ // ”
pochodzi z: http://www.go2linux.org/what-is-my-public-ip-address-with-linux
Jeśli chcesz dowiedzieć się, jaki jest adres IP routera, możesz uruchomić to polecenie.
dig + short myip.opendns.com @ 208.67.222.222 @ 208.67.220.220
Jeśli używasz OpenDNS dla swojego serwera dns, możesz go skrócić do:
dig + short myip.opendns.com
Możesz także użyć tego polecenia.
curl http://myip.dnsomatic.com
Jeśli masz wiele interfejsów, przydatne może być określenie, który z nich ma mieć adres IP. jeśli chcesz adres IPV4 interfejsu „eth0”:
ip addr show dev eth0 | grep "inet " | awk '{ print $2 }'
jeśli chcesz adres IPV6 interfejsu „eth0”:
ip addr show dev eth0 | grep "inet6 " | awk '{ print $2 }'
jeśli chcesz wyszukać adres IP między dwoma typowymi interfejsami laptopa, wlan0 i eth0:
CURRENT_IP=''
for INTERFACE in wlan0 eth0; do
if [ -z $CURRENT_IP ]; then
CURRENT_IP=$(ip addr show dev $INTERFACE | grep "inet " | awk '{ print $2 }')
fi
done
Po prostu zwiń tę stronę :
$ curl wtfismyip.com/text
Oto jeden wiersz, który działa również w systemie Linux i OS X i zwróci pierwszy adres, który nie jest lokalny:
ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p'
Wyślij kredyty na /programming//a/13322549/99834
LOCAL_IP=`/bin/hostname -I | sed 's/ //g'`
Najłatwiej jest to zrobić
ifconfig eth0
zakładając, że urządzenie ma pojedynczy adres IP w domyślnym interfejsie przewodowym - może być potrzebne
ifconfig wlan0
jeśli jest na Wi-Fi.
Rozumiem, że chcesz podłączyć zdalną maszynę Ubuntu, która ma dynamiczny adres IP. Wejdź na stronę dyndns.org i otwórz bezpłatne konto. Następnie na zdalnej maszynie musisz zainstalować dynamiczne narzędzie ip.
sudo aptitude install dyndns-client
dzięki czemu możesz ssh zdalnej maszyny za pośrednictwem
ssh username@yourdynamicnamealias.dyndns.org
Po konfiguracji nigdy nie będziesz potrzebować adresu IP zdalnego komputera.
jeśli potrzebujesz tylko jednego adresu IP danego interfejsu, możesz:
ifconfig eth0 | grep "inet " | awk '{gsub("addr:","",$2); print $2 }'
Kiedyś grałem w ekstrakcję adresu IP w systemie Linux:
http://www.catonmat.net/blog/golfing-the-extraction-of-ip-addresses-from-ifconfig/
Jeśli szukasz publicznego adresu IP skrzynki , możesz użyć następujących opcji:
dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \"
Możesz użyć dig(1)
opcji takich jak -4
lub, -6
aby szukać adresu IPv4 lub IPv6; Google udzieli odpowiedzi w formie TXT
typu, która będzie zawierać cytaty, gdy zostaną przedstawione przez dig
; jeśli chcesz później użyć zmiennej z narzędziami takimi jak traceroute
, musisz użyć czegoś takiego jak tr (1), aby usunąć wspomniane cudzysłowy.
Inne opcje obejmują whoami.akamai.net
i myip.opendns.com
, które odpowiadają za pomocą A
i AAAA
zapisuje (zamiast TXT
jak w powyższym przykładzie od Google), więc nie wymagają usuwania cytatów:
dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short
dig -4 @resolver1.opendns.com -t any myip.opendns.com +short
dig -6 @resolver1.opendns.com -t any myip.opendns.com +short
Oto przykładowy skrypt, który wykorzystuje wszystkie powyższe opcje do ustawienia zmiennych:
#!/bin/sh
IPANY="$(dig @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
GOOGv4="$(dig -4 @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
GOOGv6="$(dig -6 @ns1.google.com -t txt o-o.myaddr.l.google.com +short | tr -d \")"
AKAMv4="$(dig -4 @ns1-1.akamaitech.net -t a whoami.akamai.net +short)"
CSCOv4="$(dig -4 @resolver1.opendns.com -t a myip.opendns.com +short)"
CSCOv6="$(dig -6 @resolver1.opendns.com -t aaaa myip.opendns.com +short)"
printf '$GOOG:\t%s\t%s\t%s\n' "${IPANY}" "${GOOGv4}" "${GOOGv6}"
printf '$AKAM:\t%s\n$CSCO:\t%s\t%s\n' "${AKAMv4}" "${CSCOv4}" "${CSCOv6}"
Jeśli szukasz prywatnego adresu IP lub zestawu wszystkich adresów IP przypisanych do skrzynki, możesz użyć kombinacji ifconfig
(na BSD i GNU / Linux), ip addr
(na GNU / Linux), hostname
(opcje -i
i -I
na GNU / Linux) i netstat
zobaczyć, co się dzieje.
vi /etc/network/interfaces
i ustaw interfejs nastatic
(patrz help.ubuntu.com/8.10/serverguide/C/network-configuration.html )