V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yingqiuQAQ
V2EX  ›  程序员

Iptables 大佬速来。。。

  •  
  •   yingqiuQAQ · 2022-08-04 17:32:21 +08:00 · 2432 次点击
    这是一个创建于 843 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    9 条回复    2022-08-05 02:54:12 +08:00
    liuxu
        1
    liuxu  
       2022-08-04 17:37:28 +08:00
    docker network 直接使用 host driver
    yingqiuQAQ
        2
    yingqiuQAQ  
    OP
       2022-08-04 17:40:31 +08:00
    @liuxu 嗯嗯这是一种办法 目前主要是想测试 本机的 127.0.0.1 在容器中如何访问
    liuxu
        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
    saltbo
        4
    saltbo  
       2022-08-04 21:20:57 +08:00
    通过 docker0 的 ip 就能直接访问啊
    zwlinc
        5
    zwlinc  
       2022-08-04 22:14:33 +08:00
    宿主机的服务只绑定 127.0.0.1 吗,这种情况下,容器用哪个 IP 访问宿主机呢?
    hefish
        6
    hefish  
       2022-08-04 22:24:14 +08:00
    本机的 127.0.0.1 要想访问,我觉着可以 docker 的各个容器里配好 ospf 协议,组成一个复杂的网络。
    不然我也想不出办法去访问别人的 loopback 地址,
    mikeguan
        7
    mikeguan  
       2022-08-04 22:28:31 +08:00 via Android
    不知道 lo 绑个 IP 有没有用,明天试下
    pmispig
        8
    pmispig  
       2022-08-04 23:15:48 +08:00
    如果换个思路就简单很多,再创建一个桥,把这个本来应该在 127.0.0.1 的服务 bind 到这个桥 IP 试试。
    或者干脆直接 bind 到 docker0 这个桥 IP
    naturegreen
        9
    naturegreen  
       2022-08-05 02:54:12 +08:00 via Android
    host.docker.internal 不行吗?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   862 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 21:55 · PVG 05:55 · LAX 13:55 · JFK 16:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.