Come trovo il mio indirizzo IP interno?

156

Ho installato il server Ubuntu 12.04, quindi non ho GUI. Quando eseguo il comando ifconfig, non riesco a trovare il mio indirizzo IP interno. Dice in-addr: 127.0.0.1.

Ecco l'output di 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)

qui ci sono i contenuti di etc / network / interfaces:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

Se qualcuno potesse modificarlo per me, il contenuto di etc / network / interfaces dovrebbe essere su righe separate.

L'output dell'host askubuntu.com era:

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

Ho creato owncloud e webmin alcuni mesi fa e li stavo usando per un mese senza problemi. Penso che il potere sia esploso un giorno 2 mesi fa e non ho mai acceso il server fino a ieri. Non ho fatto nulla che avrebbe influenzato la configurazione di Internet Quindi non sono sicuro del motivo per cui non funziona più. Per quanto riguarda la mia topologia di rete, ho una scheda di rete pci-e per il pc. La linea ethernet passa dalla scheda di rete a uno switch e quindi a un modem / router da lì.

    
posta Cam Jones 07.03.2014 - 14:20
fonte

8 risposte

154

Questi comandi ti diranno tutte le informazioni di rete

ifconfig -a

o

ip addr show

Se come dici tu solo ti dà 127.0.0.1 poi ci sono due opzioni:

  1. La tua scheda di rete non è stata allegata o non è stata riconosciuta dal sistema

  2. Il tuo server DHCP di rete non è runnning o non connesso

risposta data kamil 07.03.2014 - 14:32
fonte
162

Questo è quello che attualmente raccomando:

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

Il vantaggio di questo comando è che non devi sapere quale interfaccia stai usando (eth0? eth1? o forse wlan0?), non devi filtrare gli indirizzi localhost, o gli indirizzi Docker o VPN tunnel ecc. e riceverai sempre l'indirizzo IP attualmente utilizzato per le connessioni Internet in quel preciso momento (importante se ad es. sei connesso sia con ethernet e wifi o tramite VPN ecc.).

Questo verificherà non solo che hai configurato un IP corretto su alcune interfacce (come con l'analisi dell'output di ifconfig ) ma anche che hai la tabella di routing configurata per usarlo correttamente.

Ho trovato questa idea in questa risposta di Collin Anderson .

Lo uso nello script internalip in mia raccolta di script su GitHub , che puoi installare con:

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

e usare come:

internalip

o

internalip TARGET

e riceverai il tuo indirizzo IP che verrebbe utilizzato per connettere con l'indirizzo IP TARGET . Il target predefinito è 8.8.8.8 che è il resolver DNS pubblico di Google e un buon valore predefinito per Internet.

Ma se lo esegui con un IP diverso:

internalip 127.2.3.4

Quindi otterrai:

127.0.0.1

perché questo è il tuo indirizzo IP che verrebbe utilizzato per connettere con 127.2.3.4 nell'interfaccia di loopback. È utile quando il tuo obiettivo è su una rete LAN, VPN o altra rete speciale, nel qual caso potrebbe essere utilizzato un altro IP per le connessioni rispetto all'IP predefinito per raggiungere Internet.

IP esterno

Per controllare l'indirizzo IP esterno (quello che i server su Internet vedono quando ti connetti a loro - che potrebbe essere diverso dall'indirizzo IP interno qui descritto) vedi questa risposta .

    
risposta data rsp 03.04.2015 - 04:49
fonte
131
hostname -I

Questo ti darà solo l'indirizzo IP senza ulteriori informazioni.

    
risposta data Sarath Somana 25.08.2015 - 08:29
fonte
18

Penso che valga la pena ricordare che l'esecuzione di ifconfig con l'opzione -a visualizzerà tutte le interfacce sia che l'interfaccia abbia o meno un IP.

che esegue ifconfig da solo, mostrerà solo le interfacce con gli IP assegnati.

Ecco un bel trucco che potresti usare per mostrare solo gli IP usando Perl.

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

La tua scheda di rete è riconosciuta dal sistema, questo perché mostra eth0 e eth1

ecco un modo rapido per assegnare l'IP alla tua interfaccia, utilizzare di conseguenza un IP / subnet valido.

 ifconfig eth0 192.168.1.200/24 up 

quindi dobbiamo aggiungere una route predefinita

route add default gw 192.168.1.1

Best,

    
risposta data user1007727 07.03.2014 - 22:17
fonte
8

Questo comando mostrerà tutti gli indirizzi IP per un singolo dispositivo:

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

Stampa una o due righe di output. Il primo è l'indirizzo inet / IPv4 e l'altro è inet6 / IPv6 se il tuo sistema è configurato per supportarlo.

    
risposta data Aaron Digulla 24.10.2014 - 16:14
fonte
5

Nel caso in cui il comando ifconfig non mostrasse l'indirizzo IP, c'è un modo molto semplice e facile per scoprire l'indirizzo IP della macchina Ubuntu attraverso la GUI. Segui i passaggi di seguito:

Fai clic sull'icona di rete nell'area di notifica e fai clic su Informazioni sulla connessione .

Questo fa apparire una finestra che ha alcune informazioni, incluso l'indirizzo IP.

    
risposta data Ibungo 24.09.2015 - 15:09
fonte
1

Qui ci sono molte buone risposte da scegliere, ma ho pensato di far notare facter che di solito è, ma non necessariamente usato con puppet per raccogliere vari fatti sul sistema. Il vantaggio principale di facter è che fornisce un output pulito e pulito che ti salva tutta la manipolazione con grep , sed , awk , cut , perl , ecc. Non ti dirà quale all'interfaccia a cui sei interessato, ma se lo sai, allora il seguente ti dà l'IP senza altri cruft da ripulire:

facter ipaddress_eth0 
    
risposta data mc0e 28.11.2015 - 16:11
fonte
1

comando ip

Ecco una variazione su ip addr modo.

ip ha l'opzione -o che consente di mettere tutte le informazioni su una sola riga - questo è utile per l'analisi con strumenti come awk o perl . In combinazione con l'opzione -4 , vedremo solo gli indirizzi IPv4. Quindi, l'output dovrebbe essere qualcosa di simile (nota: sostituire wlan7 con l'interfaccia che si desidera controllare):

$ 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

Come puoi vedere, l'indirizzo IP è 4 ° colonna / parola nell'output. Il resto è semplice esercizio di parsing tramite lo strumento di tua scelta. Qui, sto usando python:

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

Stessa cosa, solo con qui stringa <<< e comando di sostituzione $()

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

Personalmente, ho salvato questa funzione come una bella funzione nel mio ~/.bashrc , in modo da ridurre la digitazione.

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

Le versioni di Perl e Ruby sono un po 'più brevi:

$ 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

Se hai familiarità con gli strumenti di analisi della rete, probabilmente sai che per ottenere il tuo indirizzo IP, tutto ciò che devi fare è cancellare la cache del browser, avviare l'acquisizione di Wireshark sull'interfaccia specifica e cercare http GET pacchetti trasmessi. La colonna di destinazione mostrerà il tuo indirizzo ip

    
risposta data Sergiy Kolodyazhnyy 04.09.2016 - 20:32
fonte

Leggi altre domande sui tag