我在不同的主机上有 2 个服务器:wireguard 和 shadowsocks。它们按预期工作。
Docker 容器中的 Wireguard 服务器配置(0.0.0.0:51821->51821/tcp,:::51821->51821/tcp,0.0.0.0:51820->51820/udp,:::51820->51820/udp):
[Interface]
Address = 10.20.30.1/24
ListenPort = 51820
PrivateKey = <private_key>
PostUp = iptables -t nat -A POSTROUTING -o `ip route | awk '/default/ {print $5; exit}'` -j MASQUERADE; ip rule add from `ip addr show $(ip route | awk '/default/ { print $5 }') | grep "inet" | grep -v "inet6" | head -n 1 | awk '/inet/ {print $2}' | awk -F/ '{print $1}'` table main;
PostDown = iptables -t nat -D POSTROUTING -o `ip route | awk '/default/ {print $5; exit}'` -j MASQUERADE; ip rule del from `ip addr show $(ip route | awk '/default/ { print $5 }') | grep "inet" | grep -v "inet6" | head -n 1 | awk '/inet/ {print $2}' | awk -F/ '{print $1}'` table main;
Shadowsocks 具有简单的 docker compose 配置:
version: '3.5'
services:
shadowsocks:
image: shadowsocks/shadowsocks-libev:v3.3.5
ports:
- '8388:8388/tcp'
- '8388:8388/udp'
environment:
- METHOD=aes-256-gcm
- PASSWORD=somepass
restart: always
我需要将流量从 wg 转发到 ss 服务器,但需要提供规则 - URL 地址列表 o URL 掩码。
得到下图:
我尝试过各种方法,例如
- 设置原生 linux iptables、ip 路由
- tun2socks lib(转发所有流量)
但我无法创建一个可以成功运行的模型,尤其是通过将其包装在 Docker 中。
因此我向社区寻求帮助。