Centos系统搭建Socks5(ss5)网络代理服务器

Socks5 代理是一种网络协议,它在客户端和服务器之间充当中介,允许数据包通过一个安全的隧道传输。与前一代 Socks4 相比,Socks5 支持更广泛的认证方法和更多的网络协议,包括IPv6和UDP。

Socks5 一般用于网络代理转发请求,隐藏真实的请求IP地址,或者用于绕过网络限制的目标服务器,将自己的访问请求到代理服务器,通过网络代理服务器将请求转发到目标服务器。

ss5 官网:http://ss5.sourceforge.net

下载地址:https://sourceforge.net/projects/ss5/files/

Socks5代理的优势

1、增强的安全性

Socks5 代理提供了一层额外的安全保护,使你的网络活动难以被追踪。

2、支持多种协议

Socks5 代理支持各种网络协议,包括HTTP、FTP和SMTP,使其适用于多种网络应用。

3、减少错误和性能问题

由于 Socks5 代理不重新封装数据包,它能够减少错误率,提高传输效率。

搭建步骤

下面十一张(www.11zhang.com)来演示一下搭建Socks5(ss5)网络代理服务器的详细步骤,本文演示的服务器是阿里云香港云服务器ECS,安装的是 CentOS 7.9 64位 系统。

1、确保你的云服务能正常使用wget、tar、make、vim等工具,可以使用下面的命令安装这些工具;

# 检查wget是否安装
which wget || yum install wget -y
 
# 检查tar是否安装
which tar || yum install tar -y
 
# 检查make是否安装
which make || yum install make -y
 
# 检查vim是否安装
which vim || yum install vim -y

---------------------------------------------------------

#安装wget的命令
yum install wget

#安装tar解压工具
yum install -y tar
 
#安装make的命令
yum groupinstall "Development Tools"
 
#安装vim的命令
yum install -y vim

Centos系统搭建Socks5(ss5)网络代理服务器

2、使用yum安装gcc、OpenLDAP开发库、PAM开发库和OpenSSL开发库等依赖

yum install -y gcc openldap-devel pam-devel openssl-devel

Centos系统搭建Socks5(ss5)网络代理服务器

3、使用wget 下载SS5安装包

wget http://jaist.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz

Centos系统搭建Socks5(ss5)网络代理服务器

PS:如果下载后解压出错,先用浏览器下载好,然后上传到服务器,下载地址:http://jaist.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz

4、解压安装包

tar -vzx -f ss5-3.8.9-8.tar.gz

Centos系统搭建Socks5(ss5)网络代理服务器

5、进入ss5目录,然后安装ss5服务:依次执行下面的每条命令,也可以全复制一起执行

cd ss5-3.8.9/
./configure
make
make install

Centos系统搭建Socks5(ss5)网络代理服务器

Centos系统搭建Socks5(ss5)网络代理服务器

Centos系统搭建Socks5(ss5)网络代理服务器

12、再重启一下ss5服务,如下图;

service ss5 restart

Centos系统搭建Socks5(ss5)网络代理服务器

PS:这里提示了“OK”,那么ss5服务的配置基本上是正确了。

13、查看ss5服务,SS5的默认端口是1080

netstat -lntp  | grep ss5

Centos系统搭建Socks5(ss5)网络代理服务器

PS:如果需要更改端口,请执行下面的命令,改为自己需要的端口,如:SS5_OPTS=" -u root -b 0.0.0.0:9988"

vi /etc/sysconfig/ss5

14、至此,恭喜你完成了所有配置!这里我使用了QQ自带的网络测试了一下,如下图。

Centos系统搭建Socks5(ss5)网络代理服务器

Centos系统搭建Socks5(ss5)网络代理服务器

PS:如果提示“无法连接到代理服务器”则表示ss5配置还是有问题,可以尝试重启ss5服务,检查防火墙是否拦截、selinux拦截、安全组是否已开放1080端口等情况。

知识拓展

下面介绍一下开启IP转发功能,根据自己的需要配置(无需求可跳过)。

1、查看系统是否开启了IP转发功能

sysctl net.ipv4.ip_forward

Centos系统搭建Socks5(ss5)网络代理服务器

PS:如上图,显示“net.ipv4.ip_forward = 0”就是未开启,显示“net.ipv4.ip_forward = 1”就是已开启。

2、接下来开启系统的IP转发功能功能,打开系统配置文件,按 i 键开启编辑模式,如下图;

vim /etc/sysctl.conf

Centos系统搭建Socks5(ss5)网络代理服务器

①找到一行类似于 net.ipv4.ip_forward=0 的配置项,如果没有找到该配置项,可以在文件的末尾添加一行 net.ipv4.ip_forward=1,如下图;

Centos系统搭建Socks5(ss5)网络代理服务器

②然后按 Esc 键退出编辑模式,再按 :wq 保存配置并退出

3、使新的配置生效

sysctl -p

Centos系统搭建Socks5(ss5)网络代理服务器

4、再次检查是否已经成功设置为1(开启IP转发功能),如下图;

sysctl net.ipv4.ip_forward

Centos系统搭建Socks5(ss5)网络代理服务器

5、执行下面的命令,把刚才配置的账号密码添加到系统用户,就是ss5.passwd里的账号,如果要批量添加,每一行命令记得加分号,如下图;

useradd user001 -p 123456;
useradd user002 -p 123456;
useradd user003 -p 123456;

Centos系统搭建Socks5(ss5)网络代理服务器

6、执行下面的命令,查看用户的uid

id user001;
id user002;
id user003;

Centos系统搭建Socks5(ss5)网络代理服务器

PS:会给你显示以上内容,其中的1000、1001、1002就是用户的uid,下一步会用到这个uid

uid=1000(user001) gid=1000(user001) groups=1000(user001)

uid=1001(user002) gid=1001(user002) groups=1001(user002)

uid=1002(user003) gid=1002(user003) groups=1002(user003)

7、配置iptables规则,限制用户的出口IP,这里是根据用户的uid去限制的,比如user001用户的uid是1000,配置user001用户的出口IP就是172.17.22.1,以下是示例,根据自己情况修改uid和出口IP

#配置用户user001
iptables -t mangle -A OUTPUT -m owner --uid-owner 1000 -j MARK --set-mark 1000;
iptables -t nat -A POSTROUTING -m mark --mark 1000 -j SNAT --to-source 172.17.22.1;
 
#配置用户user002
iptables -t mangle -A OUTPUT -m owner --uid-owner 1001 -j MARK --set-mark 1001;
iptables -t nat -A POSTROUTING -m mark --mark 1001 -j SNAT --to-source 172.17.22.2;
 
#配置用户user003
iptables -t mangle -A OUTPUT -m owner --uid-owner 1002 -j MARK --set-mark 1002;
iptables -t nat -A POSTROUTING -m mark --mark 1002 -j SNAT --to-source 172.17.22.3;

PS:第一行命令的作用是,当属主为uid 1000的用户发出数据包时,会给这些数据包打上标记为1000的标志;第二条命令的作用是,当数据包被标记为1000时,会将这些数据包的源地址转换为172.17.22.1,然后再发送到外部网络。

8、确保ss5的服务是关闭的状态或执行以下命令关闭SS5服务

systemctl stop ss5

Centos系统搭建Socks5(ss5)网络代理服务器

9、配置ss5用户的出口IP,这里是根据用户名去限制的,注意用户名对应的IP对应iptables里uid配置的IP

ss5 -u user001 -b 172.17.22.1;
ss5 -u user002 -b 172.17.22.2;
ss5 -u user003 -b 172.17.22.3;

PS:如果出现“Can’t unlink pid file /var/run/ss5/ss5.pid ”错误,如下图,需要先创建 /var/run/ss5 目录,然后再启动 ss5,但是每次重启服务器后文件夹又会被删除。临时解决办法:

Centos系统搭建Socks5(ss5)网络代理服务器

①打开rc.local配置文件,按 i 键开启编辑模式,如下图;

vim /etc/rc.d/rc.local

Centos系统搭建Socks5(ss5)网络代理服务器

②在文件的末尾添加一行 mkdir -p /var/run/ss5,如下图;

Centos系统搭建Socks5(ss5)网络代理服务器

③然后按 Esc 键退出编辑模式,再按 :wq 保存配置并退出

④增加文件的执行权限

Centos系统搭建Socks5(ss5)网络代理服务器

10、配置完成后再次重新启动ss5

service ss5 restart

Centos系统搭建Socks5(ss5)网络代理服务器

✅来源:十一张博客
© 版权声明
THE END
如果觉得这篇文章对您有帮助,不妨考虑请我喝杯奶茶😄
点赞0赞赏 分享
评论 抢沙发
头像
评论人工审核通过显示,请勿重复提交!
提交
头像

昵称

取消
昵称表情代码

    暂无评论内容