问题
在服务器使用docker部署应用的时候,网站本地访问正常,但是无法使用IP地址访问,防火墙端口已经放行(本人服务器系统CentOS 7)
解决方法
经过一番查找,发现Linux系统中有一个net.ipv4.ip_forward参数,可以设置为0和1
出于安全考虑,Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时,其中一块收到数据包,根据数据包的目的ip地址将数据包发往本机另外一块网卡,该网卡根据路由表继续发送数据包。这一般是路由器所要实现的功能。
查看配置文件
cat /etc/sysctl.conf
发现该参数值为0
系统默认是关闭的,所以默认值是0
方法一
vi /etc/sysctl.conf
修改该参数值为1
net.ipv4.ip_forward = 1
保存退出,然后输入下面
sysctl -p /etc/sysctl.conf
或者重启network
systemctl restart network
方法二
这个方法是临时修改,服务器关机重启,或者重启network后就失效了
echo 1 > /proc/sys/net/ipv4/ip_forward
或者
sysctl -w net.ipv4.ip_forward=1
上面是两种解决方法
整理不易,如果对你有帮助记得点个赞!