服务器重启network后,容器对外端口访问失败问题

364 阅读1分钟

最近发现一个很奇怪的问题,几台服务器因为修改了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 

 问题即可恢复