小弟最近在搞一件大事,要给多个 docker 容器设置多个 SS 的 tcp&udp 代理(全局代理),iptables 的 tcp 设置我自己弄好了,成功转发;现在卡在 iptables 的 udp 设置上,不会解决,希望有知道的同学指点下。如方便的话麻烦留下微信号,我加您,然后发服务器 ip 密码给您上去设置。。
希望是熟悉这一块的同学来设置,熟悉的话就是 10 多分钟的事情。。我自己搞了一天了,搞不定,所以来求助。。如果不熟悉的话占用您太长时间, 200 元也不太值得。。真诚请教的,骗人木有小鸡鸡:)
期望结果:
- 现有 G1、G2、G3 等多个 docker 容器,要在宿主机上通过 iptables 设置 SS 代理转发, 即要实现 docker 容器的透明代理
- G1 转发到宿主机 1101 端口
- G2 转发到宿主机 1102 端口
- G3 转发到宿主机 1103 端口
验收条件:
- 需在宿主机上设置 iptables, 不是在 docker 容器内设置
- 给出相关设置的完整命令
- 容器内能进行 dns 解析(用是否能进行 dns 解析来判断 udp 转发设置是否成功)
- 容器内执行 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