如何让docker容器流量经过在其他设备上的clash网关
要让docker容器流量经过在其他设备上的clash网关,可以按照以下步骤进行操作:
-
在其他设备上安装并配置好clash网关,确保可以正常使用。
-
在docker主机上创建一个docker网络,例如:
docker network create --subnet=172.30.0.0/16 my-network这里假设使用了172.30.0.0/16网段。
-
启动一个clash容器,并将其加入到上面创建的docker网络中:
docker run -d --name clash --net my-network --ip 172.30.0.2 -v /path/to/clash/config:/root/.config/clash clash这里假设clash容器的IP地址为172.30.0.2,配置文件路径为/path/to/clash/config。
-
启动其他需要访问网络的容器,并将它们加入到上面创建的docker网络中:
docker run -d --name my-container --net my-network my-image这里假设需要访问网络的容器名为my-container,使用了my-image镜像。
-
在其他设备上配置好clash网关的规则,确保能够正常代理流量。
-
在docker主机上配置iptables规则,将容器流量转发到clash容器:
iptables -t nat -A POSTROUTING -s 172.30.0.0/16 -j MASQUERADE iptables -t nat -A PREROUTING -i docker0 -p tcp -j DNAT --to-destination 172.30.0.2:7890 iptables -t nat -A PREROUTING -i docker0 -p udp -j DNAT --to-destination 172.30.0.2:7890这里假设clash容器的代理端口为7890。
-
现在容器的流量就会经过在其他设备上的clash网关了。可以通过在容器中执行curl等命令测试是否正常访问网络
原文地址: https://www.cveoy.top/t/topic/fiTF 著作权归作者所有。请勿转载和采集!