CentOS7多IP搭建SOCKS5代理服务器
SOCKS5 是⼀个代理协议,它在使⽤TCP/IP协议通讯的前端机器和服务器机器之间扮演⼀个中介⾓⾊,使得内部⽹中的前端机器变得能够访问Internet⽹中的服务器,也可隐藏⽤户的IP地址。前⼀阵⼦有朋友⾃⼰在搭建socks5服务器时因为多IP所以配置都是失败的,今天有空试了⼀下留个记录。原理我不多赘述了,这⾥就简单介绍⼀下如果搭建使⽤。
这⾥的多IP的是基于iptables中设置对应⽤户出⼝来实现的。
服务器环境
服务器使⽤的是腾讯云服务器,安装了CentOS7.6的版本,配置了双IP(见下图),关于配置多IP过程这⾥不说明了,我这⾥将两个IP 绑定在了同⼀个⽹卡上,主IP绑定在eth0⽹卡上,辅助IP绑定在了虚拟⽹卡eth0:1上。在配置好IP后测试⼀下这些IP是否都是可⽤(都是通的),同时安全组开放1080端⼝。
⽹卡信息
安装SS5
安装ss5需要部分依赖等,我这⾥把bash列出来了,切换到root⾝份后直接复制粘贴进去即可。
复制代码
yum install -y gcc openldap-devel pam-devel openssl-devel
wget jaist.dl.sourceforge/project/ss5/ss5/3.8.9-8/ss5-3.8.
tar -vzx -f ss5-3.8.
cd ss5-3.8.9/
./configure
make
make install
chmod a+x /etc/init.d/ss5
安装完毕后,可以正常启动,如果发现⽆法启动或报错请根据⽇志解决。
复制代码
service ss5 restart
可以成功启动后,简单修改下配置⽂件,使其需要进⾏⾝份验证。如果提⽰vim不存在则可以使⽤vi编辑器,或使⽤“yum install -y vim”安装后再执⾏。
复制代码
vim /etc/opt/f
根据下图修改,到对应⾏将“#”删除,同时在“auth”⼀⾏末尾Authentication列将“-”修改为“u”,“permit”⼀⾏中的Auth列修改“-”为“u”。修改完毕后保存。
修改完配置⽂件后先不要急着重启,我们去添加⼀下ss5的⽤户配置⽂件。我这⾥因为有两个IP所以配置了两个账号,每⼀⾏配置⼀个⽤户,格式:⽤户+空格+密码。
复制代码
vim /etc/opt/ss5/ss5.passwd
设置完毕后,尝试重启⼀下ss5服务。
复制代码
service ss5 restart
这⾥提⽰了“OK”,那么ss5服务的配置基本上是正确了,这⾥我使⽤了QQ⾃带的⽹络测试,测试了⼀下两个IP都是通的,如果这⾥测试没有问题,那么ss5的配置就可以告⼀段落了,如果提⽰“⽆法连接到代理服务器”则表⽰配置还是有问题,可以尝试重启ss5服务,检查防⽕墙是否拦截,selinux拦截,安全组未开放1080端⼝等情况。
配置iptables
配置完ss5服务后如果使⽤不同的IP,代理后结果还是显⽰主IP,这⾥需要根据⽤户去限制出⼝IP。⾸先添加⽤户,这⾥的⽤户
和“/etc/opt/ss5/ss5.passwd”中添加的⽤户需要对应。添加完后查看⽤户对应的uid,下⼀步需要⽤到。
复制代码
useradd tom1 -p tom
useradd tom2 -p tom
id tom1
id tom2
可以看到⽤户的uid分别是1000和1002,然后我们对限制添加到iptables中。其中我标记红⾊的地⽅为对应的⽤户id,标注黄⾊底⾊的IP 即为需要对应的出⼝IP。腾讯云中绑定的内⽹IP出去即为对应的公⽹IP,⽹卡中绑定的是腾讯云的内⽹IP,所以这⾥绑定了对应的内⽹
IP(对应IP见第⼀张图),如果使⽤“ifconfig”查看到⽹卡绑定为公⽹IP则使⽤对应的公⽹IP。所以这⾥需要特别注意,根据⾃⼰情况替换对应的uid和出⼝IP,不能照搬。
复制代码
#配置⽤户tom1
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.0.8
#配置⽤户tom2
centos vim命令
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.0.17
设置完后,查看⼀下配置是否已经写⼊,我这⾥红⾊⽅框处的即为刚才的配置。
复制代码
iptables -nvL -t nat
iptables -nvL -t mangle
配置好iptables后需要再对ss5添加⼀下对应的⽤户,设置对应⽤户和出⼝IP,请务必与上⽅iptables中对应uid和ip处保持⼀致。启动成功则配置完毕。
复制代码
service ss5 stop #由于服务启动⽆法写⼊,这⾥需要关闭
ss5 -u tom1 -b 172.17.0.8
ss5 -u tom2 -b 172.17.0.17
service ss5 start #关闭后再次启动
到这⾥配置已经结束了,我再使⽤qq进⾏了测试,提⽰连接成功,如果这⾥提⽰连接失败,则表⽰配置还是有问题的。
最后在浏览器中测试,我这⾥使⽤了傲游浏览器,它⾃带了socks5⾝份验证。
教程中的过程都是我亲⾃测试过可以成功的,新⼿配置可能还是会有⼀点点困难,多尝试即可,不同情况下配置可能有些不同但是基本思路是⼀致的。
请不要尝试使⽤我这⾥的代理配置,在我写完教程后服务器资源就释放和回滚了 :)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论