一、前言
今天因为服务器宕机,重新启动后发现docker
部署的mysql
和redis
都无法通过外网访问。经过排查原因是ip
转发没有开启。下面教大家如何解决
二、问题排查
(1) 查看防火墙运行情况
使用firewall-cmd --state
如果防火墙处于not running
,则可以排除防火墙阻断请求的可能。
如果输出防火墙处于running
则表示防火墙正在运行,需进行下一步排查
(2) 查看防火墙开放了哪些端口和服务。
使用firewall-cmd --list-ports
和firewall-cmd --list-services
,查看是否开放了我们需要访问的端口
(3)查看ip转发是否开启
通过cat /proc/sys/net/ipv4/ip_forward
查看ip转发是否开启。
如果该值为0
则需要配置其开启
通过以下方法进行开启
echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
重新加载并让修改生效。
sudo sysctl -p
我的属于第三种
三、参考
排查Docker端口映射后外部无法访问的问题