Ubuntu16.04禁用ipv6

今天在腾讯云服务器上运行一个mysql的docker镜像,运行完成后老是连接失败。分析发现,虽然我填写的是我服务器的ip地址,但是连接出错的报错信息却提示连接到另一个ip地址失败,猜测应该是ipv6问题。
使用下面的命令查看3306端口情况:

sudo lsof -i:3306

输出如下:
这里写图片描述
基本确认就是ipv6的问题。

分析应该是docker在启动时会优先使用ipv6,所以解决方法是禁用云服务器的ipv6。在网上查到下面两种方法:

方法1:编辑/etc/sysctl.conf这个文件,在文件最后添加下面这行

net.ipv6.conf.all.disable_ipv6 = 1

表示禁用所有网卡的ipv6,但是实际测试发现在我的云服务器上没用。

方法2:编辑/etc/default/grup这一行,找到GRUB_CMDLINE_LINUX在后面添加信息ipv6.disable=1,如下:

GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0 console=ttyS0,115200 console=tty0 panic=5 crashkernel=auto ipv6.disable=1"

这种方法是通过传递内核参数,在内核启动时禁用ipv6。
测试发现这种方法是有效的,然后重启系统后重启docker即可解决问题。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 成长之路 设计师:Amelia_0503 返回首页