在 docker 中創建 WireProxy 代理伺服器
上一篇手動創建的可以參考這裡的做法
CHG: 在 Ubuntu 中創建 WireProxy 代理伺服器
重複的如何生成設定檔等等這篇不再重複贅述,會集中在如何部署在 docker 上。會需要部署在 docker 上是因為如果有不只一個 WireProxy 通道要在 host 上跑會變得很難管理。
每次更改設定檔得重啟服務,甚至有時候只是想單獨只要關閉其中一個通道也是相當麻煩,上 docker 就很省事以上都同輕鬆管理。
在 Windows 上可以直接安裝 docker 就可以有圖形管理介面了,如果是在 linux 上可以用 portainer 這個管理套件。都不安裝也沒差純指令管理也行。
下面讓我們開始吧,記得先準備好能用的 wireporxy.conf 檔案
步驟 1:建立 Docker 映像檔
建立 Dockerfile
mkdir -p ~/docker/wireproxy
nano ~/docker/wireproxy/Dockerfile
內容如下
FROM debian:bullseye-slim
# 安裝必要工具
RUN apt update && apt install -y wget tar && rm -rf /var/lib/apt/lists/*
# 建立工作目錄
WORKDIR /opt/wireproxy
# 下載並解壓縮 wireproxy 二進位檔
RUN wget https://github.com/whyvl/wireproxy/releases/download/v1.0.9/wireproxy_linux_amd64.tar.gz -O /tmp/wireproxy_linux_amd64.tar.gz && \
tar -xzf /tmp/wireproxy_linux_amd64.tar.gz -C /opt/wireproxy && \
chmod +x /opt/wireproxy/wireproxy && \
ln -s /opt/wireproxy/wireproxy /usr/local/bin/wireproxy && \
rm /tmp/wireproxy_linux_amd64.tar.gz
# 設定預設啟動命令
ENTRYPOINT ["wireproxy", "-c", "/etc/wireproxy.conf"]
建立 Docker 映像檔
cd ~/docker/wireproxy
docker build -t wireproxy .
這個映像檔可以重複使用,只需要建立一個就足夠
步驟 2:執行 container
# 0. 刪除就有的docker
docker stop wireproxy
docker rm -f wireproxy
# 1. 建立 docker
docker run -d \
--name wireproxy \
--cap-add=NET_ADMIN \
-p 1080:1080 \
-v /etc/wireproxy.conf:/etc/wireproxy.conf \
wireproxy
# 2. 設置開機自動啟動 (no|always)
docker update --restart=always wireproxy
跑完就已經啟動服務了,用下面的指令確定一下IP有無跳轉
myip() {
echo -e "🌐 Direct IPv4 : \033[1;33m$(curl -4 -s ifconfig.me)\033[0m"
echo -e "🌐 Direct IPv6 : \033[1;33m$(curl -6 -s ifconfig.me)\033[0m"
echo -e "🧦 SOCKS5 IPv4 : \033[1;36m$(curl -4 -s --socks5 localhost:1080 ifconfig.me)\033[0m"
echo -e "🧦 SOCKS5 IPv6 : \033[1;36m$(curl -6 -s --socks5 localhost:1080 ifconfig.me)\033[0m"
}; myip
執行多個不同代理的 container
如果要跑多個服務就是步驟2重複執行就可以,只需要更改 port 與 設定檔 即可
例如要讓 1081 對應到本機 /etc/wireproxy/wp0.conf 的話可以像以下這樣設置
docker run -d \
--name wp0 \
--cap-add=NET_ADMIN \
-p 1081:1080 \
-v /etc/wireproxy/wp0.conf:/etc/wireproxy.conf \
wireproxy
如此一來就可以輕鬆建立對應各個伺服器的代理了,要關哪個改哪個都是獨立的,隨意輕鬆來互相不影響。
沒有留言:
張貼留言