如何解决传入流量不会转发到正确的Docker容器
从服务器A到服务器B的端口为1111 / UDP的传入流量,服务器B具有多个正在运行的容器,并且其中一个容器(udp-listener)正在端口1111 / udp上侦听,并且IP为(172.17.0.2),问题是:
- 使用ip 172.17.0.2 停止容器“ udp-listener”
- 像Nginx一样启动新容器,因此Nginx现在具有ip 172.17.0.2
- 启动具有下一个IP的“ udp-listener” 172.17.0.3
- 现在,来自服务器A的传入流量仍在尝试访问 172.17.0.2 ,这是输出
$ tcpdump port 1111
17:30:09.875982 IP Server-A-IP.pvsw > 172.17.0.2.pvsw: UDP,length 49
现在,如果我将“ udp-listener ”容器IP 172.17.0.2
赋予了,那么它将再次起作用。
任何提示我可以在哪里查找,btw服务器A不可访问,它只是将事件发送到服务器B的公共IP。
什么是调试的最佳实践?有任何工具或教程吗?
我还检查了IP表中是否有任何规则,但找不到任何内容,结果如下:
Chain PREROUTING (policy ACCEPT 2178 packets,155K bytes)
pkts bytes target prot opt in out source destination
12M 805M PREROUTING_direct all -- * * 0.0.0.0/0 0.0.0.0/0
12M 805M PREROUTING_ZONES_SOURCE all -- * * 0.0.0.0/0 0.0.0.0/0
12M 805M PREROUTING_ZONES all -- * * 0.0.0.0/0 0.0.0.0/0
3408K 204M DOCKER all -- * * 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type LOCAL
Chain INPUT (policy ACCEPT 780 packets,46800 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 789 packets,47332 bytes)
pkts bytes target prot opt in out source destination
6021K 361M OUTPUT_direct all -- * * 0.0.0.0/0 0.0.0.0/0
0 0 DOCKER all -- * * 0.0.0.0/0 !127.0.0.0/8 ADDRTYPE match dst-type LOCAL
Chain POSTROUTING (policy ACCEPT 807 packets,48412 bytes)
pkts bytes target prot opt in out source destination
0 0 MASQUERADE udp -- * * 172.17.0.1 172.17.0.1 udp dpt:8080
0 0 MASQUERADE udp -- * * 172.17.0.2 172.17.0.1 udp dpt:1111
Chain DOCKER (2 references)
pkts bytes target prot opt in out source destination
3348K 201M RETURN all -- docker0 * 0.0.0.0/0 0.0.0.0/0
0 0 RETURN all -- br-4a68f517a271 * 0.0.0.0/0 0.0.0.0/0
0 0 DNAT udp -- !docker0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:8080to:172.17.0.1:8080
0 0 DNAT udp -- !docker0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:1111 to:172.17.0.2:1111
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。