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

请教如何给多个 docker 容器设置不同 udp 代理,如能解决发 200 微信红包感谢

  •  
  •   wordplat · 2018-11-13 21:26:30 +08:00 · 2009 次点击
    这是一个创建于 2206 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小弟最近在搞一件大事,要给多个 docker 容器设置多个 SS 的 tcp&udp 代理(全局代理),iptables 的 tcp 设置我自己弄好了,成功转发;现在卡在 iptables 的 udp 设置上,不会解决,希望有知道的同学指点下。如方便的话麻烦留下微信号,我加您,然后发服务器 ip 密码给您上去设置。。

    希望是熟悉这一块的同学来设置,熟悉的话就是 10 多分钟的事情。。我自己搞了一天了,搞不定,所以来求助。。如果不熟悉的话占用您太长时间, 200 元也不太值得。。真诚请教的,骗人木有小鸡鸡:)

    期望结果:

    1. 现有 G1、G2、G3 等多个 docker 容器,要在宿主机上通过 iptables 设置 SS 代理转发, 即要实现 docker 容器的透明代理
    2. G1 转发到宿主机 1101 端口
    3. G2 转发到宿主机 1102 端口
    4. G3 转发到宿主机 1103 端口

    验收条件:

    1. 需在宿主机上设置 iptables, 不是在 docker 容器内设置
    2. 给出相关设置的完整命令
    3. 容器内能进行 dns 解析(用是否能进行 dns 解析来判断 udp 转发设置是否成功)
    4. 容器内执行 curl -s https://ip.cn 能正常获取到对应 SS 的 ip 地址

    相关信息:

    宿主机操作系统:

    ubuntu bionic (18.04)

    docker 新建虚拟网段:

    docker network create --subnet=172.172.0.0/16 shadownet

    docker 容器的启动命名:

    docker run -it -d --name G1 --dns=8.8.8.8 --net=shadownet --ip=172.172.1.101 ubuntu

    docker run -it -d --name G2 --dns=8.8.8.8 --net=shadownet --ip=172.172.1.102 ubuntu

    docker run -it -d --name G3 --dns=8.8.8.8 --net=shadownet --ip=172.172.1.103 ubuntu

    宿主机 ss-redir 监听端口:

    ss-local -s *** -p *** -m rc4-md5 -k *** -b 0.0.0.0 -l 1101 -u -v

    ss-local -s *** -p *** -m rc4-md5 -k *** -b 0.0.0.0 -l 1102 -u -v

    ss-local -s *** -p *** -m rc4-md5 -k *** -b 0.0.0.0 -l 1103 -u -v

    我现在遇到的问题是 udp 转发不成功,SS 打印的日志如下:

    2018-11-13 17:03:15 INFO: [udp] server receive a packet

    2018-11-13 17:03:15 INFO: [udp] cache miss: 172.172.0.1:1103 <-> 172.172.1.103:40198

    2018-11-13 17:03:15 INFO: [udp] server receive a packet

    2018-11-13 17:03:15 INFO: [udp] cache miss: 172.172.0.1:1103 <-> 172.172.1.103:58434

    2018-11-13 17:03:20 INFO: [udp] server receive a packet

    2018-11-13 17:03:20 INFO: [udp] cache miss: 172.172.0.1:1103 <-> 172.172.1.103:52104

    4 条回复    2018-11-14 02:39:49 +08:00
    ChristopherWu
        1
    ChristopherWu  
       2018-11-13 21:37:00 +08:00
    我在生产环境上有这方面的经验 @wordplat ,可以试试嘛~
    可以加 NjQ1MzEwODI0 ( base64 的 wechat )
    wordplat
        2
    wordplat  
    OP
       2018-11-13 22:23:37 +08:00
    欢迎欢迎,请稍后,我加您
    @ChristopherWu
    danc
        3
    danc  
       2018-11-13 22:28:01 +08:00
    能用钱解决的问题就不是问题。
    ChristopherWu
        4
    ChristopherWu  
       2018-11-14 02:39:49 +08:00
    问题确认了。。竟然是 docker 的 bug,明天再修-_-
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6049 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 02:19 · PVG 10:19 · LAX 18:19 · JFK 21:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.