tcpdump没有回包、内网地址和docker分配地址冲突问题排查和解决

博客讲述了在尝试开通两台机器间网络策略时遇到的问题,即172.17.1.100无法telnet到10.10.1.100。通过tcpdump发现B机器收到数据包但未回包,原因是B机器的route中172.17网段对应docker。解决方案包括修改docker网段或在B机器上设置代理转发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 引入

起因是近期要开通某两个内网地址之间的网络策略。
这里假定A机器的地址是172.17.1.100,B机器的地址是10.10.1.100,我们需要172.17.1.100访问10.10.1.100

往常来说,首先找网络部门开通这两个地址之间的硬件防火墙和软件防火墙即可。但是这次网工帮我开通了,我就是telnet不通。

# 在172.17.1.100机器上执行
telnet 10.10.1.100 8000

2 tcpdump

使用tcpdump在B机器上抓包发现,接收到了数据包,但是没有回包:

# 在10.10.1.100机器上执行
tcpdump tcp port 8000 and host 172.17.1.100

在这里插入图片描述

3 route

然后在B机器上查看route,发现路由地址中172.17是docker的地址:

# 在10.10.1.100机器上执行
route -n

在这里插入图片描述

难怪没有回包,因为包发到docker的网段去了,并没有发到A机器。

4 解决

这里有两个解决方案:

  1. 修改docker的网段,这个适合docker上没有跑重要业务,把docker冲突的网段修改了就解决了
  2. 把这台机器上要访问的服务做一个代理转发
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值