Skip to content

禁用 IPv6

ssrlive edited this page Mar 27, 2024 · 14 revisions

如果你的 VPS 主机同时启用了 IPv4 和 IPv6 功能, 那么所有从域名字符串解析成 IP 地址的操作均会返回 IPv6 格式的地址, 而有些目标地址指向的服务器并不支持 IPv6 地址类型, 导致连接失败, 因此我们有必要在我们的 VPS 上禁用 IPv6 功能.

可以使用以下命令分别查询本机的 IPv6 和 IPv4 地址:

curl ipv6.ip.sb
curl ipv4.ip.sb
curl ip.sb

Ubuntu 系统上的操作如下.

用 vi 编辑文件 /etc/sysctl.conf

sudo vi /etc/sysctl.conf

用 下箭头 将光标移到文件末尾, 然后按下 i 键将文件切换到编辑模式。在文件的最后加入下面几行。

# IPv6 disabled
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1

输入完毕并检查无误后,按下 键盘左上角的 ESC 键退出编辑模式,然后按下 :wq 这三个键(意思是 冒号,write,quit)来 保存并关闭文件, 然后重启 sysctl

sudo sysctl -p

检查 ifconfig 的输出,这里应该没有 IPv6 地址了。

如果 ifconfig 尚未安装, 就用 sudo apt install net-tools 命令装上

ifconfig
eth0 Link encap:EthernetHWaddr08:00:27:5f:28:8b
inet addr:192.168.1.3Bcast:192.168.1.255Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500Metric:1
RX packets:1346 errors:0 dropped:0 overruns:0 frame:0
TX packets:965 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1501691(1.5 MB) TX bytes:104883(104.8 KB)

如果不行,尝试重启系统 reboot 并再次检查 ifconfig