Ich habe einen Linux-Server und möchte die IPv6-Hauptadresse über eine einzige Befehlszeile ermitteln.
Mein bisheriger Befehl:
$ ip addr show dev eth0 | sed -e's/^.*inet6 \([^ ]*\)\/.*$/\1/;t;d'
welche Shows:
2001:410:0:39:221:28ff:fe46:eef4
fe80::221:28ff:fe46:eef4
Ich möchte aber nur ein Vorkommen , damit die Ausgabe lautet:
2001:410:0:39:221:28ff:fe46:eef4
Antworten:
zeigt Ihre IPv6-Adressen an.
quelle
% ip -6 addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 inet6 ::1/128 scope host valid_lft forever preferred_lft forever
... immer noch greppableip -6 addr show dev eth0 | sed -n 's|^.*inet6 \([^ ]*/64\).*$|\1|p'
oderip -6 addr show dev eth0 | awk '/inet6/{print $2}'
als Basis verwendet, und OP kann sie für seinen spezifischen Anwendungsfall erweitern / bearbeiten./sbin/ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '{print $3}' | grep -v ^::1 | grep -v ^fe80
Die Ausgabe von
/sbin/ip -6 addr | grep inet6
sieht ungefähr so aus:awk -F '[ \t]+|/' '{print $3}'
Teilt die Trennzeichen für jede Zeileneinstellung in ein oder mehrere Leerzeichen oder einen Schrägstrich. Der Teil, den wir brauchen, sind die $ 3.grep -v ^::1 | grep -v ^fe80
um Zeilen auszuschließen, die mit::1
oder beginnenfe80
.quelle
Wenn Sie eine zufällige Auswahl einer IPv6-Adresse wünschen
Wenn Sie die IPv6-Adresse des am häufigsten verwendeten Namens für den ersten Ethernet-Adapter möchten
Wenn Sie nur die Adresse wollen
quelle
Verwenden Sie den folgenden Befehl, um Ihre IP-Adresse unter Linux anzuzeigen:
Normalerweise sieht die IPv6-Adresse so aus
2001:5c0:9168::/48
. Wenn Sie auf einen Konflikt in Ihrer IP stoßen, führen Sie die folgenden Schritte aus, um eine IP-Adresse erneut festzulegen:Verwenden Sie dann den folgenden Befehl, um eine neue IP-Adresse hinzuzufügen:
Anschließend fügen Sie die Standard-IP über hinzu
Nach Abschluss der Installation müssen Sie nur Ihre IPv6-fähigen Dienste wie Apache, SSH usw. neu konfigurieren / neu starten.
quelle
ifconfig
ist unter Linux veraltet und sollte nicht mehr verwendet werden. Moderne Linux-Distributionen installieren es nicht einmal mehr standardmäßig (es sei denn, ein altes Paket erfordert es).Mit ein paar kleinen Änderungen hätte Ihr ursprünglicher Versuch funktioniert:
Die große Änderung besteht darin
-o
, dass das Flag hinzugefügt wird, um die Einträge auszudrucken, eine pro Zeile, wodurch das Überfahren erleichtert wird.quelle
Erstens müssen Sie sich daran erinnern, dass bei IPv6 jeder Computer möglicherweise mehrere IPv6-Adressen hat und sich möglicherweise in separaten Netzwerken befindet. Je nachdem, wo Sie ihn erreichen möchten, kann auch eine dieser Adressen verwendet werden.
Bevor Sie also die Frage nach Ihrer Quell-IP-Adresse beantworten können, müssen Sie entscheiden, wohin Sie den Datenverkehr senden. Dann können Sie Linux einfach bitten, Ihnen mitzuteilen, welche IPv6-Adresse die Quelle ist, wenn Sie Datenverkehr an dieses Ziel senden.
Wenn Sie es an das Internet senden, wählen Sie einfach eine zufällige globale IPv6-Adresse aus, z. B. die öffentliche DNS-Adresse von Google.
Dies fragt Linux nach der Route zu diesem Ziel. Perl analysiert das Ergebnis
src
und gibt dann das nächste Feld aus.Wenn Sie ein anderes Ziel angeben, erhalten Sie möglicherweise eine andere Quelladresse:
quelle
quelle