请问 能否可以设置一条规则, 实现容器内部(docker0 网桥下的容器)访问主机上监听 127.0.0.1 的防火墙规则。
我的理解是 容器内部的流量从 docker0 网卡出来 会走到 eth0 网卡 然后 dnat 以下就行
实际上不能这样配置,这种路由可行吗
![]() | 1 liuxu 2022-08-04 17:37:28 +08:00 docker network 直接使用 host driver |
![]() | 2 yingqiuQAQ OP @liuxu 嗯嗯这是一种办法 目前主要是想测试 本机的 127.0.0.1 在容器中如何访问 |
![]() | 3 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 |
![]() | 4 saltbo 2022-08-04 21:20:57 +08:00 通过 docker0 的 ip 就能直接访问啊 |
![]() | 5 zwlinc 2022-08-04 22:14:33 +08:00 宿主机的服务只绑定 127.0.0.1 吗,这种情况下,容器用哪个 IP 访问宿主机呢? |
6 hefish 2022-08-04 22:24:14 +08:00 本机的 127.0.0.1 要想访问,我觉着可以 docker 的各个容器里配好 ospf 协议,组成一个复杂的网络。 不然我也想不出办法去访问别人的 loopback 地址, |
7 mikeguan 2022-08-04 22:28:31 +08:00 via Android 不知道 lo 绑个 IP 有没有用,明天试下 |
![]() | 8 pmispig 2022-08-04 23:15:48 +08:00 如果换个思路就简单很多,再创建一个桥,把这个本来应该在 127.0.0.1 的服务 bind 到这个桥 IP 试试。 或者干脆直接 bind 到 docker0 这个桥 IP |
![]() | 9 cense 2022-08-05 02:54:12 +08:00 via Android host.docker.internal 不行吗? |