我有一个 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
如何从仅支持 IPv6 的 VPS 连接到 IPv4 服务器?我听说过 TunnelBroker,但我完全是新手,不知道该如何配置它。
答案1
IPv6 和 IPv4 是不同的协议。如果您在互联网空间中只有 IPv6 地址,则无法直接连接到仅支持 IPv4 的服务。答案很简单 - “不,您不能”。
TunnelBroker 和其他自由的据我所知,服务仅提供其他方向的隧道,即从 IPv4 到 IPv6,而不是相反。您可以在另一台运行双栈(IPv4 和 IPv6)的主机上设置自己的隧道,或者尝试为此目的寻找一些商业服务,但这超出了 Server Fault 的范围,我怀疑这是否是您所需要的。
要下载文件,您可以使用其他电脑,然后通过 SSH 将其传输到您的 IPv6 盒。
答案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。如果您使用的是其他 VPS,请仅复制并粘贴名称服务器
这使得 VPS 能够(非常神奇地)访问 IPv4 互联网(是的,甚至可以从 IPv4 供应商网站安装软件包)。
此服务由一个人运营,他也可以访问您的所有 IPv4 流量和所有 DNS 流量。如果您要传递敏感数据或要创建一个重要的网站,我认为最好的选择是现在就获得一个支持 IPv4 的 VPS。您还可以使用它来下载一些您无法下载的软件包,然后恢复到您的原始名称服务器。
答案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
) 来检查文件的完整性。