安装SS5
- 安装ss5需要部分依赖等,我这里把bash列出来了,切换到root身份后直接复制粘贴进去即可。
yum install -y gcc openldap-devel pam-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
- 安装完毕后,启动SS5
service ss5 restart
- 可以成功启动后,简单修改下配置文件,使其需要进行身份验证。如果提示vim不存在则可以使用vi编辑器,或使用“yum install -y vim”安装后再执行。
vim /etc/opt/ss5/ss5.conf
- 根据下图修改,找到对应行将“#”删除,同时在“auth”一行末尾Authentication列将“-”修改为“u”,“permit”一行中的Auth列修改“-”为“u”。修改完毕后保存。
- 修改完配置文件后先不要急着重启,我们去添加一下ss5的用户配置文件。我这里因为有两个IP所以配置了两个账号,每一行配置一个用户,格式:用户+空格+密码。
vim /etc/opt/ss5/ss5.passwd
- 默认端口1080,修改端口替换为其他端口,请修改 /etc/sysconfig/ss5 (注意: 如果是单IP,可以修改端口,如果是想指定多IP出口的,请勿更改端口)
#端口号自己设置 注意开放你设置的端口号
# Add startup option here
SS5 0PTS=" -u root -b 0.0.0.0:1080"
- 设置完毕后,重启ss5服务
service ss5 restart
配置iptables
- 配置完ss5服务后如果使用不同的IP,代理后结果还是显示主IP,这里需要根据用户去限制出口IP。首先添加用户,这里的用户和“/etc/opt/ss5/ss5.passwd”中添加的用户需要对应。添加完后查看用户对应的uid,下一步需要用到。
useradd admin1 -p aa123456
useradd admin2 -p aa123456
id admin1
id admin2
- 可以看到用户的uid分别是1000和1001,然后我们对限制添加到iptables中。这一步非常重要的就是IP地址,我们用到的是公网IP对应的内网IP地址,并不是直接填公网IP,一定要注意。
#配置用户admin1
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 192.168.0.48
#配置用户admin2
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 192.168.0.49
- 设置完后,查看一下配置是否已经写入,我这里红色方框处的即为刚才的配置。
iptables -nvL -t nat
iptables -nvL -t mangle
- 配置好iptables后需要再对ss5添加一下对应的用户,设置对应用户和出口IP,请务必与上方iptables中对应uid和ip处保持一致。启动成功则配置完毕。注意: ss5服务重启后分流会失效需要重新设置这一步
service ss5 stop #由于服务启动无法写入,这里需要关闭
ss5 -u admin1 -b 192.168.0.48
ss5 -u admin2 -b 192.168.0.49
service ss5 start #关闭后再次启动
- 设置开机自启动
echo 'mkdir /var/run/ss5/' >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local
/sbin/chkconfig ss5 on
service ss5 start && service ss5 status