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à.
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:
Votre carte réseau n'est pas connectée ou n'est pas reconnue par le système
Votre serveur DHCP réseau ne fonctionne pas ou n'est pas connecté
hostname -I
Cela vous donnera juste l'adresse IP sans aucune information supplémentaire.
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.
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 .
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,
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.
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 .
Cela ouvre une fenêtre qui contient quelques informations, y compris l'adresse IP.
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
Voici une variante de la manière ip addr
.
ip
a 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 awk
ou Perl
name__. 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
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 GET
qui sont transmis. La colonne de destination affichera votre adresse IP