
У меня есть 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, но я полный новичок и понятия не имею, что мне делать, чтобы настроить его.
решение1
IPv6 и IPv4 — это разные протоколы. Если у вас есть только адрес IPv6 в интернет-пространстве, вы не можете напрямую подключаться к службам, поддерживающим только IPv4. Это действительно короткий ответ — «нет, не можете».
TunnelBroker и другиебесплатноservices предлагает только туннели в других направлениях, т. е. из IPv4 в IPv6, а не наоборот, насколько мне известно. Вы можете настроить свой собственный туннель на другом хосте, работающем в режиме двойного стека (и IPv4, и IPv6), или попытаться найти какой-нибудь коммерческий сервис для этой цели, но это выходит за рамки Server Fault, и я сомневаюсь, что это то, что вам нужно.
Для загрузки файла вы можете использовать другой ПК и просто передать его на свой IPv6-сервер через SSH.
решение2
Решением было перейти на 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-es. Если вы используете какой-то другой VPS, скопируйте и вставьте только nameservers
Это позволило VPS (совершенно волшебным образом) получить доступ к Интернету IPv4 (да, даже устанавливать пакеты с сайтов поставщиков IPv4).
Эта услуга управляется одним человеком, который также имеет доступ ко всему вашему трафику IPv4 и всему вашему трафику DNS. Если вы передаете конфиденциальные данные или создаете серьезный веб-сайт, я думаю, что лучшим вариантом будет получить VPS с поддержкой IPv4 на данный момент. Вы также можете использовать это, чтобы загрузить какой-то пакет, который вы не смогли загрузить, а затем вернуться к своим исходным серверам имен.
решение3
Использование прямого 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
).