对于Docker容器的代理network(服务端)Ubuntu系统

1,133 阅读2分钟

V2rayA(安装)


curl -Ls https://mirrors.v2raya.org/go.sh | sudo bash

sudo systemctl disable v2ray --now

wget -qO - <https://apt.v2raya.org/key/public-key.asc> | sudo tee /etc/apt/trusted.gpg.d/v2raya.asc

echo "deb https://apt.v2raya.org/ v2raya main" | sudo tee /etc/apt/sources.list.d/v2raya.list

sudo apt update

sudo apt install v2raya

sudo systemctl start v2raya.service

sudo systemctl enable v2raya.service

Docker(安装)

sudo apt-get update

sudo apt-get install ca-certificates curl gnupg -y

sudo install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo \
"deb \[arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "\$VERSION\_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

portainer(安装)

docker pull portainer/portainer

docker run -d -p 9000:9000 -p 8000:8000 \
\--restart=always \
\-v /var/run/docker.sock:/var/run/docker.sock \
\-v /mnt/portainer/data:/data \
\--name prtainer \
\-d portainer/portainer

创建Network

docker network create -d bridge  --subnet=172.118.0.0/16 --gateway=172.118.0.1 proxy1
docker network create -d bridge  --subnet=172.119.0.0/16 --gateway=172.119.0.1 proxy2
docker network create -d bridge  --subnet=172.120.0.0/16 --gateway=172.120.0.1 proxy3
docker network create -d bridge  --subnet=172.121.0.0/16 --gateway=172.121.0.1 proxy4
docker network create -d bridge  --subnet=172.122.0.0/16 --gateway=172.122.0.1 proxy5
docker network create -d bridge  --subnet=172.123.0.0/16 --gateway=172.123.0.1 proxy6
docker network create -d bridge  --subnet=172.124.0.0/16 --gateway=172.124.0.1 proxy7
docker network create -d bridge  --subnet=172.125.0.0/16 --gateway=172.125.0.1 proxy8
docker network create -d bridge  --subnet=172.126.0.0/16 --gateway=172.126.0.1 proxy9
docker network create -d bridge  --subnet=172.127.0.0/16 --gateway=172.127.0.1 proxy10

docker network create -d bridge  --subnet=172.128.0.0/16 --gateway=172.128.0.1 proxy11
docker network create -d bridge  --subnet=172.129.0.0/16 --gateway=172.129.0.1 proxy12
docker network create -d bridge  --subnet=172.130.0.0/16 --gateway=172.130.0.1 proxy13
docker network create -d bridge  --subnet=172.131.0.0/16 --gateway=172.131.0.1 proxy14
docker network create -d bridge  --subnet=172.132.0.0/16 --gateway=172.132.0.1 proxy15
docker network create -d bridge  --subnet=172.133.0.0/16 --gateway=172.133.0.1 proxy16

docker network create -d bridge  --subnet=172.134.0.0/16 --gateway=172.133.0.1 proxy17
docker network create -d bridge  --subnet=172.135.0.0/16 --gateway=172.134.0.1 proxy18
docker network create -d bridge  --subnet=172.136.0.0/16 --gateway=172.135.0.1 proxy19
docker network create -d bridge  --subnet=172.137.0.0/16 --gateway=172.136.0.1 proxy20
docker network create -d bridge  --subnet=172.138.0.0/16 --gateway=172.137.0.1 proxy21
docker network create -d bridge  --subnet=172.139.0.0/16 --gateway=172.138.0.1 proxy22

写入路由规则

v2rayA的路由规则,详细了解自行查找v2rayA文档。

这里是监听一个ip端然后对该ip段进行一个socks代理。

outbound:myproxy1=socks(address: 207.174.22.91, port: 7890)
outbound:myproxy2=socks(address: 207.174.22.91, port: 7891)
outbound:myproxy3=socks(address: 207.174.22.91, port: 7892)
outbound:myproxy4=socks(address: 207.174.22.91, port: 7893)
outbound:myproxy5=socks(address: 207.174.22.91, port: 7894)
outbound:myproxy6=socks(address: 207.174.22.91, port: 7895)
outbound:myproxy7=socks(address: 207.174.22.91, port: 7896)
outbound:myproxy8=socks(address: 207.174.22.91, port: 7897)
outbound:myproxy9=socks(address: 207.174.22.91, port: 7898)
outbound:myproxy10=socks(address: 207.174.22.91, port: 7899)

outbound:myproxy11=socks(address: 207.174.22.91, port: 7900)
outbound:myproxy12=socks(address: 207.174.22.91, port: 7901)
outbound:myproxy13=socks(address: 207.174.22.91, port: 7902)
outbound:myproxy14=socks(address: 207.174.22.91, port: 7903)
outbound:myproxy15=socks(address: 207.174.22.91, port: 7904)
outbound:myproxy16=socks(address: 207.174.22.91, port: 7905)

outbound:myproxy17=socks(address: 207.174.22.91, port: 7906)
outbound:myproxy18=socks(address: 207.174.22.91, port: 7907)
outbound:myproxy19=socks(address: 207.174.22.91, port: 7908)
outbound:myproxy20=socks(address: 207.174.22.91, port: 7909)
outbound:myproxy21=socks(address: 207.174.22.91, port: 7910)
outbound:myproxy22=socks(address: 207.174.22.91, port: 7911)
default: direct
# write your own rules below
source(172.139.0.0/16) ->myproxy22
source(172.138.0.0/16) ->myproxy21
source(172.137.0.0/16) ->myproxy20
source(172.136.0.0/16) ->myproxy19
source(172.135.0.0/16) ->myproxy18
source(172.134.0.0/16) ->myproxy17
source(172.133.0.0/16) ->myproxy16
source(172.132.0.0/16) ->myproxy15
source(172.131.0.0/16) ->myproxy14
source(172.130.0.0/16) ->myproxy13
source(172.129.0.0/16) ->myproxy12
source(172.128.0.0/16) ->myproxy11
source(172.127.0.0/16) ->myproxy10
source(172.126.0.0/16) ->myproxy9
source(172.125.0.0/16) ->myproxy8
source(172.124.0.0/16) ->myproxy7
source(172.123.0.0/16) ->myproxy6
source(172.122.0.0/16) ->myproxy5
source(172.121.0.0/16) -> myproxy4
source(172.120.0.0/16) -> myproxy3
source(172.119.0.0/16) -> myproxy2
source(172.118.0.0/16) -> myproxy1