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
2、使用yum安装gcc、OpenLDAP开发库、PAM开发库和OpenSSL开发库等依赖
yum install -y gcc openldap-devel pam-devel openssl-devel
3、使用wget 下载SS5安装包
wget http://jaist.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz
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
5、进入ss5目录,然后安装ss5服务:依次执行下面的每条命令,也可以全复制一起执行
cd ss5-3.8.9/
./configure
make
make install
12、再重启一下ss5服务,如下图;
service ss5 restart
PS:这里提示了“OK”,那么ss5服务的配置基本上是正确了。
13、查看ss5服务,SS5的默认端口是1080
netstat -lntp | grep ss5
PS:如果需要更改端口,请执行下面的命令,改为自己需要的端口,如:SS5_OPTS=" -u root -b 0.0.0.0:9988"
vi /etc/sysconfig/ss5
14、至此,恭喜你完成了所有配置!这里我使用了QQ自带的网络测试了一下,如下图。
PS:如果提示“无法连接到代理服务器”则表示ss5配置还是有问题,可以尝试重启ss5服务,检查防火墙是否拦截、selinux拦截、安全组是否已开放1080端口等情况。
知识拓展
下面介绍一下开启IP转发功能,根据自己的需要配置(无需求可跳过)。
1、查看系统是否开启了IP转发功能
sysctl net.ipv4.ip_forward
PS:如上图,显示“net.ipv4.ip_forward = 0”就是未开启,显示“net.ipv4.ip_forward = 1”就是已开启。
2、接下来开启系统的IP转发功能功能,打开系统配置文件,按 i 键开启编辑模式,如下图;
vim /etc/sysctl.conf
①找到一行类似于 net.ipv4.ip_forward=0 的配置项,如果没有找到该配置项,可以在文件的末尾添加一行 net.ipv4.ip_forward=1,如下图;
②然后按 Esc 键退出编辑模式,再按 :wq 保存配置并退出
3、使新的配置生效
sysctl -p
4、再次检查是否已经成功设置为1(开启IP转发功能),如下图;
sysctl net.ipv4.ip_forward
5、执行下面的命令,把刚才配置的账号密码添加到系统用户,就是ss5.passwd里的账号,如果要批量添加,每一行命令记得加分号,如下图;
useradd user001 -p 123456;
useradd user002 -p 123456;
useradd user003 -p 123456;
6、执行下面的命令,查看用户的uid
id user001;
id user002;
id user003;
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
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,但是每次重启服务器后文件夹又会被删除。临时解决办法:
①打开rc.local配置文件,按 i 键开启编辑模式,如下图;
vim /etc/rc.d/rc.local
②在文件的末尾添加一行 mkdir -p /var/run/ss5,如下图;
③然后按 Esc 键退出编辑模式,再按 :wq 保存配置并退出
④增加文件的执行权限
10、配置完成后再次重新启动ss5
service ss5 restart
2024-09-05 21:26:07
,某些文章具有时效性,若有错误或已失效,请在文末评论留言●版权归原作者和机构所有,严禁商用,否则产生的一切后果将由您自己承担
●如果您不喜欢本站有您信息的存在,请邮件告知我们予以删除
暂无评论内容