发现一个奇怪的网络问题,vmware里一个程序的端口通过vmnat穿透出来,然后这个端口就能够通过局域网被其他机器访问,但是另一个网段就没法访问这个端口。使用主机上的其他程序使用开启同样的端口,另一个网段的机器却可以访问。我想不出有什么原因会导致这个结果。防火墙也关了。
难道vmnat自带防火墙会识别不是同一网段的ip嘛?
但是奇怪的是,同样是外部网段,10.10网段却可以访问。
之后灵光一现,我们校园网无线wifi给设备分配的网段恰好是172.19.0.1/24,而虚拟机里面的docker的bridge网段恰好也是172.19.0.1/24,导致iptable里面把对外面的流量全部导到docker容器了
得给docker设置一个不冲突的ip网段才行。
随便瞎想一个。
通过ip addr查到接口名称,里面包含了网络的id格式为br-id
docker network ls通过网络id查到是哪个docker-compose项目创建的这个网络。
然后找到哪个docker-compose.yaml文件创建的这个网络去里面改网络即可。因为docker的网络修改只能通过删除后创建来修改。
networks:
default:
internal:
internal: true
ipam:
config:
- subnet: 172.168.0.0/24