web-dev-qa-db-fra.com

Comment trouver mon adresse IP interne?

Le serveur Ubuntu 12.04 est installé et je n’ai donc 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 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 é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 mis en place owncloud et webmin il y a quelques mois et je les utilisais depuis un mois sans aucun problème. Je pense que le courant a été coupé un jour il y a deux mois et que je n'ai jamais rallumé le serveur avant hier. Je n'ai rien fait qui aurait affecté la configuration Internet. Je ne sais donc 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 à partir de là.

201
Cam Jones

Ces commandes vous diront toutes les informations du réseau

ip add

ou

ifconfig -a

Si comme vous le dites, il 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 ne fonctionne pas ou n'est pas connecté

202
kamil
hostname -I

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

200
Sarath Somana

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 à savoir quelle interface vous utilisez (eth0? Eth1? Ou peut-être wlan0?), Vous n'avez pas à filtrer les adresses des hôtes locaux, les adresses Docker, les tunnels VPN, etc. et vous obtiendrez toujours l'adresse IP actuellement utilisée pour les connexions Internet à ce moment-là (important lorsque, par exemple, vous êtes connecté à la fois avec ethernet et avec wifi ou via VPN, etc.).

Cela testera non seulement que vous avez une adresse IP correcte configurée sur certaines interfaces (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 de ma 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 serait utilisée pour vous connecter à 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 par défaut pour Internet.

Mais si vous le lancez 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 vous connecter à 127.2.3.4 sur l’interface de bouclage. Cela est utile lorsque votre cible se trouve sur un réseau local, un réseau privé virtuel (VPN) ou un autre réseau spécial. Dans ce cas, une autre adresse IP pourrait être utilisée pour les connexions autres que celle par défaut pour accéder à Internet.

IP externe

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

183
rsp

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

si ifconfig est exécuté seul, seules les interfaces avec les adresses IP attribuées seront affichées.

Voici une astuce intéressante que vous pouvez utiliser pour n’afficher que les adresses IP utilisant Perl.

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

Votre carte réseau est reconnue par le système, c’est pourquoi elle affiche eth0 et eth1.

il existe un moyen rapide d’attribuer une adresse IP à votre interface. Utilisez les adresses IP/sous-réseaux valides 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

Meilleur,

19
user1007727

Cette commande affichera toutes les adresses IP d'un seul périphérique:

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

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

8
Aaron Digulla

Si la commande ifconfig n'affichait pas l'adresse IP, il existe un moyen très simple de rechercher l'adresse IP de la machine Ubuntu via l'interface graphique. Suivez les étapes ci-dessous:

Cliquez sur l'icône de réseau dans la zone de notification, puis cliquez sur Informations de connexion . Network icon options

Cela ouvre une fenêtre qui contient quelques informations, y compris l'adresse IP. IP address information

6
Ibungo

Il y a déjà beaucoup de bonnes réponses parmi lesquelles choisir, mais je pensais préciser facter qui est généralement, mais pas nécessairement utilisé avec marionnette pour collecter divers faits sur le système. Le principal avantage de facter est qu’il donne une sortie propre de Nice qui vous évite toute manipulation avec grep, sed, awk, cut, Perl, etc. Cela ne vous dira pas quelle interface vous intéresse, mais si sachez que, dans ce qui suit, vous obtenez l’adresse IP sans autre élément de nettoyage:

facter ipaddress_eth0 
1
mc0e

commande ip

Voici une variante de la manière ip addr.

ipa l'option -o qui permet de mettre toutes les informations sur une seule ligne - cela est utile pour l'analyse avec des outils tels que awkou Perlname__. En combinaison avec l'option -4, nous ne verrons que les adresses IPv4. Ainsi, la sortie ressemblerait à ceci (note - remplacez wlan7 par l’interface à 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 constater, l’adresse IP est la 4ème colonne/le mot dans la sortie. Le reste, 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 <<< et la substitution de commande $()

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

Personnellement, j’ai enregistré cette fonction en tant que fonction Nice dans mon ~/.bashrc afin que moins de frappe soit effectuée.

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 connaissez les outils d'analyse de réseau, sachez probablement que pour obtenir votre adresse IP, il vous suffit d'effacer le cache du navigateur, de lancer la capture de Wireshark sur l'interface spécifique et de rechercher les paquets http GETqui sont transmis. La colonne de destination affichera votre adresse IP

1