29
2017
11

Shadowsocks配置多IP使用,支持TCP与UDP

某些用户的主机支持多IP,但是遇到一个问题是出口都是使用的网卡一IP,那么多IP就失去了作用。

此教程仅适用于秋水逸冰的Shadowsocks Python版一键安装脚本,其它版本并不适用。

额外提示:此多IP服务脚本与 支持在线查看人数的ssrmu.sh安装没有冲突,但有时通过ssrmu.sh开通的端口UDP会不稳定。所以建议多IP不要与ssrmu.sh一起安装。

安装教程:https://www.xiaoz.me/archives/5643
参考如下安装:

#wget --no-check-certificate https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks.sh #chmod +x shadowsocks.sh #./shadowsocks.sh 2>&1 | tee shadowsocks.log

第一步:安装完毕后输入以下命令:

#/etc/init.d/shadowsocks stop    //*停止服务

#chkconfig --del shadowsocks   //*去掉开机自启

二、新增用户

输入如下命令新增用户user1和用户user2

#useradd 9001  //*新增用户 user1

#useradd 9002  //*新增用户 user2

三、复制和修改配置文件

#cp /etc/shadowsocks.json /etc/shadowsocks2.json   //*复制一份副本或者更多IP多份副本

Shadowsocks Python版一键安装脚本的配置文件是 /etc/shadowsocks.json,默认内容如下(已修改指定IP,多个IP需要设置指定IP,不然依然会出现副IP无法通过UDP,原配文件上设置主IP,多个副本文件设置副IP,这里假设主IP为 1.1.1.1  服务端口为 9001 ;副IP为 2.2.2.2 服务端口为 9002):

{

    "server":"1.1.1.1",

    "server_port":9001,

    "local_address":"127.0.0.1",

    "local_port":1080,

    "password":"112233",

    "timeout":300,

    "method":"aes-256-gcm",

    "fast_open": false

}

因为是要运行 2 个 Shadowsocks服务端进程,所以这里复制一份配置文件。并将shadowsocks2.json中的server_port端口改为9002,内容如下:

{

    "server":"2.2.2.2",

    "server_port":9002,

    "local_address":"127.0.0.1",

    "local_port":1080,

    "password":"112233",

    "timeout":300,

    "method":"aes-256-gcm",

    "fast_open": false

}

四、修改 iptables 规则

【防火墙必须开启,并使用nat规则,不然副IP连接后,依然显示主IP】

在第二步新建好的用户,需要知道其 userid,通过如下命令获得:

#awk -F: '/^9001:/{print $4}' /etc/passwd

#awk -F: '/^9002:/{print $4}' /etc/passwd

假设这里获取到的 userid ,user1 是 500,user2 是 501。修改 iptables 规则:

#/sbin/iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT

#/sbin/iptables -I INPUT -m state --state NEW -m udp -p udp --dport 9001 -j ACCEPT

#/sbin/iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 9002 -j ACCEPT

#/sbin/iptables -I INPUT -m state --state NEW -m udp -p udp --dport 9002 -j ACCEPT

#/sbin/iptables -t mangle -A OUTPUT -m owner --uid-owner 500 -j MARK --set-mark 500

#/sbin/iptables -t mangle -A OUTPUT -m owner --uid-owner 501 -j MARK --set-mark 501

#/sbin/iptables -t nat -A POSTROUTING -m mark --mark 500 -j SNAT --to-source 1.1.1.1

#/sbin/iptables -t nat -A POSTROUTING -m mark --mark 501 -j SNAT --to-source 2.2.2.2

#service iptables save 【先保存,重启防火墙或系统后规则会失效】

#service iptables stop

#chkconfig iptables on

#service iptables start

备注:防火墙规则添加如果有误,必须利用命令方式删除有误规则,不能VI编辑配置文件修改,不然规则无法保存。

五、启动 Shadowsocks Python版服务端

假设是以 root 用户登录的,那么需要分别以用户 9001 和 9002 运行 Shadowsocks Python版服务端。命令如下:

su - 9001 -c '/usr/bin/ssserver -c /etc/shadowsocks.json &'

su - 9002 -c '/usr/bin/ssserver -c /etc/shadowsocks2.json &'

至此,设置完成。端口 9001 对应 IP1,端口 9002 对应 IP2。

六、设置开机启动

#vi /etc/rc.d/rc.local

七、查询对应进程并终止

#ps aux

#kill -9 12323    //*其中12323为对应进程的pid数值

八,最后建议安装APPNODE主机集群管理平台,安装后,将防火墙禁止掉,实现WEB方式在线管理LINUX。

延伸既然可以单个IP设置单用户,也就可以每个IP上也可以共存多个端口用户,也就是多IP多用户配置模式,只需要修改配置文件即可。建议关闭掉防火墙。

#vi /etc/shadowsocks.json

{

    "server":"104.192.81.245",

    "local_address":"127.0.0.1",

    "local_port":1080,

    "port_password":{

         "9010":"112233",

         "9011":"112233",

         "9012":"112233"

    },

    "timeout":300,

    "method":"aes-256-gcm",

    "fast_open": false

}

#vi /etc/shadowsocks2.json

{

    "server":"104.192.81.22",

    "local_address":"127.0.0.1",

    "local_port":1080,

    "port_password":{

         "9030":"112233",

         "9031":"112233",

         "9032":"112233"

    },

    "timeout":300,

    "method":"aes-256-gcm",

    "fast_open": false

}

« 上一篇 下一篇 »