J'ai un serveur Linux et je veux trouver l'adresse IPv6 principale via une seule ligne de commande.
Ma commande 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 ne veux qu'une seule occurrence , pour que la sortie indique:
2001:410:0:39:221:28ff:fe46:eef4
Réponses:
affichera vos adresses IPv6.
la source
% ip -6 addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 inet6 ::1/128 scope host valid_lft forever preferred_lft forever
... toujours en priseip -6 addr show dev eth0 | sed -n 's|^.*inet6 \([^ ]*/64\).*$|\1|p'
ouip -6 addr show dev eth0 | awk '/inet6/{print $2}'
pourrait être utilisé comme base et OP peut les étendre / modifier pour son cas d'utilisation spécifique./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:awk -F '[ \t]+|/' '{print $3}'
divise chaque délimiteur de paramètre de ligne en un ou plusieurs espaces blancs ou 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
oufe80
.la source
Si vous souhaitez une sélection aléatoire d'une adresse IPv6
Si vous voulez l'adresse IPv6 du nom le plus courant pour le premier adaptateur Ethernet
Si vous voulez juste l'adresse
la source
Utilisez la commande suivante pour afficher votre adresse IP sous Linux:
Normalement, l'adresse IPv6 ressemble
2001:5c0:9168::/48
. Si vous rencontrez un conflit dans votre IP, suivez les étapes ci-dessous pour définir à nouveau une adresse IP:Ensuite, utilisez la commande suivante pour ajouter une nouvelle adresse IP:
Ensuite, ajoutez l'IP par défaut via
Après avoir terminé votre installation, reconfigurez / redémarrez simplement vos services compatibles IPv6, comme Apache, SSH, etc.
la source
ifconfig
est obsolète sous Linux et ne devrait plus être utilisé. Les distributions Linux modernes ne l'installent même plus par défaut (sauf si un ancien paquet l'exige).Avec quelques petits ajustements, votre tentative initiale aurait fonctionné:
Le gros changement est l'ajout du
-o
drapeau pour que les entrées soient imprimées, une par ligne, ce qui facilite leur exécution.la source
Tout d'abord, vous devez vous rappeler qu'avec IPv6, n'importe quelle machine peut avoir plusieurs adresses IPv6, et qu'elles peuvent se trouver sur des réseaux distincts, et n'importe laquelle d'entre elles peut être utilisée, selon l'endroit où vous souhaitez vous rendre.
Donc, avant de pouvoir répondre à la question de savoir quelle est votre adresse IP source, vous devez décider où vous envoyez le trafic. Ensuite, vous pouvez simplement demander à Linux de vous dire quelle adresse IPv6 sera la source lorsque vous envoyez du trafic vers cette destination.
Si vous l'envoyez à "Internet", choisissez simplement une adresse IPv6 globale au hasard, par exemple l'adresse DNS publique de Google.
Cela demande à Linux l'itinéraire vers cette destination. Perl analyse le résultat recherché
src
puis imprime le champ suivant.En fournissant une destination différente, vous pouvez recevoir une adresse source différente:
la source
la source