因为实际需要在自己的CentOS上搭建了一个socks5代理服务器,将整个流程记录下来以供大家参考
这悠长命运中的晨昏
常让我 望远方出神
实际的工作的有时候需要用到代理服务器,通过代理服务器可以一定程度上隐藏自己的真实IP,将请求数据交给代理服务器,代理服务器在把我们的请求发送到服务端,这样服务器就会以为是代理服务器在请求服务,而不知道真正请求服务获取消息的用户IP,大致流程如下:
简单来说代理服务器会转发我们的请求流量,而服务端会认为是代理服务器在请求服务。
目前三大主流的代理协议包括Socks5代理,HTTP代理,HTTPS代理,由于socks5协议工作在传输层和应用层之间,采用TCP/IP协议进行通信,对应用层的多种协议有较好的兼容性,因此应用的十分广泛。
首先需要准备一台服务器用作代理服务器,这里用了Centos的云服务器来作配置
安装依赖环境如下
yum -y install gcc openldap-devel pam-devel openssl-devel
创建好一个目录,进入该目录后,wget下载好ss5安装文件
wget http://jaist.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz
解压安装文件
tar zxvf ss5-3.8.9-8.tar.gz
进入目录后进行编译
cd ss5-3.8.9
./configure
make && make install
如果没有报错的话说明成功安装ss5
接下来修改配置文件,首先进行备份
cp /etc/opt/ss5/ss5.conf /etc/opt/ss5/ss5.conf.bak
修改配置文件
vi /etc/opt/ss5/ss5.conf
:set nu 可以标注行号,找到87行取消注释
#auth 0.0.0.0/0
修改为
auth 0.0.0.0/0
找到第203行取消注释,同时开启认证 注意修改的那个u
注意:这里如果不需要添加用户密码认证仅去掉注释即可,也不需要修改/etc/opt/ss5/ss5.passwd文件
#permit - 0.0.0.0/0 - 0.0.0.0/0 - - - - -
修改为
permit u 0.0.0.0/0 - 0.0.0.0/0 - - - - -
:wq 保存配置并退出
在/etc/opt/ss5/ss5.passwd文件中可以添加用户名和密码,每行写一个用户名和密码,用户名和密码用空格隔开,例如:
test ss5test
如果实际需要,建议增加密码复杂度
修改端口配置文件
vi /etc/sysconfig/ss5
第2行取消注释,同时修改为自己需要的端口,默认端口为1080
SS5_OPTS=" -u root -b 0.0.0.0:9988"
这里依据实际需求调整,主要在修改系统资源配置,如果ss5不影响正常使用或使用人数较少可以不修改
ulimit -SHn 10240
ulimit -SHs unlimited
echo 100000 >/proc/sys/net/nf_conntrack_max
修改执行权限
chmod u+x /etc/rc.d/init.d/ss5
chmod +x /etc/init.d/ss5
开机自启
chkconfig --add ss5
systemctl restart ss5
启动ss5并检查状态
systemctl start ss5
systemctl status ss5
正常启动后可以进行ss5测试,如果连接不上考虑放行端口,云服务器一直开放了所有端口
如果还不行,就考虑把用户名和密码认证给去掉,/etc/opt/ss5/ss5.passwd文件清空,/etc/opt/ss5/ss5.conf文件第203行仅注释,其他不变
用QQ测试,QQ登入界面右上角设置
或者在代理软件中添加好代理,然后通过在线网站查询自己的IP
可以看到我们的请求已经通过服务器发送出去了
至此,ss5代理服务器搭建成功,若有其他疑问,欢迎评论留言