部署代理服務¶
在這裡我們提供了兩種 SOCKS5 代理的安裝方法,為了避免問題,請仔細閱讀相關描述。
需要代理 UDP 協議¶
由於 SOCKS5 UDP 代理的特性,會導致許多難以預料的問題,事情也會變得越來越複雜。如果您確定需要使用 UDP,請務必遵循以下規則:其一,您的宿主機系統必須為 Linux,且防火牆需要放開 50000-55000 的 UDP 端口;其二,您的伺服器網絡不能是 NAT(FULL NAT 也不行,目前很多雲伺服器都是 NAT 模式)。
小撇步
為什麼宿主機必須是 Linux?因為在其他系統上 docker 可能無法正常映射如此大範圍的端口,而且其他系統上 docker 的網絡模式也無法設定為主機(host)模式。
如果您不確定自己的伺服器網絡是否屬於 NAT,請通過 ifconfig 等命令獲取默認網絡接口的 IP 地址,然後在您希望使用代理的機器上 ping 這個地址。如果 ping 不通,那麼您的伺服器很可能處於 NAT 網絡中。當然,即使有部分條件不滿足,也不代表完全無法使用 UDP,您仍然可以自行搭建 gost,文末會介紹具體方法。
注意
由於 SOCKS5 UDP 代理的特性,如果您確定需要 UDP,請務必設定防火牆,允許所有端口進行 UDP 通訊。
無需代理 UDP 協議¶
如果您並不需要代理 UDP 協議,那麼一切都很簡單。執行以下命令即可啟動一個 SOCKS5 服務。
docker run -it --rm -p 1080:1080 --name socks -e LOGIN=username -e PASSWORD=passwd rev1si0n/socks5
指定出網網卡¶
如果您的伺服器或電腦上有多個可上網的接口,以家用電腦為例,您通過網線和 Wi‑Fi 分別連接了兩個網絡,那麼您的電腦可能就會有兩個網絡接口,例如 wlan0 和 eth0。當您想指定代理出網所使用的網絡接口時,比如想通過 eth0 出網,使用以下命令啟動 SOCKS5 服務即可。
注意
您的電腦或伺服器必須為 Linux 系統,其他系統不支援指定出網網卡。
docker run -it --rm --net host --name socks -e LOGIN=username -e PASSWORD=passwd -e DEV=eth0 rev1si0n/socks5
如果您已滿足使用 UDP 的全部前置條件,使用如下命令即可。
docker run -it --rm --net host --name socks -e LOGIN=username -e PASSWORD=passwd rev1si0n/socks5
使用 GOST 服務¶
如果您想使用 UDP,但無法滿足上文中使用 UDP 的條件,或者用不到指定出網接口,又或者不想安裝 docker,可以嘗試 gost。 從 github.com/ginuerzh/gost/releases/ 下載對應系統的可執行文件壓縮包。
gost -L=socks5://username:passwd@:1080
提示
完成所有部署操作後,請參照 設定代理 章節,了解如何為設備配置網絡代理。