wget на IPv4-сервер с IPv6-only VPS
У меня есть 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, но я новичок и понятия не имею, что мне делать, чтобы его настроить.
Ответы
IPv6 и IPv4 - разные протоколы. Если у вас есть только IPv6-адрес в Интернет-пространстве, вы не можете напрямую подключаться к сервисам, использующим только IPv4. Это действительно короткий ответ - «нет, нельзя».
TunnelBroker и другие бесплатные сервисы предлагают только туннели в других направлениях, то есть с IPv4 на IPv6, а не наоборот, насколько мне известно. Вы можете настроить свой собственный туннель на другом хосте с двойным стеком (как IPv4, так и IPv6) или попытаться найти какую-нибудь коммерческую услугу для этой цели, но это выходит за рамки Server Fault, и я сомневаюсь, что это то, что вам нужно.
Для загрузки файла вы можете использовать другой компьютер и просто перенести его на свой IPv6-сервер через SSH.
Решение заключалось в том, чтобы перейти на 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. Вы также можете использовать это, чтобы загрузить какой-то пакет, который вы не смогли, а затем вернуться к исходным серверам имен.
Использование прямого Wget - не единственное решение для получения установочных пакетов на ваш сервер. Поскольку сеть только IPv6 отлично работает для вашего варианта использования (сайт за Cloudflare), я бы не стал пытаться использовать какие-либо хаки для получения подключения IPv4 даже временно, но использую другие способы передачи данных :
Используйте промежуточный сервер с возможностью подключения как 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
Если у вас уже есть SSH-соединение с сервером, вы, вероятно, также можете использовать SFTP ( протокол передачи файлов SSH ) для загрузки пакета вместо его загрузки напрямую.
Настройте Wget на использование прокси HTTPS в
~/.wgetrc
(или глобальном/etc/wgetrc
):https_proxy = http://[Proxy_Server]:[port]
Вы можете использовать любой прокси, который поддерживает IPv6 и HTTPS, и вы готовы доверять ему. Однако я бы все равно проверил целостность файла, сравнивая суммы MD5 (
md5sum install.tar.gz
).