52 votes

Comment obtenir l'adresse IPv6 sous Linux ?

J'ai un serveur Linux et je veux trouver l'adresse IPv6 principale à l'aide d'une seule ligne de commande.

Mon commandement jusqu'à présent :

$ ip addr show dev eth0 | sed -e's/^.*inet6 \([^ ]*\)\/.*$/\1/;t;d'

qui montre :

2001:410:0:39:221:28ff:fe46:eef4
fe80::221:28ff:fe46:eef4

Mais je veux une seule occurrence de façon à ce que la sortie se lise comme suit :

2001:410:0:39:221:28ff:fe46:eef4

50voto

thanghn90 Points 11
ip -6 addr

affichera vos adresses IPv6.

12voto

ilkin Points 519

/sbin/ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '{print $3}' | grep -v ^::1 | grep -v ^fe80

La sortie de /sbin/ip -6 addr | grep inet6 ressemble à ceci :

inet6 ::1/128 scope host 
inet6 2001:123:456:55f::1/64 scope global 
inet6 fe80::62eb:69ff:fed2:d2a6/64 scope link 

awk -F '[ \t]+|/' '{print $3}' divise chaque ligne en définissant les délimiteurs comme étant soit un ou plusieurs espaces blancs, soit une barre oblique. La partie dont nous avons besoin est le $3.

grep -v ^::1 | grep -v ^fe80 pour exclure toute ligne commençant par ::1 o fe80 .

5voto

RedGrittyBrick Points 78148
$ /sbin/ifconfig | grep inet6
      inet6 addr: fe80::2ff:19ff:fe60:1a00/64 Scope:Link
      inet6 addr: fe80::211:22ff:fe33:4455/64 Scope:Link
      inet6 addr: ::1/128 Scope:Host

Si vous souhaitez une sélection aléatoire d'une adresse IPv6

$ /sbin/ifconfig | grep inet6 | head -n 1
      inet6 addr: fe80::2ff:19ff:fe60:1a00/64 Scope:Link

Si vous souhaitez obtenir l'adresse IPv6 du nom le plus courant de la première carte Ethernet

$ /sbin/ifconfig eth0 | grep inet6
      inet6 addr: fe80::2ff:19ff:fe60:1a00/64 Scope:Link

Si vous ne voulez que l'adresse

$ /sbin/ifconfig eth0 |  awk '/inet6/{print $3}'
fe80::2ff:19ff:fe60:1a00/64

3voto

Phil Points 51

Utilisez la commande suivante pour afficher votre adresse IP sous Linux :

ifconfig

Normalement, l'adresse Ipv6 se présente comme suit 2001:5c0:9168::/48 . Si vous êtes confronté à un conflit d'adresse IP, suivez les étapes ci-dessous pour redéfinir une adresse IP :

  1. Pour attribuer des adresses IPv6, assurez-vous que les outils iproute2 sont installés.
  2. À l'aide de ces derniers, commençons à attribuer vos IP.
  3. Assurez-vous que le module ipv6 est installé ou non.

Ensuite, utilisez la commande suivante pour ajouter une nouvelle adresse IP :

ip -f inet6 addr add 2001:5c0:9168::2/64 dev eth0

Ensuite, ajoutez l'ip par défaut via

ip -f inet6 ro add default via 2001:5c0:9168::1 dev eth0

Une fois l'installation terminée, il suffit de reconfigurer/redémarrer les services compatibles avec IPv6, comme Apache, SSH, etc.

2voto

Michael Hampton Points 13142

Tout d'abord, vous devez vous rappeler qu'avec IPv6, toute machine peut avoir plusieurs adresses IPv6, qui peuvent se trouver sur des réseaux distincts, et que n'importe laquelle d'entre elles peut être utilisée, en fonction de l'endroit où vous voulez vous rendre.

Ainsi, avant de pouvoir répondre à la question de savoir quelle est votre adresse IP source, vous devez déterminer où vous envoyez le trafic. Vous pouvez ensuite demander à Linux de vous indiquer quelle adresse IPv6 sera la source lorsque vous enverrez du trafic vers cette destination.

Si vous l'envoyez à "l'internet", choisissez une adresse IPv6 globale au hasard, par exemple l'adresse DNS publique de Google.

ip r get to 2001:4860:4860::8888 | perl -ne '/src ([\w:]+)/ && print "$1\n"'
2001:db8:f387:c818:5:2:0:1000

Elle demande à Linux de lui indiquer l'itinéraire à suivre pour atteindre cette destination. Perl analyse le résultat en recherchant src et imprime ensuite le champ suivant.

En indiquant une destination différente, vous pouvez recevoir une adresse source différente :

ip r get to ::1 | perl -ne '/src ([\w:]+)/ && print "$1\n"'
::1

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X