Jak mohu najít svou interní adresu IP?

161

Mám nainstalovaný Ubuntu server 12.04, takže nemám GUI. Když udělám příkaz ifconfig, nemohu najít interní IP adresu. Říká to inet addr: 127.0.0.1.

Zde je výstupifconfig -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)

Zde jsou obsahy etc / network / interfaces:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

Pokud by to někdo mohl upravit, obsahy etc / network / rozhraní by měly být na samostatných řádcích.

Výstup hostingu askubuntu.com byl:

;; connection timed out; no servers could be reached.

Před několika měsíci jsem nastavil vlastní cloud a webmin a používal jsem je měsíčně bez problémů. Myslím, že před dvěma měsíci byla síla vypnuta a až do včerejška jsem server nikdy neotočil. Neudělal jsem nic, co by ovlivnilo nastavení internetu Nevím, proč to už nefunguje. Pokud jde o síťovou topologii, mám pro PC síťovou kartu PCI. Ethernetová linka přechází ze síťové karty do přepínače a odtud pak do modemu / směrovače.

    
dané Cam Jones 07.03.2014 14:20

8 odpovědí

161

Tyto příkazy vám oznámí všechny informace o síti

ifconfig -a

nebo

ip addr show

Pokud říkáte, že má pouze 127.0.0.1, pak jsou dvě možnosti:

  1. Síťová karta není připojena nebo není rozpoznána systémem

  2. Váš síťový DHCP server není spuštěn nebo není připojen

odpověděl kamil 07.03.2014 14:32
166

To je to, co v současné době doporučuji:

ip route get 8.8.8.8 | awk '{print $NF; exit}'

Výhodou tohoto příkazu je, že nemusíte vědět, které rozhraní používáte (eth0? eth1? nebo možná wlan0?), nemusíte filtrovat adresy localhost nebo adresy Docker nebo VPN tunelů apod. a vždy dostanete adresu IP, která se v současné době používá pro připojení k internetu (důležité například v případě, že jste připojeni k síti ethernet a WiFi nebo přes VPN atd.).

Testuje nejen to, že máte správně nakonfigurovanou IP adresu (například při analýze výstupuifconfig), ale také, že máte směrovací tabulku nakonfigurovanou pro správné použití.

Našel jsem tento nápad v tato odpověď Collin Anderson .

Používám jej ve skriptu internip v Sbírka skriptů v GitHubu , s nimiž můžete nainstalovat:

wget https://rawgit.com/rsp/scripts/master/internalip
chmod a+x internalip

a použijte jako:

internalip

nebo:

internalip TARGET

a dostanete vaši IP adresu, která bude použita pro připojení s adresou TARGET IP . Výchozí cíl je8.8.8.8, což je veřejný vyhledávač DNS společnosti Google a dobré výchozí nastavení pro Internet.

Ale pokud ji spustíte jinou IP:

internalip 127.2.3.4

Pak dostanete:

127.0.0.1

, protože to je vaše IP adresa, která by byla použita pro připojení s 127.2.3.4 na rozhraní zpětné vazby. Je to užitečné, pokud je váš cíl v síti LAN, VPN nebo jiné speciální síti, a v takovém případě by se pro připojení mohlo použít jiné IP než standardní IP pro přístup k Internetu.

Externí IP

Chcete-li zkontrolovat svou IP adresu externí (ten, který se na vašem serveru zobrazují, když se k nim připojujete - což se může lišit od zde popsané interní IP adresy) viz tuto odpověď .

    
odpověděl rsp 03.04.2015 04:49
136

hostname -I

Toto vám poskytne pouze adresu IP bez dalších informací.

    
odpověděl Sarath Somana 25.08.2015 08:29
18

Myslím, že stojí za zmínku, že spuštění ifconfig společně s volbou -a zobrazí všechna rozhraní bez ohledu na to, zda má rozhraní IP.

spuštěním ifconfig samotného se zobrazí pouze rozhraní s přiřazenými IP adresami.

Zde je pěkný trik, který můžete použít k zobrazení pouze adresy IP pomocí Perl.

# ifconfig | perl -nle'/dr:(\S+)/ && print '
192.168.1.100
127.0.0.1

Síťová karta je rozpoznána systémem, proč se zobrazuje eth0 a eth1

Zde je rychlý způsob přiřazení IP k vašemu rozhraní, použijte odpovídající IP / Subnet.

 ifconfig eth0 192.168.1.200/24 up 

pak musíme přidat výchozí trasu

route add default gw 192.168.1.1

Nejlepší,

    
odpověděl user1007727 07.03.2014 22:17
8

Tento příkaz zobrazí všechny adresy IP pro jedno zařízení:

dev=eth0
ip addr show $dev | awk '/inet/ {print }' | cut -d/ -f1

Vytiskne jeden nebo dva řádky výstupu. První je adresa inet / IPv4 a druhá je inet6 / IPv6, pokud je váš systém nakonfigurován tak, aby tuto podporu podporoval.

    
odpověděl Aaron Digulla 24.10.2014 16:14
5

V případě, že příkazifconfig nezobrazil adresu IP, je velmi jednoduchý a snadný způsob, jak zjistit adresu IP zařízení Ubuntu prostřednictvím grafického uživatelského rozhraní. Postupujte podle následujících kroků:

Klikněte na ikonu sítě v oznamovací oblasti a klikněte na Informace o připojení . p>

Zobrazí se okno s několika informacemi, včetně adresy IP.

    
odpověděl Ibungo 24.09.2015 15:09
1

Existuje spousta dobrých odpovědí, z nichž si můžete vybrat, ale myslel jsem, že bych poukázal na facter , který je obvykle, ale ne nutně používán s loutkou pro shromažďování různých faktů o systému. Hlavní výhodou factera je to, že poskytuje čistý čistý výstup, který vám ušetří všechny manipulace sgrep,sed,awk,cut,perl atd. Nechce vám říct, které rozhraní, které vás zajímá, ale pokud víte, pak vám následující informace poskytují IP bez dalších kroků k vyčištění:

facter ipaddress_eth0 
    
odpověděl mc0e 28.11.2015 16:11
1

příkaz ip

Zde je variace naip addr way.

ip má možnost-o, která umožňuje zadávat všechny informace na jeden řádek - to je užitečné při analýze pomocí nástrojů jakoawk neboperl. V kombinaci s volbou-4 uvidíme pouze adresy IPv4. Výstup by tedy vypadal takto (poznámka - nahraďte wlan7 rozhraním, které chcete zkontrolovat):

$ ip -4 -o addr show wlan7
3: wlan7    inet 192.168.0.78/24 brd 192.168.0.255 scope global dynamic wlan7\       valid_lft 85654sec preferred_lft 85654sec

Jak vidíte, adresa IP je ve sloupci / slovo na výstupu. Zbytek je jednoduché cvičení pro analýzu pomocí nástroje podle vašeho výběru. Zde používám Python:

ip -4 -o addr show wlan7 | python -c "import sys;print sys.stdin.readlines()[0].split()[3]" 

Stejná věc, pouze zde s řetězem<<< a nahrazení příkazu$()

python -c "import sys;print sys.stdin.readlines()[0].split()[3]"  <<< $(ip -4 -o addr show wlan7)

Osobně jsem toto uložil jako pěknou funkci v mém~/.bashrc, takže je méně psáno.

wlan_ip() {
    ip -4 -o addr show wlan7 | python -c "import sys;print sys.stdin.readlines()[0].split()[3]" 
} 

Verze Perlu a Ruby je o něco kratší:

$ ip -4 -o addr show  wlan7 | perl -lane 'print $F[3]'                         
192.168.0.78/24

$ ip  -4 -o addr show wlan7 | ruby -n -e 'print $_.split()[3]'                 
192.168.0.78/24

Wireshark

Pokud jste obeznámeni s použitím nástrojů síťové analýzy, pravděpodobně víte, že pro získání vaší adresy IP stačí jen vymazat mezipaměť prohlížeče, spustit zachycení Wireshark na konkrétním rozhraní a vyhledat httpGET přenosu paketů. Cílový sloupec zobrazí vaši adresu IP

    
odpověděl Sergiy Kolodyazhnyy 04.09.2016 20:32