Comment trouver mon adresse IP interne?

155

J'ai le serveur Ubuntu 12.04 installé, donc je n'ai aucune interface graphique. Lorsque je fais la commande ifconfig, je ne trouve pas mon adresse IP interne. Il dit inet addr: 127.0.0.1.

Voici le résultat de 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)

voici le contenu de etc / network / interfaces:

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

Si quelqu'un pouvait modifier ceci pour moi, le contenu de etc / network / interfaces devrait être sur des lignes séparées.

La sortie de l’hôte askubuntu.com était:

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

J'ai créé owncloud et webmin il y a quelques mois et je les utilisais depuis un mois sans aucun problème. Je pense que l’alimentation s’est éteinte il ya deux mois et que je n’ai jamais rallumé le serveur avant hier. Je n'ai rien fait qui aurait affecté la configuration d'Internet Donc je ne sais pas pourquoi cela ne fonctionne plus. En ce qui concerne la topologie de mon réseau, j'ai une carte réseau PCI-E pour le PC. La ligne Ethernet passe de la carte réseau à un commutateur, puis à un modem / routeur.

    
posée Cam Jones 07.03.2014 - 14:20
la source

8 réponses

152

Ces commandes vous indiqueront toutes les informations sur le réseau

ifconfig -a

ou

ip addr show

Si, comme vous le dites, vous ne donnez que 127.0.0.1, il y a deux options:

  1. Votre carte réseau n’est pas connectée ou n’est pas reconnue par le système

  2. Votre serveur DHCP de réseau n'est pas exécuté ou n'est pas connecté

réponse donnée kamil 07.03.2014 - 14:32
la source
162

Voici ce que je recommande actuellement:

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

L'avantage de cette commande est que vous n'avez pas besoin de savoir quelle interface vous utilisez (eth0? eth1? ou peut-être wlan0?), vous n'avez pas besoin de filtrer les adresses localhost ou les adresses Docker ou VPN tunnels, etc. et vous obtiendrez toujours l’adresse IP actuellement utilisée pour les connexions Internet à ce moment-là (important lorsque vous êtes connecté à la fois avec Ethernet et wifi ou via VPN, etc.).

Cela testera non seulement que vous avez une adresse IP correcte configurée sur une interface (comme lors de l'analyse syntaxique de la sortie de ifconfig ) mais également que la table de routage est configurée pour l'utiliser correctement.

J'ai trouvé cette idée dans cette réponse par Collin Anderson .

Je l’utilise dans le script internalip dans my collection de scripts sur GitHub , que vous pouvez installer avec:

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

et utiliser comme:

internalip

ou:

internalip TARGET

et vous obtiendrez votre adresse IP qui sera utilisée pour vous connecter à l’adresse IP TARGET . La cible par défaut est 8.8.8.8 , c'est-à-dire le résolveur DNS public de Google et une valeur par défaut Internet.

Mais si vous l'exécutez avec une adresse IP différente:

internalip 127.2.3.4

Ensuite, vous obtiendrez:

127.0.0.1

car c'est votre adresse IP qui serait utilisée pour connecter avec 127.2.3.4 sur l’interface de bouclage. Il est utile lorsque votre cible est sur un réseau local, un réseau privé virtuel ou un autre réseau spécial, auquel cas une autre adresse IP peut être utilisée pour les connexions que l'adresse IP par défaut pour accéder à Internet.

IP externe

Pour vérifier votre adresse IP externe (celle que les serveurs d’Internet voient lorsque vous vous y connectez - ce qui peut être différent de l’adresse IP interne décrite ici), voir Cette réponse .

    
réponse donnée rsp 03.04.2015 - 04:49
la source
129
hostname -I

Cela vous donnera juste une adresse IP sans aucune information supplémentaire.

    
réponse donnée Sarath Somana 25.08.2015 - 08:29
la source
18

Je pense que cela vaut la peine de mentionner que l'exécution d'ifconfig avec l'option -a affichera toutes les interfaces si l'interface a une adresse IP ou non.

exécutant ifconfig seul, affichera uniquement les interfaces avec les adresses IP attribuées.

Voici une astuce que vous pouvez utiliser pour afficher uniquement les adresses IP à l'aide de Perl.

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

Votre carte réseau est reconnue par le système, c'est pourquoi il affiche eth0 et eth1

voici un moyen rapide d'attribuer une adresse IP à votre interface, utilisez une adresse IP / sous-réseau valide en conséquence.

 ifconfig eth0 192.168.1.200/24 up 

alors nous devons ajouter une route par défaut

route add default gw 192.168.1.1

Best,

    
réponse donnée user1007727 07.03.2014 - 22:17
la source
8

Cette commande affiche toutes les adresses IP d’un seul périphérique:

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

Il imprimera une ou deux lignes de sortie. Le premier est l’adresse inet / IPv4 et l’autre est l’inet6 / IPv6 si votre système est configuré pour prendre en charge cette fonction.

    
réponse donnée Aaron Digulla 24.10.2014 - 16:14
la source
5

Dans le cas où la commande ifconfig n’a pas affiché l’adresse IP, il existe un moyen très simple et facile de trouver l’adresse IP de la machine Ubuntu via l’interface graphique. Suivez les étapes ci-dessous:

Cliquez sur l’icône Réseau dans la zone de notification et cliquez sur Informations de connexion .

Cela ouvre une fenêtre contenant des informations, y compris l’adresse IP.

    
réponse donnée Ibungo 24.09.2015 - 15:09
la source
1

Il y a beaucoup de bonnes réponses à choisir ici, mais je pensais que je mettais en exergue facteur qui est généralement utilisé, mais pas nécessairement, avec la marionnette pour recueillir divers faits sur le système. Le principal avantage de facter est qu’il donne de bons résultats, ce qui vous évite toute manipulation avec grep , sed , awk , cut , perl , etc. Il ne va pas vous dire l'interface qui vous intéresse, mais si vous le savez, alors vous obtenez l'adresse IP sans autre erreur pour nettoyer:

facter ipaddress_eth0 
    
réponse donnée mc0e 28.11.2015 - 16:11
la source
1

commande ip

Voici une variation de la manière de ip addr .

ip a une option -o qui permet de placer toutes les informations sur une seule ligne - ceci est utile pour analyser avec des outils tels que awk ou perl . En combinaison avec l'option -4 , nous ne verrons que les adresses IPv4. Ainsi, la sortie serait quelque chose comme ça (note - remplacez wlan7 par l’interface que vous voulez vérifier):

$ 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

Comme vous pouvez le voir, l’adresse IP est la 4ème colonne / mot dans la sortie. Le reste est un exercice d'analyse simple via l'outil de votre choix. Ici, j'utilise python:

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

Même chose avec seulement ici string <<< et substitution de commande $()

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

Personnellement, j'ai sauvegardé cette fonction dans mon ~/.bashrc , donc moins de frappe est faite.

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

La version de Perl et Ruby est un peu plus courte:

$ 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

Si vous êtes familier avec l’utilisation des outils d’analyse de réseau, vous savez probablement que pour obtenir votre adresse IP, il vous suffit de vider le cache du navigateur, de lancer la capture Wireshark sur l’interface spécifique et de rechercher http GET paquets en cours de transmission. La colonne de destination affichera votre adresse IP

    
réponse donnée Sergiy Kolodyazhnyy 04.09.2016 - 20:32
la source

Lire d'autres questions sur les étiquettes