2025年8月4日 星期一

在 docker 中創建 WireProxy 代理伺服器

在 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

如此一來就可以輕鬆建立對應各個伺服器的代理了,要關哪個改哪個都是獨立的,隨意輕鬆來互相不影響。





沒有留言:

張貼留言