Centos7搭建SOCKS5多IP代理服务器

如果服务器是多IP,需要先配置好IP,可以先执行命令 ip addr 先查看IP情况,不同服务商规则不一样,运气好你的服务商在你购买ip后自动绑定好了。如果没有就需要创建网卡绑定了

1、进入网卡配置文件目录下 cd /etc/sysconfig/network-scripts 

2、备份网卡配置文件 cp ifcfg-eth0 ifcfg-eth0.bak 

3、查看网卡配置文件 cat ifcfg-eth0

4、进入网卡配置文件,添加新IP配置内容 vim ifcfg-eth0

DEVICE="eth0"
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.10
NETMASK=255.255.255.0
GATEWAY=192.168.0.254
DNS1=8.8.8.8
ARPCHECK=no
NM_CONTROLLED=no
#添加新增IP配置信息
IPADDR1=192.168.1.1
NETMASK1=255.255.255.0
=============

#IPADDR1=这个1是指新IP地址的序号
#NETMASK1=这个1是指新IP掩码的序号
#如果需要增加三个IP则内容如下:
IPADDR1=192.168.1.1
NETMASK1=255.255.255.0
IPADDR2=192.168.1.2
NETMASK2=255.255.255.0
IPADDR3=192.168.1.3
NETMASK3=255.255.255.0

#如果要添加不同网段的IP,IP配置规则同样如此,不需要增加新网关

5、重启网卡配置文件 /etc/init.d/network  restart

6、查看新增加的IP  ip addr

7、使用另外一台主机ping新增加的IP地址是否通

安装Socks5

1、依次执行下列代码完成socks5代理服务的安装

yum -y install gcc gcc-c++ automake make pam-devel openldap-devel cyrus-sasl-devel openssl-devel
wget http://jaist.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz
tar -vzx -f ss5-3.8.9-8.tar.gz
cd ss5-3.8.9/
./configure
make
make install
chmod a+x /etc/init.d/ss5

2、设置socks5开机启动

chkconfig --add ss5
chkconfig --level 345 ss5 on

3、默认安装好是无用户登陆,如果想要使用用户认证,需要编辑 vi /etc/opt/ss5/ss5.conf

# ///////////////////////////////////////////////////////////////////////////////////
#       SHost           SPort           Authentication
#
#auth    0.0.0.0/0               -               -
 auth    0.0.0.0/0               -               u



# /////////////////////////////////////////////////////////////////////////////////////////////////
#      Auth     SHost           SPort   DHost           DPort   Fixup   Group   Band    ExpDate
#
#permit -       0.0.0.0/0       -       0.0.0.0/0       -       -       -       -       -  
 permit u       0.0.0.0/0       -       0.0.0.0/0       -       -       -       -       -  

4、添加socket 5用户,编辑 vi /etc/opt/ss5/ss5.passwd,每行一个用户 + 密码(之间用空格),按需增加。

# 用户  密码
user1 123456
user2 123567

5、如果要修改ss5默认的1080端口,编辑 vi /etc/sysconfig/ss5,添加自定义端口11080

SS5_OPTS=" -u root -b 0.0.0.0:11080"

6、防火墙开放自定义11080端口

firewall-cmd --zone=public --add-port=11080/tcp --permanent 

7、刷新规则

firewall-cmd --reload

8、查看端口是否开放

firewall-cmd --list-ports

9、设置完毕后,重启ss5,提示了“OK”,那么ss5服务的配置基本上是正确了

service ss5 start

10、可以使用QQ验证

 配置iptables

1、添加用户,这里的用户需要和“/etc/opt/ss5/ss5.passwd”中添加的用户需要对应,添加完后查看用户对应的uid

useradd user1 -p 123456
id user1

2、配置用户,将限制添加到iptables中,1000和1001为用户的uid,110.110.110.1和110.110.110.2为你的ip。根据自己情况替换对应的uid和出口IP,不能照搬。

#user1
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 110.110.110.1


#user2
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 110.110.110.2

3、避免重启服务器iptables失效,可以执行 iptables-save 列出当前设置,再保存规则,再执行 vi /etc/rc.d/rc.local 将规则添加到启动文件

#保存
iptables-save > /root/iptables.conf

#手动恢复
iptables-restore < /root/iptables.conf

#自动恢复 添加你保存的规则到rc.local启动文件,这样每次重启会自动恢复规则,不需要再执行上面的手动恢复了
/sbin/iptables-restore /root/iptables.conf

4、设置完后,查看一下配置是否已经写入

iptables -nvL -t nat
iptables -nvL -t mangle

5、ss5添加一下对应的用户,设置对应用户和出口IP,请务必与上方iptables中对应uid和ip处保持一致

service ss5 stop #由于服务启动无法写入,这里需要关闭
ss5 -u user1 -b 110.110.110.1:11080
ss5 -u user2 -b 110.110.110.2:11080
service ss5 start #再次启动

6、验证

7、SS5的 3.8.9-8 这个版本有一个bug,服务器重启会删掉/var/run/ss5/,导致开机自启时无法创建pid文件,可以修改启动文件 /etc/rc.d/rc.local,添加下面的代码,这样每次重启会自动创建ss5目录

#添加
mkdir /var/run/ss5/

8、执行 chmod a+x /etc/rc.d/rc.local 添加授权

9、启动文件 /etc/rc.d/rc.local 包含

#重启自动创建ss5目录,修复3.89版本重启bug
mkdir /var/run/ss5/

#重启自动 恢复iptables配置规则
/sbin/iptables-restore /root/iptables.conf

#对应用户和出口IP规则,这个ss5规则需要和你前面自己配置的一样
ss5 -u user1 -b 110.110.110.1:11080
ss5 -u user2 -b 110.110.110.2:11080

10、完美解决重启失效问题