禁用Linux默认端口监听IPv6地址,修改为监听IPv4
一、前言
最近在使用阿里云的负载均衡ALB,监听端口总是提示异常,但是比较奇怪的是使用 ipv4 的地址能访问对应端口的服务,后面经过阿里云工程师的指示,使用 netstat 命令看到监听的是 tcp6 ,需要改为 tcp 才行,折腾了好久,这里做个记录。
二、问题
负载均衡ALB实例中提示异常

这是我的服务端口
powershell
netstat -tuln | grep 8182

使用 ipv4 的地址访问

三、解决
阿里云工程师说使用 netstat 查看端口要显示 tcp 才行,百度一下说 Linux 中默认开启 ipv6 ,而 ipv6 也能处理 ipv4 的请求,但我从来没有用过 ipv6 ,现在默认开启 ipv6 也对我的工作造成了影响,并且 ipv4 已经能满足我需求了,禁用 ipv6 也可节省资源。
先打开配置文件
powershell
vim /etc/sysctl.conf

加入如下配置
powershell
# 禁用所有接口的IPv6
net.ipv6.conf.all.disable_ipv6 = 1
# 禁用默认接口的IPv6(新网卡生效)
net.ipv6.conf.default.disable_ipv6 = 1
# 可选:禁用回环网卡lo的IPv6
net.ipv6.conf.lo.disable_ipv6 = 1

加载配置文件,无需重启系统
powershell
sysctl -p

验证一下
powershell
netstat -tuln | grep 8182

可以看到已经禁用 ipv6 了,然后再到负载均衡ALB查看监听状态

可以看到正常了