docker端口映射成功,但客户机仍无法访问

问题描述:

创建docker容器的时候,做了端口映射到宿主机, 防火墙已关闭, 但是外部始终无法访问宿主机端口。非docker服务的端口能正常访问。

原因分析:

这种情况基本就是因为宿主机没有开启ip转发功能,从而导致外部网络访问宿主机对应端口是没能转发到 Docker Container 所对应的端口上。

解决办法:

Linux 发行版默认情况下是不开启 ip 转发功能的。这是一个好的做法,因为大多数人是用不到 ip 转发的,但是如果架设一个 Linux 路由或者VPN服务我们就需要开启该服务了。

在 Linux 中开启 ip 转发的内核参数为:net.ipv4.ip_forward,查看是否开启 ip转发:

  1. # cat /proc/sys/net/ipv4/ip_forward // 0:未开启,1:已开启==============================
  1. 打开ip转发功能, 下面两种方法都是临时打开ip转发功能!
  2. # echo 1 > /proc/sys/net/ipv4/ip_forward
  3. # sysctl -w net.ipv4.ip_forward=1
  4.  ==============================
  1. 永久生效的ip转发
  2. # vim /etc/sysctl.conf
  3. net.ipv4.ip_forward = 1
  4. # sysctl -p /etc/sysctl.conf // 立即生效

Linux 系统中也可以通过重启网卡来立即生效 (修改sysctl.conf文件后的生效)

  1. # service network restart //CentOS 6
  2. # systemctl restart network //CentOS 7
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值