问题描述

一直使用搬瓦工 VPS 科学访问 ChatGPT,早上突然不行了;提示一个 San Jose 的 IPv6 地址,ip -6 a 查看 VPS 的 IPv6 信息,发现对不上。
好像搬瓦工 VPS 没有 IPv6 的,这是突然有了内网 IPv6 然后使用广播地址,用的人多了被 Ban 了咩?
暂不深究原因,先解决问题再说;找了一圈发现客户端并没有禁用 IPv6 或者 IPv4 优先的设置选项,那么只能从服务端入手:

禁用 IPv6

一刀切,直接关闭 VPS 的 IPv6

临时生效

禁用

1
2
sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.lo.disable_ipv6=1

启用
1
2
sysctl -w net.ipv6.conf.all.disable_ipv6=0
sysctl -w net.ipv6.conf.lo.disable_ipv6=0

永久生效

上述方法,系统重启失效,如果想要永久生效,执行上述操作同时再加上以下命令:

1
2
echo 'net.ipv6.conf.all.disable_ipv6=1' >> /etc/sysctl.conf
echo 'net.ipv6.conf.lo.disable_ipv6=1' >> /etc/sysctl.conf

重启以后依旧有效,不想重启直接运行 sysctl -p 使之生效

设置分流

即:通过修改配置文件设置类似 IPv4IPv6 的出口,然后openai.com的流量走IPv4,此方法较为科学,但相对复杂,容易出问题。
暂时没空研究,关键需求不大,投入产出比不高,服务端配置大致设置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
"outbounds": [
{
"tag":"IPv4",
"protocol": "freedom",
"settings": {}
},
{
"tag":"IPv6",
"protocol": "freedom",
"settings": {
"domainStrategy": "UseIPv6"
}
}
],
"routing": {
"rules": [
{
"type": "field",
"outboundTag": "IPv6",
"domain": ["geosite:openai.com"]
},
{
"type": "field",
"outboundTag": "IPv4",
"network": "udp,tcp"
}
]
}