问题:一服务器,分配有十个ip,但是搭建了ss后,任意ip链接都可以,但是百度ip后,都是一个ip 处理方法:新建十个配置脚本,十个linux 用户,一个用户启动一个脚本。iptables做snat转发。 安装两大部分:1.安装ss libev版本,2.配置脚本,用户,iptables
一.Shadowsocks libev版一键安装脚本
注:本脚本适用环境: 系统支持:CentOS、Debian/Ubuntu 内存要求:≥128M 日期:2017 年 02 月 24 日
关于本脚本:
一键安装 libev 版的 Shadowsocks 最新版本。该版本的特点是内存占用小(600k左右),低 CPU 消耗,甚至可以安装在基于 OpenWRT 的路由器上。
默认配置:
服务器端口:自己设定(如不设定,默认为 7860)
客户端端口:1080
密码:自己设定(如不设定,默认为jozxing.cc)
使用方法:
使用root用户登录,运行以下命令:
适用于 CentOS 系统
wget --no-check-certificate https://www.jozxing.cc/vpn/shadowsocks-libev.sh
chmod +x shadowsocks-libev.sh
./shadowsocks-libev.sh 2>&1 | tee shadowsocks-libev.log
适用于 Debian/Ubuntu 系统
wget --no-check-certificate https://www.jozxing.cc/vpn/shadowsocks-libev-debian.sh
chmod +x shadowsocks-libev-debian.sh
./shadowsocks-libev-debian.sh 2>&1 | tee shadowsocks-libev-debian.log
安装完成后,脚本提示如下:
Congratulations, Shadowsocks-libev install completed!
Your Server IP:your_server_ip
Your Server Port:your_server_port
Your Password:your_password
Your Local IP:127.0.0.1
Your Local Port:1080
Your Encryption Method:aes-256-cfb
Enjoy it!
卸载方法:
使用 root 用户登录,运行以下命令:
./shadowsocks-libev.sh uninstall
安装完成后即已后台启动 Shadowsocks-libev。
本脚本安装完成后,会自动将 Shadowsocks-libev 加入开机自启动。
使用命令:
启动:/etc/init.d/shadowsocks start
停止:/etc/init.d/shadowsocks stop
重启:/etc/init.d/shadowsocks restart
查看状态:/etc/init.d/shadowsocks status
二.配置脚本,用户,iptables
1.安装时停止掉ss服务
/etc/init.d/shadowsocks stop
2.去掉自启动:
chkconfig --del shadowsocks # CentOS 用法
update-rc.d -f shadowsocks remove # Ubuntu 或 Debian 用法
3.添加用户
useradd user7860 # 新增用户 user7860,便于记,用对应的端口代表用户名。 useradd user7861 # 新增用户 user7861
# 有多少个ip,新建多少个用户 4.复制Shadowsocks-libev 版的配置文件 /etc/shadowsocks-libev/config.json 在同目录下:cp /etc/shadowsocks-libev/config.json /etc/shadowsocks-libev/config1.json
#有多少个ip就复制这样的配置文件多少个,用自己的方式记住。因为一个ss服务启动对应相应的config文件。 修改 /etc/shadowsocks-libev/config1.json 里的 server_port 为 7861 (数值不和 /etc/shadowsocks-libev/config.json 里的一样即可,避免端口冲突)
5.修改iptables规则:
在第2步新建好的用户,需要知道其 userid,通过如下命令获得:
awk -F: '/^user7860:/{print $4}' /etc/passwd
awk -F: '/^user7861:/{print $4}' /etc/passwd
#一般获取到的是user7860 id是1001,user7861的id是1002
修改iptables规则:
/sbin/iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 7860 -j ACCEPT
/sbin/iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 7861 -j ACCEPT
/sbin/iptables -t mangle -A OUTPUT -m owner --uid-owner 1001 -j MARK --set-mark 1001
/sbin/iptables -t mangle -A OUTPUT -m owner --uid-owner 1002 -j MARK --set-mark 1002
/sbin/iptables -t nat -A POSTROUTING -m mark --mark 1001 -j SNAT --to-source 服务器ip1地址
/sbin/iptables -t nat -A POSTROUTING -m mark --mark 1002 -j SNAT --to-source 服务器ip2地址
#大概意思就是允许服务器7860,7861端口接受、发送数据,用户id为1001的所有数据资源请求和响应通过SNAT(源地址转换)走ip1地址进出.
用户id为1002的所有数据资源请求和响应通过SNAT(源地址转换)走ip2地址进出.
保存 iptables 配置:
/etc/init.d/iptables save
6.启动 Shadowsocks-libev 版服务端su user7860 -c '/usr/local/bin/ss-server -u -c /etc/shadowsocks-libev/config.json -f /var/run/shadowsocks-server/pid1 &' su user7861
-c '/usr/local/bin/ss-server -u -c /etc/shadowsocks-libev/config2.json -f /var/run/shadowsocks-server/pid2 &'
#一个服务器如果十个ip,同样增量操作即可。
End