Iptables 大佬速来。。。

2022-08-04 17:32:21 +08:00
 yingqiuQAQ

请问 能否可以设置一条规则, 实现容器内部(docker0 网桥下的容器)访问主机上监听 127.0.0.1 的防火墙规则。

我的理解是 容器内部的流量从 docker0 网卡出来 会走到 eth0 网卡 然后 dnat 以下就行

实际上不能这样配置,这种路由可行吗

2248 次点击
所在节点    程序员
9 条回复
liuxu
2022-08-04 17:37:28 +08:00
docker network 直接使用 host driver
yingqiuQAQ
2022-08-04 17:40:31 +08:00
@liuxu 嗯嗯这是一种办法 目前主要是想测试 本机的 127.0.0.1 在容器中如何访问
liuxu
2022-08-04 17:47:08 +08:00
@yingqiuQAQ 那需要在 eth0 和 docker0 上添加 iptables 规则,然后 host 的路由表也要改改,连通下 eth0 和 docker0

vagrant@homestead:~/work/tms-api$ ip route
default via 10.0.2.2 dev eth0 proto dhcp src 10.0.2.15 metric 100
10.0.2.0/24 dev eth0 proto kernel scope link src 10.0.2.15
10.0.2.2 dev eth0 proto dhcp scope link src 10.0.2.15 metric 100
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown

vagrant@homestead:~/work/tms-api$ sudo iptables -t nat -L
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
MASQUERADE all -- 172.17.0.0/16 anywhere
saltbo
2022-08-04 21:20:57 +08:00
通过 docker0 的 ip 就能直接访问啊
zwlinc
2022-08-04 22:14:33 +08:00
宿主机的服务只绑定 127.0.0.1 吗,这种情况下,容器用哪个 IP 访问宿主机呢?
hefish
2022-08-04 22:24:14 +08:00
本机的 127.0.0.1 要想访问,我觉着可以 docker 的各个容器里配好 ospf 协议,组成一个复杂的网络。
不然我也想不出办法去访问别人的 loopback 地址,
mikeguan
2022-08-04 22:28:31 +08:00
不知道 lo 绑个 IP 有没有用,明天试下
pmispig
2022-08-04 23:15:48 +08:00
如果换个思路就简单很多,再创建一个桥,把这个本来应该在 127.0.0.1 的服务 bind 到这个桥 IP 试试。
或者干脆直接 bind 到 docker0 这个桥 IP
naturegreen
2022-08-05 02:54:12 +08:00
host.docker.internal 不行吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/870700

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX