服务器临时关闭IPv6
服务器上有些程序会优先走 IPv6,临时想让它走 IPv4,可以先从程序自己的设置里改。如果程序没有这个选项,也可以从系统这边处理。记一下两种办法,方便之后恢复。 动手之前,先确认自己是用 IPv4 连上服务器的,免得把自己关在外面。ip -4 addr 只能看到服务器有没有 IPv4 地址,不能证明当前 SSH 走的是 IPv4。在当前 SSH 会话中可以看一下: echo “$SSH_CONNECTION” 输出依次是客户端地址、客户端端口、服务器地址、服务器端口,第三项是这次连接使用的服务器地址。确认是 IPv4,并且能重新登录,再继续。 方案一:用 sysctl 临时禁用 sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1 sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1 需要恢复时,把值改回 0: sudo sysctl -w net.ipv6.conf.all.disable_ipv6=0 sudo sysctl -w net.ipv6.conf.default.disable_ipv6=0 这里按原来两项都是 0 来写,动手前最好先查一下原值。禁用会移除接口上的 IPv6 地址和路由,重新启用也不等于原来的静态配置会完整回来,需要再检查。只执行 sysctl -w 没有写入配置文件,重启后是否启用,还是看系统原来的配置。 方案二:用防火墙拦住 IPv6 出口 如果只是临时拦住服务器本机程序的 IPv6 出口,也可以用