Comment puis-je trouver mon adresse IP interne?

J'ai Ubuntu server 12.04 installé, donc je n'ai pas d'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 la sortie 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 interfaceauto loiface lo inet loopback# The primary network interfaceauto eth0iface eth0 inet dhcp

Si quelqu'un pouvait éditer 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 installé owncloud et webmin il y a quelques mois et je les utilisais pendant un mois sans problème. Je pense que le courant a été coupé un jour il y a 2 mois et 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 va de la carte réseau à un commutateur, puis à un modem/routeur à partir de là.

hostname -I

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

Ces commandes vous indiqueront toutes les informations réseau

ip add

ou

ifconfig -a

Si comme vous le dites cela ne vous donne que 127.0.0.1 alors 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 réseau n'est pas en cours d'exécution ou n'est pas connecté

C'est 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 à filtrer les adresses localhost, les adresses Docker, les tunnels VPN, etc. et tu auras toujours l'adresse IP actuellement utilisée pour les connexions Internet à ce moment précis (important lorsque, par exemple, 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 avec l'analyse de la sortie de ifconfig) mais aussi que vous avez configuré la table de routage pour l'utiliser correctement.

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

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

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

et utiliser comme:

internalip

ou:

internalip TARGET

et vous obtiendrez votre adresse IP qui serait utilisée pour vous connecter avec l'adresse IP CIBLE. La cible par défaut est 8.8.8.8 qui est le Résolveur DNS public de Google et un bon défaut pour 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

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

IP externe

Pour vérifier votre externe Adresse IP (celle que les serveurs sur Internet voient lorsque vous vous connectez à eux - qui peut être différente de l'adresse IP interne décrite ici) voir cette réponse.

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

exécuter ifconfig seul affichera uniquement les interfaces avec des adresses IP attribuées.

Voici une astuce intéressante que vous pourriez utiliser pour afficher uniquement les adresses IP en utilisant Perl.

# ifconfig | perl -nle'/dr:(\S+)/ && print $1'192.168.1.100127.0.0.1

Votre carte réseau est reconnue par le système, c'est pourquoi elle apparaît 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 

ensuite, nous devons ajouter un itinéraire par défaut

route add default gw 192.168.1.1

Meilleur,

Cette commande affichera toutes les adresses IP d'un seul appareil:

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

Il imprimera une ou deux lignes de sortie. La première est l'adresse inet / IPv4 et l'autre est inet6 / IPv6 si votre système est configuré pour le prendre en charge.

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

Cliquez sur le icône de réseau dans la zone de notification et cliquez sur Informations de Connexion.Network icon options

Cela fait apparaître une fenêtre contenant des informations, y compris l'adresse IP.IP address information

Il y a déjà beaucoup de bonnes réponses parmi lesquelles choisir, mais je pensais que je ferais remarquer facter ce qui est généralement, mais pas nécessairement utilisé avec puppet pour collecter divers faits sur le système. Le principal avantage de facter est qu'il donne une belle sortie propre qui vous évite toutes les manipulations avec grep, sed, awk, cut, perl, etc. Il ne va pas vous dire quelle interface vous intéresse, mais si vous le savez, alors ce qui suit vous donne l'adresse IP sans autre cruft à nettoyer:

facter ipaddress_eth0 

commande ip

Voici une variation sur ip addr façon.

ip avoir -o option qui permet de mettre toutes les informations sur une seule ligne-ceci est utile pour l'analyse avec des outils comme awk ou perl. En combinaison avec -4 option, nous ne verrons que les adresses IPv4. Ainsi, la sortie ressemblerait à ceci (remarque-remplacez wlan7 par l'interface que vous souhaitez vérifier):

$ ip -4 -o addr show wlan73: 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, c'est 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, seulement avec la chaîne here <<< et la substitution de commande $()

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

Personnellement, je l'ai enregistré comme une belle 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]" } 

Les versions de Perl et Ruby sont un peu plus courtes:

$ 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 d'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 démarrer Wireshark capture sur l'interface spécifique et de rechercher http GET paquets en cours de transmission. La colonne destination affichera votre adresse IP

Il y a beaucoup de bonnes informations ci-dessus. Je garde les choses simples comme ça:

# what your computer thinks its ip address isfunction iplocal() {  ip route get 8.8.8.8 | awk '{print $NF; exit}'    # 8.8.8.8 is google dns}# what the outside world thinks your ip address isfunction ipexternal() {  curl --silent http://checkip.amazonaws.com        # or:  http://ipinfo.io/ip}function ipinfo() {  echo "local    IP  =>  $(iplocal)"  echo "external IP  =>  $(ipexternal)"}

Utilisation de l'échantillon:

> ipinfolocal    IP  =>  192.168.1.139external IP  =>  76.88.85.95

‘ifconfig | grep-G" 192.168.*.255 "/ cut-d’ '-f10 “peut vous obtenir l’adresse IP, ou simplement” hostname-I / cut-d ‘’ - f1`

@AvatarParto Ce sont pour les interfaces faisant face à un accès public, cette question concerne les réseaux internes…

Par curiosité, qu’y a-t-il dans /etc/network/interfaces?

Je sais comment utiliser la commande changer de répertoire, mais je ne sais pas comment lister les fichiers une fois là-bas, comment ferais-je cela?

‘ls’ listera les fichiers dans un répertoire. ‘lsl' donnera une liste détaillée. Pour lister le contenu d'un répertoire particulier,ls-l /etc / network’. Pour changer dans un répertoire et lister le contenu ‘cd / etc / network; lsl'. Pour lire le contenu de ' etc / network /interfaces (ceci est un fichier) sudo pico/etc/network / interfaces. (‘pico’ est un éditeur de texte léger-bon pour la lecture et l’édition de base, et moins intimidant que`vi’.)