部署 Socks5 代理¶
在这里我们提供了两种 socks5 的安装方法,为了避免问题,请仔细阅读相关描述。
需要代理 UDP 协议¶
由于 socks5 udp 代理的特性,这会让坑以及事情越来越多,如果您确定需要使用UDP,您必须遵循这些规则,其一:您的宿主机系统必须为 Linux,且防火墙需要放开 50000-55000
的UDP端口。其二:您的服务器网络必不能为 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
指定出网网卡¶
如果您的服务器或者电脑上有多个可以上网的接口,拿家用电脑来说,您通过网线和 WIFI 分别连接了两个网络,那么您的电脑可能就有两个网络接口 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 但是无法满足上面使用UDP的条件,或者用不到指定出网接口,或者不想安装 docker 您可以尝试 gost。 从 github.com/ginuerzh/gost/releases/ 下载对应系统的可执行文件压缩包。
gost -L=socks5://username:passwd@:1080
提示
完成所有部署操作后,请参照设置代理的章节了解如何设置设备的网络代理。