Mam serwer Linux i chcę znaleźć główny adres IPv6 za pomocą jednego wiersza poleceń.
Moje dotychczasowe polecenie:
$ ip addr show dev eth0 | sed -e's/^.*inet6 \([^ ]*\)\/.*$/\1/;t;d'
który pokazuje:
2001:410:0:39:221:28ff:fe46:eef4
fe80::221:28ff:fe46:eef4
Ale chcę tylko jedno wystąpienie , aby wynik brzmiał:
2001:410:0:39:221:28ff:fe46:eef4
Odpowiedzi:
pokaże twoje adresy IPv6.
źródło
% ip -6 addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 inet6 ::1/128 scope host valid_lft forever preferred_lft forever
... wciąż greppableip -6 addr show dev eth0 | sed -n 's|^.*inet6 \([^ ]*/64\).*$|\1|p'
czyip -6 addr show dev eth0 | awk '/inet6/{print $2}'
mogą być wykorzystane jako podstawa i OP może przedłużyć / edytować je za jego przypadku konkretnego zastosowania./sbin/ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '{print $3}' | grep -v ^::1 | grep -v ^fe80
Wynik działania
/sbin/ip -6 addr | grep inet6
wygląda mniej więcej tak:awk -F '[ \t]+|/' '{print $3}'
dzieli każdy ogranicznik ustawienia linii na jeden lub więcej białych spacji lub ukośnik. Potrzebujemy części 3 USD.grep -v ^::1 | grep -v ^fe80
aby wykluczyć dowolną linię zaczynającą się od::1
lubfe80
.źródło
Jeśli chcesz losowy wybór jednego adresu IPv6
Jeśli potrzebujesz adresu IPv6 o najczęstszej nazwie dla pierwszego adaptera Ethernet
Jeśli chcesz tylko adres
źródło
Użyj następującego polecenia, aby wyświetlić swój adres IP w systemie Linux:
Zwykle wygląda na to adres IPv6
2001:5c0:9168::/48
. Jeśli masz do czynienia z konfliktem w adresie IP, wykonaj następujące kroki, aby ponownie ustawić adres IP:Następnie użyj następującego polecenia, aby dodać nowy adres IP:
Następnie dodaj domyślny adres IP przez
Po zakończeniu instalacji wystarczy ponownie skonfigurować / zrestartować usługi obsługujące IPv6, takie jak Apache, SSH itp.
źródło
ifconfig
jest przestarzały w Linuksie i nie powinien być dłużej używany. Nowoczesne dystrybucje Linuksa nawet nie instalują go już domyślnie (chyba że wymaga tego jakiś starożytny pakiet).Po kilku drobnych poprawkach Twoja oryginalna próba zadziałałaby:
Dużą zmianą jest dodanie
-o
flagi, która powoduje wydrukowanie wpisów, po jednym w wierszu, co ułatwia przesuwanie po nich.źródło
Po pierwsze, musisz pamiętać, że z IPv6 każda maszyna może mieć kilka adresów IPv6 i mogą one znajdować się w oddzielnych sieciach, a każdy z nich może być używany, w zależności od tego, gdzie chcesz dotrzeć.
Tak więc, zanim będziesz mógł odpowiedzieć na pytanie, jaki jest twój źródłowy adres IP, musisz zdecydować, gdzie wysyłasz ruch. Następnie możesz po prostu poprosić Linuksa o podanie adresu IPv6, który będzie źródłem podczas wysyłania ruchu do tego miejsca docelowego.
Jeśli wysyłasz go do „Internetu”, wybierz losowo globalny adres IPv6, np. Publiczny adres DNS Google.
To prosi Linuksa o drogę do tego miejsca docelowego. Perl analizuje szukany wynik,
src
a następnie drukuje następne pole.Podając inny cel, możesz otrzymać inny adres źródłowy:
źródło
źródło