部署 Socks5 代理¶
我們在此提供兩種 socks5 的安裝方法,為避免問題,請仔細閱讀相關說明。
需要代理 UDP 協定¶
由於 socks5 udp 代理的特性,這會讓問題和麻煩越來越多。如果您確定需要使用 UDP,則必須遵循以下規則:第一,您的主機系統必須為 Linux,且防火牆需要開放 UDP 連接埠 50000-55000。第二,您的伺服器網路絕不能是 NAT(FULL NAT 也不行,現有許多雲端伺服器都是 NAT 模式)。
小撇步
為什麼主機必須是 Linux?因為在其他系統上,Docker 可能無法正常映射如此大範圍的連接埠;其次,在其他系統上,Docker 的網路模式無法設定為主機模式。
如果您不確定您的伺服器網路是否為 NAT,請透過 ifconfig 等指令獲取預設網路介面的 IP 位址,然後在您想使用代理的地方 ping 這個位址。如果 PING 不通,那麼您的伺服器可能位於 NAT 環境中。當然,即使有條件不符,也不代表就不能使用 UDP,您仍然可以自行架設 gost,文末將介紹如何架設。
注意
由於 SOCKS5 UDP 代理的特性,如果您確定需要 UDP,請設定防火牆允許所有連接埠進行 UDP 通訊。
無需代理 UDP 協定¶
如果您不需要代理 UDP 協定,那麼一切都很簡單。執行以下指令即可啟動一個 SOCKS 服務。
docker run -it --rm -p 1080:1080 --name socks -e LOGIN=username -e PASSWORD=passwd rev1si0n/socks5
指定出口網卡¶
如果您的伺服器或電腦上有多個可上網的介面,以家用電腦為例,您可能透過網路線和 Wi-Fi 分別連接了兩個網路,那麼您的電腦可能就有兩個網路介面,如 wlan0 和 eth0。而您想指定代理要透過哪個網路出口。如果您想使用 eth0 作為出口,使用以下指令啟動 SOCKS 服務即可。
注意
您的電腦或伺服器必須為 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 但無法滿足上述條件,或者用不到指定出口介面,或者不想安裝 Docker,您可以嘗試使用 gost。 從 github.com/ginuerzh/gost/releases/ 下載對應系統的可執行檔壓縮包。
gost -L=socks5://username:passwd@:1080
提示
完成所有部署操作後,請參照設定代理的章節來了解如何設定裝置的網路代理。