Pages

Saturday, 25 August 2018

利用支持用户认证的socks代理服务器程序socks5-server-by-egregors翻墙

 在本地机器的浏览器中,访问https://github.com/Egregors/socks5-server,点击右上角的fork按钮,fork该repo到你的用户名下(假设你的用户名是xyz),那么该页面就会跳转到https://github.com/xyz/socks5-server-1(如果你以前fork过同名的repo),然后访问
https://github.com/xyz/socks5-server-1/blob/master/s5.go ,把第15行的1080改为其它端口号,比如11800

登陆linux vps,首先安装go环境。然后,
cd $GOPATH
go get -u -v github.com/xyz/socks5-server-1
( 可执行文件socks5-server-1就会出现在$GOPATH/bin/里面
然后,
echo 'export USERS="user1:pass1"' >> /etc/profile && . /etc/profile
(这里的user1和pass1分别是你所设置的用户名和密码。它们是在客户机器上连接这个socks代理服务器程序所需要输入的用户名和密码)
然后运行socks5-server-1
会显示:
2018/08/26 12:03:05 SOCKS5 server: https://github.com/Egregors/socks5-server
2018/08/26 12:03:05 Configuration..
2018/08/26 12:03:05 Starting server on 0.0.0.0:11800


不过命令socks5-server-1是运行在前台的,容易退出。我试过利用systemd,未能把它运行为service,所以只好用daemonize把该命令运行为service:
cd ~
daemonize -c .  /root/go/gopath/bin/socks5-server-1
服务器端搭建完成。

在本地机器上。因为在服务器上,给这个socks代理服务器程序设置了用户名和密码,这样在chrome+switchyomega里面就用不了这个程序了-chrome里面,switchyomega不支持给本地的socks代理服务器设置认证但是, 在ff+switchyomega里面支持给本地的socks代理服务器设置认证所以我们可以在ff+switchyomega里面来设置:
在ff+switchyomega里设置一个代理服务器情景模式。代理协议为socks5,代理服务器的值为vps的ip,代理端口为11800,点击代理端口栏后面的锁状图标,在弹出的窗口中输入用户名和密码,点击‘保存更改’。保存选项,ff即可翻墙.

项目地址:https://github.com/Egregors/socks5-server 
-----------


能提供用户名/密码认证的socks代理服务器程序:socks_proxy-by-fgssfgss