docker容器内部网络不通,宿主机有网

在docker容器中能ping www.baidu.com

但是curl www.baidu.com没有反应。

最终排查看到是mtu设置的问题。

MTU( Maximum Transmission Unit,最大传输单位),用来设置描述网络接口的最大传输量,需要注意的是,每个网络接口的MTU都不相同。如果网口的mtu与docker0 mtu不一致,就会导致容器内部能够ping,但是curl不通的情况。

如何解决?

将网口的mtu与docker0 mtu保持一致,一般都是1500

如何查看网络接口的MTU?
ifconfg命令,其中

如何修改网络接口的MTU?

因此你在Linux中使用ifconfig会看到有的接口会有1492bytes,
不过在以太网上,标准的定义就是1500bytes.
修改方法:

方法一:

ifconfig ens42f0np0 mtu 1500

优点:所有Linux发行版通用;
缺点:重启后失效。

方法二:

修改配置文件,永久有效

vi /etc/sysconfig/network-scritps/ens42f0np0

MTU=“1500” #增加这条命令,保存后重启网卡生效

service network restart

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值