最近发现一个很奇怪的问题,几台服务器因为修改了DNS,重启了network。
发现服务器的docker端口,外部无法访问了,内部访问正常。异常服务器上其他应用内外都是访问正常的。
重启docker服务后,问题得到恢复,但是不清楚具体原因总感觉很奇怪。
于是一番google了解到,docker服务启动时会将 net.ipv4.ip_forward ipv4端口转发参数设置为1。
我们的异常服务器上执行检查命令 sysctl net.ipv4.ip_forward
发现net.ipv4.ip_forward的值为0,意思是docker无法进行端口转发了。
于是修改系统参数,将net.ipv4.ip_forward修改为静态固定配置1,并重载此参数,命令如下
echo 'net.ipv4.ip_forward = 1' >> /usr/lib/sysctl.d/50-default.conf sysctl -p /usr/lib/sysctl.d/50-default.conf
问题即可恢复