IPv6被认为是IPv4的替代产品,它用来解决现有IPv4地址空间即将耗尽的问题。但目前,开启IPv6可能会导致一些问题。因此有时我们需要关闭IPv6。下面是IPv6的关闭方法应该适用于所有主流的Linux发行版包括Ubuntu、Debian、CentOS。
方法1:
编辑文件/etc/sysctl.conf
vi /etc/sysctl.conf
添加下面的行:
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
如果你想要为特定的网卡禁止IPv6,比如,对于enp0s3,添加下面的行。
net.ipv6.conf.enp0s3.disable_ipv6 = 1
保存并退出文件。
执行下面的命令来使设置生效。
sysctl -p
方法 2:
要在运行的系统中禁止IPv6,依次输入下面的命令:
echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
echo 1 > /proc/sys/net/ipv6/conf/default/disable_ipv6
或,
sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1
现在IPv6已经禁止了。
可以通过ip address list 查看是否已经生效
禁用前

禁用后

在禁止IPv6后可能会遇到一些问题
问题1:
如果你在禁止IPv6后SSH时遇到问题,按照下面的做。
编辑 /etc/ssh/sshd_config 文件
vi /etc/ssh/sshd_config
找到下面的行:
#AddressFamily any
把它改成:
AddressFamily inet
或者,在这行的前面去掉注释(#):
#ListenAddress 0.0.0.0
接着重启ssh来使改变生效。
systemctl restart sshd
问题2:
如果你在禁止IPv6后启动postfix遇到问题,编辑/etc/postfix/main.cf:
vi /etc/postfix/main.cf
注释掉配置中的localhost部分,并且使用ipv4回环。
#inet_interfaces = localhost
inet_interfaces = 127.0.0.1
问题3:
mysql安装后监听IPv6地址
关闭IPv6后,编辑
/etc/my.cnf
在[mysqld]中添加 bind-addres=0.0.0.0
重启mysql /etc/init.d/mysql restart
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具