wget на IPv4-сервер с IPv6-only VPS

Aug 15 2020

У меня есть CentOS 7 VPS, у которого нет IPv4, а есть только сеть IPv6 . Я открыл порт 443 для приема всех TCP-соединений.

Когда я пытаюсь это сделать wget https://www.litespeedtech.com/packages/6.0/lsws-6.0RC1-ent-x86_64-linux.tar.gz, выдается ошибка (я считаю, что это потому, чтоhttps://litespeedtech.com/ не включен IPv6):

Resolving www.litespeedtech.com (www.litespeedtech.com)... 52.55.120.73
Connecting to www.litespeedtech.com (www.litespeedtech.com)|52.55.120.73|:443... failed: No route to host.

При попытке сделать то же самое для Google (с включенным IPv6) wget https://google.comэто удается:

Resolving www.google.com (www.google.com)... 2a00:1450:4016:805::2004, 172.217.23.68
Connecting to www.google.com (www.google.com)|2a00:1450:4016:805::2004|:443... connected.
HTTP request sent, awaiting response... 200 OK

Как я могу подключиться к серверам IPv4 с моего VPS только для IPv6? Я слышал о TunnelBroker, но я новичок и понятия не имею, что мне делать, чтобы его настроить.

Ответы

7 NStorm Aug 15 2020 at 12:49

IPv6 и IPv4 - разные протоколы. Если у вас есть только IPv6-адрес в Интернет-пространстве, вы не можете напрямую подключаться к сервисам, использующим только IPv4. Это действительно короткий ответ - «нет, нельзя».

TunnelBroker и другие бесплатные сервисы предлагают только туннели в других направлениях, то есть с IPv4 на IPv6, а не наоборот, насколько мне известно. Вы можете настроить свой собственный туннель на другом хосте с двойным стеком (как IPv4, так и IPv6) или попытаться найти какую-нибудь коммерческую услугу для этой цели, но это выходит за рамки Server Fault, и я сомневаюсь, что это то, что вам нужно.

Для загрузки файла вы можете использовать другой компьютер и просто перенести его на свой IPv6-сервер через SSH.

1 SayanjyotiDas Aug 15 2020 at 22:02

Решение заключалось в том, чтобы перейти на Debian 10 (хотя это также должно работать для Ubuntu) и заменить серверы имен /etc/resolv.confдля использования этой общедоступной службы передачи NAT64 :

search blue.kundencontroller.de
options rotate
nameserver 2a00:1098:2b::1
nameserver 2a00:1098:2c::1
nameserver 2a01:4f8:c2c:123f::1
nameserver 2001:67c:2b0::4
nameserver 2001:67c:2b0::6

Обратите внимание, что resolv.conf предназначен специально для EUServ VPS. Если вы используете другой VPS, скопируйте и вставьте только серверы имен.

Это позволило VPS (совершенно волшебным образом) получить доступ к Интернету IPv4 (да, даже устанавливать пакеты с сайтов поставщиков IPv4).

Этой службой управляет один человек, который также имеет доступ ко всему вашему трафику IPv4 и всему вашему трафику DNS. Если вы передаете конфиденциальные данные или создаете серьезный веб-сайт, я думаю, что лучше всего на данный момент получить VPS с поддержкой IPv4. Вы также можете использовать это, чтобы загрузить какой-то пакет, который вы не смогли, а затем вернуться к исходным серверам имен.

1 EsaJokinen Aug 18 2020 at 15:36

Использование прямого Wget - не единственное решение для получения установочных пакетов на ваш сервер. Поскольку сеть только IPv6 отлично работает для вашего варианта использования (сайт за Cloudflare), я бы не стал пытаться использовать какие-либо хаки для получения подключения IPv4 даже временно, но использую другие способы передачи данных :

  1. Используйте промежуточный сервер с возможностью подключения как IPv4, так и IPv6 и зеркалируйте пакет там.

    user@intermediate:/var/www$ wget https://ipv4only.example.com/packages/install.tar.gz user@vps:~$ wget https://intermediate.example.net/install.tar.gz
    
  2. Если у вас уже есть SSH-соединение с сервером, вы, вероятно, также можете использовать SFTP ( протокол передачи файлов SSH ) для загрузки пакета вместо его загрузки напрямую.

  3. Настройте Wget на использование прокси HTTPS в ~/.wgetrc(или глобальном /etc/wgetrc):

    https_proxy = http://[Proxy_Server]:[port]
    

    Вы можете использовать любой прокси, который поддерживает IPv6 и HTTPS, и вы готовы доверять ему. Однако я бы все равно проверил целостность файла, сравнивая суммы MD5 ( md5sum install.tar.gz).