У меня есть сервер Linux, и я хочу найти основной адрес IPv6 с помощью одной командной строки.
Моя команда до сих пор:
$ ip addr show dev eth0 | sed -e's/^.*inet6 \([^ ]*\)\/.*$/\1/;t;d'
который показывает:
2001:410:0:39:221:28ff:fe46:eef4
fe80::221:28ff:fe46:eef4
Но я хочу только одно вхождение , так что вывод гласит:
2001:410:0:39:221:28ff:fe46:eef4
Ответы:
покажет ваши адреса IPv6.
источник
% ip -6 addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 inet6 ::1/128 scope host valid_lft forever preferred_lft forever
... еще greppableip -6 addr show dev eth0 | sed -n 's|^.*inet6 \([^ ]*/64\).*$|\1|p'
илиip -6 addr show dev eth0 | awk '/inet6/{print $2}'
может быть использован в качестве основы и OP может продлить / редактировать их для его использования конкретного случая./sbin/ip -6 addr | grep inet6 | awk -F '[ \t]+|/' '{print $3}' | grep -v ^::1 | grep -v ^fe80
Вывод
/sbin/ip -6 addr | grep inet6
выглядит примерно так:awk -F '[ \t]+|/' '{print $3}'
разбивает каждую строку, устанавливая разделители на один или несколько пробелов или косую черту. Часть, которая нам нужна, это 3 доллара.grep -v ^::1 | grep -v ^fe80
исключить любую строку, начинающуюся с::1
илиfe80
.источник
Если вы хотите случайный выбор одного адреса IPv6
Если вы хотите IPv6-адрес наиболее распространенного имени для первого адаптера Ethernet
Если вы просто хотите адрес
источник
Используйте следующую команду для просмотра вашего IP-адреса в Linux:
Обычно адрес IPv6 выглядит так
2001:5c0:9168::/48
. Если вы столкнулись с каким-либо конфликтом в вашем IP-адресе, выполните следующие шаги, чтобы снова установить IP-адрес:Затем используйте следующую команду для добавления нового ip:
После этого добавьте IP-адрес по умолчанию через
После завершения установки просто переконфигурируйте / перезапустите службы с поддержкой IPv6, такие как Apache, SSH и т. Д.
источник
ifconfig
устарел в Linux и больше не должен использоваться. Современные дистрибутивы Linux даже не устанавливают его по умолчанию (если этого не требует какой-то древний пакет).С несколькими небольшими изменениями ваша первоначальная попытка сработала бы:
Большим изменением является добавление
-o
флага, который заставляет печатать записи, по одной на строку, что облегчает их запуск по sed.источник
Во-первых, вы должны помнить, что с IPv6 любая машина может иметь несколько адресов IPv6, и они могут находиться в разных сетях, и любой из них может использоваться, в зависимости от того, где вы хотите достичь.
Итак, прежде чем вы сможете ответить на вопрос, какой IP-адрес вашего источника, вы должны решить, куда вы отправляете трафик. Затем вы можете просто попросить Linux сообщить вам, какой IPv6-адрес будет источником при отправке трафика в этот пункт назначения.
Если вы отправляете его в «Интернет», просто выберите случайный глобальный IPv6-адрес, например, общедоступный DNS-адрес Google.
Это запрашивает у Linux маршрут к этому месту назначения. Perl анализирует результат поиска
src
и затем печатает следующее поле.Предоставляя другое место назначения, вы можете получить другой адрес источника:
источник
источник