启用 Shadowsocks 的多端口

文章来之:https://teddysun.com/

首先 shadowsocks有四种版本,本人在使用python和libev两个版本。其中libev的消耗的服务器的资源相当少,非常精简,但是始终配置多端口和账户都不成功。故而同时使用两个版本。

Shadowsocks-Python

Shadowsocks-Python 版的配置文件路径 /etc/shadowsocks-python/config.json,下面以修改该配置文件来说明。
在 Linux 下建议使用 vim 或者 nano 来编辑此配置文件。具体如何使用这两种编辑器,这里不多说明,可自行去搜索相关用法。
Shadowsocks-Python 版多端口配置文件示例:

{
    "server":"0.0.0.0",
    "local_address":"127.0.0.1",
    "local_port":1080,
    "port_password":{
         "9000":"password0",
         "9001":"password1",
         "9002":"password2",
         "9003":"password3",
         "9004":"password4"
    },
    "timeout":300,
    "method":"your_encryption_method",
    "fast_open": false
}

重点在于 port_password 字段的修改。
你想要多少端口就添加多少端口,注意需要符合 json 格式,里面的最后一行后面是没有英文逗号的,整个大括号的最后需要有一个英文逗号。
修改完成后,保存配置文件,重启之。命令如下:

/etc/init.d/shadowsocks-python restart

linode ShadowSocks 服务器端搭建

ShadowSocks服务器端

  ShadowSocks有服务器端和客户端,有技术能力的,可以自行搭建服务器端,一般可通过购买海外VPS之后进行搭建,比如linode。

  有网友做了个服务器端一键安装ShadowSocks的脚本,使用root用户登录,运行以下命令:

  wget –no-check-certificate
https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-libev.sh

  chmod +x shadowsocks-libev.sh

  ./shadowsocks-libev.sh 2>&1 | tee shadowsocks-libev.log

  安装完成后,得到的服务器端口:8989,客户端端口:1080,密码为自己设定的密码。

  卸载方法:使用 root 用户登录,运行以下命令:

  ./shadowsocks-libev.sh uninstall

  安装完成后即已后台启动 shadowsocks ,运行:

  ps -ef | grep ss-server | grep -v ps | grep -v grep

  可以查看进程是否存在。此脚本安装完成后,会将 shadowsocks-libev 加入开机自启动。

  使用命令:

  启动:/etc/init.d/shadowsocks start

  停止:/etc/init.d/shadowsocks stop

  重启:/etc/init.d/shadowsocks restart

  查看状态:/etc/init.d/shadowsocks status

  修改端口和加密方式:编辑修改配置文件 /etc/shadowsocks-libev/config.json

  每隔1小时重启服务:crontab -u root -e 输入 0 */1 * * * /etc/init.d/shadowsocks restart

Centos7 安装 Shadowsock

安装 Shadowsocks

yum install python-setuptools && easy_install pip
pip install shadowsocks

配置

创建配置文件: /etc/shadowsocks.json

内容如下:

复制代码
{
    "server":"1.2.3.4", // 服务器IP
    "server_port":8888, // 对外提供服务的端口
    "local_port":1080,
    "password":"your password",
    "timeout":600,
    "method":"aes-256-cfb"
}
复制代码

如果需要分配多个帐号,配置如下:

复制代码
{
    "server":"1.2.3.4",
    "port_password":{
        "8888":"password1",
        "8889":"password2",
        "8890":"password3",
        "8891":"password4"
    },
    "timeout":600,
    "method":"aes-256-cfb"
}
复制代码

后台运行

ssserver -c /etc/shadowsocks.json -d start # 启动
ssserver -c /etc/shadowsocks.json -d stop # 停止

Shadowsocks 配置完毕。

 

内核优化

修改limits.conf 添加两行

vi /etc/security/limits.conf
* soft nofile 51200
* hard nofile 51200

执行

ulimit -n 51200

修改/etc/sysctl.conf

fs.file-max = 51200

net.core.rmem_max = 67108864
net.core.wmem_max = 67108864
net.core.netdev_max_backlog = 250000
net.core.somaxconn = 4096

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 1200
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_mem = 25600 51200 102400
net.ipv4.tcp_rmem = 4096 87380 67108864
net.ipv4.tcp_wmem = 4096 65536 67108864
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_congestion_control = hybla

修改后执行sysctl -p使配置生效。

 

内核优化完成,重启生效