Вопрос или проблема
Моя локальная сеть проста.
sudo ifconfig
enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.31.52 netmask 255.255.255.0 broadcast 192.168.31.255
inet6 fe80::e23f:49ff:fe57:4bd1 prefixlen 64 scopeid 0x20<link>
ether txqueuelen 1000 (Ethernet)
RX packets 934205 bytes 918638128 (876.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 557104 bytes 69517532 (66.2 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1 (Local Loopback)
RX packets 2773 bytes 4761793 (4.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2773 bytes 4761793 (4.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Я хочу, чтобы мой VPS имел свой собственный IPv6 адрес.
ssh -vv -6 2001:19f0:5401:1cda:5400:02ff:fe8c:056f%enp3s0
OpenSSH_7.4p1 Debian-10+deb9u7, OpenSSL 1.0.2u 20 Dec 2019
debug1: Чтение конфигурационных данных /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config строка 19: Применение опций для *
debug2: разрешение "2001:19f0:5401:1cda:5400:02ff:fe8c:056f%enp3s0" порт 22
ssh: Не удалось разрешить имя хоста 2001:19f0:5401:1cda:5400:02ff:fe8c:056f%enp3s0: Имя или служба не известны
sudo ip -6 addr add 2001:19f0:5401:1cda:5400:02ff:fe8c:056f/128 dev enp3s0
ssh -vv -6 2001:19f0:5401:1cda:5400:02ff:fe8c:056f%enp3s0
OpenSSH_7.4p1 Debian-10+deb9u7, OpenSSL 1.0.2u 20 Dec 2019
debug1: Чтение конфигурационных данных /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config строка 19: Применение опций для *
debug2: разрешение "2001:19f0:5401:1cda:5400:02ff:fe8c:056f%enp3s0" порт 22
ssh: Не удалось разрешить имя хоста 2001:19f0:5401:1cda:5400:02ff:fe8c:056f%enp3s0: Имя или служба не известны
короткий ответ:
вы должны определить свой публичный IPv6.
длинный ответ :
Я предполагаю, что ваш интернет-провайдер дал вам IP, предположим, что у вас есть 2001:0db8:0001:0001::0/64
как публичный IP (на самом деле публичная сеть IPv6).
Теперь попробуйте
sudo ip -6 addr add 2001:0db8:0001:0001::0022/128 dev enp3s0
на локальном хосте.
(замените значение и сетевой интерфейс)
Обратите внимание, что вы не сможете протестировать это “изнутри”. (Я не смог сохранить, когда у меня было два интернет-провайдера). Вы можете использовать онлайн-тесты инструментов ipv6 из интернета.
вы можете проверить ваше соединение IPv6, используя
ping -I enp3s0 ipv6.google.com
Ответ или решение
Подключение к SSH по IPv6: Пошаговое руководство
Подключение к серверу через SSH с использованием IPv6 адреса может быть несколько запутанным, особенно если у вас нет опыта работы с этой технологией. В этом руководстве мы подробно рассмотрим, как правильно настроить соединение по IPv6 и устранить возможные ошибки.
1. Проверка конфигурации сети
Перед тем как подключаться через SSH, нужно убедиться, что ваш сетевой интерфейс настроен правильно. Вы можете использовать команду ifconfig
для отображения текущих настроек сети. В вашем случае вы видите следующее:
enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.31.52 netmask 255.255.255.0 broadcast 192.168.31.255
inet6 fe80::e23f:49ff:fe57:4bd1 prefixlen 64 scopeid 0x20<link>
2. Настройка публичного IPv6 адреса
Для подключения к VPS, вам необходимо добавить публичный IPv6 адрес, который был предоставлен вашим провайдером. Например, если ваш тарифный план предусматривает использование адреса 2001:0db8:0001:0001::0/64
, вам нужно его добавить как отдельный адрес.
Используйте следующую команду, чтобы добавить IPv6 адрес к интерфейсу enp3s0
:
sudo ip -6 addr add 2001:0db8:0001:0001::0022/128 dev enp3s0
Замените 2001:0db8:0001:0001::0022
на ваш фактический публичный IPv6 адрес.
3. Проверка подключения
Важно проверить, работает ли IPv6 подключение. Вы можете сделать это с помощью команды ping
:
ping -I enp3s0 ipv6.google.com
Если вы получаете ответы, значит, ваше соединение настроено верно.
4. Подключение к серверу через SSH
Теперь вы готовы подключиться к вашему VPS через SSH. Для этого используйте следующую команду:
ssh -6 2001:0db8:0001:0001::0022
Если вы видите сообщение об ошибке, такое как:
ssh: Could not resolve hostname 2001:0db8:0001:0001::0022%enp3s0: Name or service not known
это указывает на проблему с обработкой адреса. Убедитесь, что вы используете правильный формат и не добавляете ненужные суффиксы, такие как %enp3s0
, если это не требуется.
5. Дополнительные рекомендации
- Убедитесь, что ваш firewall (например,
iptables
илиufw
) не блокирует порт 22, который используется для SSH. - Проверьте, что SSH-сервер установлен и запущен на вашем VPS с помощью команды:
sudo systemctl status ssh
Если он не запущен, вы можете активировать его с помощью:
sudo systemctl start ssh
Заключение
Подключение к серверу по IPv6 с использованием SSH требует внимания к деталям конфигурации сетевого интерфейса, корректности адреса и работоспособности сервиса. Следуя этим шагам, вы сможете успешно установить соединение с вашим VPS. Если возникнут дополнительные вопросы, не стесняйтесь обращаться за помощью.