Mam zainstalowany serwer Ubuntu 12.04, więc nie mam GUI. Kiedy wykonam polecenie ifconfig, nie mogę znaleźć mojego wewnętrznego adresu IP. Mówi inet addr: 127.0.0.1.
Oto wynik ifconfig -a
:
eth0 link encap:Ethernet HWaddr 00:06:4f:4a:66:f0
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
eth1 link encap:Ethernet HWaddr 00:16:ec:05:c8:9c
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
lo Link encap:Local Loopback
inet addr 127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:1800 errors:0 dropped:0 overruns:0 frame:0
Tx packets:1800 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:143896 (143.b KB) TX bytes:143896 (143.8 KB)
oto zawartość etc / network / interfaces:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
Jeśli ktoś mógłby to dla mnie edytować, zawartość etc / network / interfaces powinna znajdować się w osobnych wierszach.
Dane wyjściowe hosta askubuntu.com to:
;; connection timed out; no servers could be reached.
Kilka miesięcy temu utworzyłem własną chmurę i webmin i korzystałem z nich przez miesiąc bez żadnych problemów. Myślę, że zasilanie wyłączyło się 2 dni temu i nigdy nie włączyłem serwera aż do wczoraj. Nie zrobiłem nic, co wpłynęłoby na konfigurację Internetu, więc nie jestem pewien, dlaczego to już nie działa. Jeśli chodzi o moją topologię sieci, mam kartę sieciową pci-e na PC. Linia Ethernet przechodzi z karty sieciowej do przełącznika, a następnie stamtąd do modemu / routera.
źródło
/etc/network/interfaces
?ls
wyświetli listę plików w katalogu.ls -l
poda szczegółową listę. Aby wyświetlić zawartość danego kataloguls -l /etc/network
. Aby przejść do katalogu i zawartości listycd /etc/network ;ls -l
. Aby przeczytać zawartośćetc/network/interfaces
(jest to plik)sudo pico /etc/network/interfaces
. (pico
jest lekkim edytorem tekstu - dobrym do czytania i podstawowej edycji oraz mniej onieśmielającym niżvi
.)Odpowiedzi:
Te polecenia pokażą wszystkie informacje o sieci
lub
Jeśli, jak mówisz, daje tylko 127.0.0.1, to są dwie opcje:
Twoja karta sieciowa nie jest podłączona lub nie jest rozpoznawana przez system
Twój sieciowy serwer DHCP nie działa lub nie jest podłączony
źródło
ip
opcję , a potem ( przestarzałą ) później.ifconfig
To da ci tylko adres IP bez żadnych dodatkowych informacji.
źródło
10.0.2.15 172.18.0.1 172.17.0.1 172.20.0.1 172.21.0.1 172.22.0.1 172.19.0.1
ponieważ korzystam z niektórych kontenerów Docker;)Oto, co obecnie polecam:
ip route get 8.8.8.8 | awk '{print $NF; exit}'
Zaletą tego polecenia jest to, że nie musisz wiedzieć, którego interfejsu używasz (eth0? Eth1? A może wlan0?), Nie musisz odfiltrowywać adresów hosta lokalnego, adresów dokerów, tuneli VPN itp. i zawsze otrzymasz adres IP, który jest aktualnie używany do połączeń internetowych w tym momencie (ważne, gdy np. masz połączenie zarówno z siecią Ethernet, jak i Wi-Fi lub przez VPN itp.).
To przetestuje nie tylko to, czy masz poprawny adres IP skonfigurowany na jakimś interfejsie (np. Z analizowaniem danych wyjściowych
ifconfig
), ale także, czy masz skonfigurowaną tabelę routingu, aby używać go poprawnie.Uważam, że pomysł w tej odpowiedzi przez Collin Anderson .
Używam go w skrypcie Internalip w mojej kolekcji skryptów na GitHub , którą możesz zainstalować za pomocą:
i użyj jako:
lub:
a otrzymasz adres IP, który byłby używany do łączenia się z adresem IP TARGET . Domyślnym celem jest
8.8.8.8
co jest rozpoznawania nazw DNS publicznej Google'a i dobry domyślny dla Internetu.Ale jeśli uruchomisz go z innym adresem IP:
Otrzymasz wtedy:
ponieważ to jest twój adres IP, który byłby używany do połączenia z 127.2.3.4 na interfejsie pętli zwrotnej. Jest to przydatne, gdy twój cel znajduje się w sieci LAN, VPN lub innej specjalnej sieci, w którym to przypadku do połączenia z Internetem można użyć innego adresu IP niż domyślny adres IP.
Zewnętrzny adres IP
Aby sprawdzić swój zewnętrzny adres IP (ten, który widzą serwery w Internecie podczas łączenia się z nimi - który może być inny niż opisany tutaj wewnętrzny adres IP), zapoznaj się z tą odpowiedzią .
źródło
8.8.8.8
jest to tylko domyślny. W mojej odpowiedzi posłużyłem127.2.3.4
jako przykład. Możesz użyć również adresu IP w intranecie lub sieci VPN. Chodzi o to, że zwykle nie masz jednego wewnętrznego adresu IP, ale kilka różnych adresów używanych do różnych celów. W ten sposób możesz znaleźć ten, który jest faktycznie używany do połączeń z danym celem.Myślę, że warto wspomnieć, że uruchomienie ifconfig wraz z opcją -a wyświetli wszystkie interfejsy bez względu na to, czy interfejs ma adres IP.
działający sam ifconfig, wyświetli tylko interfejsy z przypisanymi adresami IP.
Oto fajna sztuczka, której można użyć do wyświetlenia tylko adresów IP za pomocą Perla.
Twoja karta sieciowa jest rozpoznawana przez system, dlatego pokazuje et0 i eth1
Oto szybki sposób przypisania adresu IP do interfejsu, odpowiednio użyj prawidłowego adresu IP / podsieci.
następnie musimy dodać domyślną trasę
Najlepsza,
źródło
To polecenie pokaże wszystkie adresy IP dla pojedynczego urządzenia:
Wydrukuje jeden lub dwa wiersze wyniku. Pierwszy to adres inet / IPv4, a drugi to inet6 / IPv6, jeśli system jest skonfigurowany do obsługi tego.
źródło
W przypadku, gdy
ifconfig
polecenie nie wyświetlało adresu IP, istnieje bardzo prosty i łatwy sposób na znalezienie adresu IP maszyny Ubuntu poprzez GUI. Wykonaj poniższe kroki:Kliknij ikonę sieci w obszarze powiadomień, a następnie kliknij Informacje o połączeniu .
Spowoduje to wyświetlenie okna zawierającego pewne informacje, w tym adres IP.
źródło
Istnieje już wiele dobrych odpowiedzi do wyboru, ale pomyślałem, że zwrócę uwagę na faktor, który jest zwykle, ale niekoniecznie używany z marionetką do zbierania różnych faktów na temat systemu. Główną zaletą jest to, że facter daje ładne czyste wyjście, które oszczędza Ci wszystkie manipulacje z
grep
,sed
,awk
,cut
,perl
, itd. To jest nie powie ci, który interfejs jesteś zainteresowany, ale jeśli wiesz, że to następujące daje adres IP bez innych cruft do czyszczenia:źródło
polecenie ip
Oto jedna z odmian
ip addr
.ip
ma-o
opcję, która pozwala umieścić wszystkie informacje w jednym wierszu - jest to przydatne do analizowania za pomocą narzędzi takich jakawk
lubperl
. W połączeniu z-4
opcją zobaczymy tylko adresy IPv4. Zatem wynik byłby mniej więcej taki (uwaga - zamień wlan7 na interfejs, który chcesz sprawdzić):Jak widać, adres IP to 4. kolumna / słowo na wyjściu. Reszta to proste analizowanie za pomocą wybranego narzędzia. Tutaj używam Pythona:
To samo, tylko z tym
<<<
zastąpieniem ciągów i poleceń$()
Osobiście mam to zapisane jako fajną funkcję w moim,
~/.bashrc
więc mniej pisania jest zrobione.Wersje Perla i Ruby są nieco krótsze:
Wireshark
Jeśli znasz się na korzystaniu z narzędzi do analizy sieci, prawdopodobnie wiesz, że aby uzyskać adres IP, wystarczy wyczyścić pamięć podręczną przeglądarki, uruchomić przechwytywanie Wireshark na określonym interfejsie i poszukać
GET
przesyłanych pakietów http . Kolumna docelowa pokaże twój adres IPźródło