天下風雲出我輩
一入江湖歲月催

shadowsocks服务搭建及配置优化

在我大天朝的长城防火墙下,中国的网络几乎变成了局域网;尤其十九大期间,VPN及蓝灯都挂了;就连shadowsocks服务商都被干掉了,衙门最近在联合BAT研究shadowsocks的流量协议特征匹配然后进行封禁,无奈,只好自己搭建了,关于shadowsocks的科普 就自己看吧。

一键安装shadowsocks脚本(四合一):

适用环境

系统支持:CentOS 6+,Debian 7+,Ubuntu 12+
内存要求:≥128M

我这边是使用的vultr的VPS主机,线路多,速度还不错,综合性价比很高;推荐大家使用。

关于本脚本

  • 一键安装 Shadowsocks-Python, ShadowsocksR, Shadowsocks-Go, Shadowsocks-libev 版(四选一)服务端;
  • 各版本的启动脚本及配置文件名不再重合;
  • 每次运行可安装一种版本;
  • 支持以多次运行来安装多个版本,且各个版本可以共存(注意端口号需设成不同);
  • 若已安装多个版本,则卸载时也需多次运行(每次卸载一种);
  • Shadowsocks-Python 和 ShadowsocksR 安装后不可同时启动(因为本质上都属 Python 版)

 

使用方法

我们这里选择安装 ShadowsocksR版本,目前最有效的,具有多种协议及混淆插件。

使用root用户登录,运行以下命令:

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

安装完成后,脚本提示如下:

Congratulations, ShadowsocksR server install completed!
Your Server IP        :your_server_ip         #服务器IP
Your Server Port      :your_server_port       #监听端口
Your Password         :your_password          #密码
Your Protocol         :your_protocol          #使用协议
Your obfs             :your_obfs              #混淆
Your Encryption Method:your_encryption_method  #加密方式

Welcome to visit:https://shadowsocks.be/9.html
Enjoy it!

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

./shadowsocksR.sh uninstall

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

/etc/init.d/shadowsocks status

可以查看 ShadowsocksR 进程是否已经启动。
本脚本安装完成后,已将 ShadowsocksR 自动加入开机自启动。

使用命令:

Shadowsocks-Python 版:
/etc/init.d/shadowsocks-python start | stop | restart | status

ShadowsocksR 版:
/etc/init.d/shadowsocks-r start | stop | restart | status

Shadowsocks-Go 版:
/etc/init.d/shadowsocks-go start | stop | restart | status

Shadowsocks-libev 版:
/etc/init.d/shadowsocks-libev start | stop | restart | status

配置文件路径:/etc/shadowsocks.json
日志文件路径:/var/log/shadowsocks.log
代码安装目录:/usr/local/shadowsocks

多用户配置示例:(注意最后一对端口密码没有逗号)

{
"server":"0.0.0.0",
"server_ipv6": "[::]",
"local_address":"127.0.0.1",
"local_port":1080,
"port_password":{
    "8989":"password1",
    "8990":"password2",
    "8991":"password3"
},
"timeout":300,
"method":"aes-256-cfb",
"protocol": "origin",
"protocol_param": "",
"obfs": "plain",
"obfs_param": "",
"redirect": "",
"dns_ipv6": false,
"fast_open": false,
"workers": 1
}

如果你想修改配置文件,请参考:
https://github.com/shadowsocksr-backup/shadowsocks-rss/wiki/Server-Setup
https://github.com/shadowsocksr-backup/shadowsocks-rss/blob/master/ssr.md
https://github.com/shadowsocksr-backup/shadowsocks-rss/wiki/config.json

客户端下载

全部版本下载

https://shadowsocks.org/en/download/clients.html

常规版 Windows 客户端
https://github.com/shadowsocks/shadowsocks-windows/releases

ShadowsocksR 版 Windows 客户端
https://github.com/shadowsocksr-backup/shadowsocksr-csharp/releases

针对shadowsocks配置优化:

  1. 系统层面
    基于kvm架构vps的优化
    这方面SS给出了非常详尽的优化指南,主要有:优化内核参数,开启TCP Fast Open
    ####1.1优化内核参数 编辑

    1
    vi /etc/sysctl.conf

    复制进去

    # max open files
    fs.file-max = 1024000
    # max read buffer
    net.core.rmem_max = 67108864
    # max write buffer
    net.core.wmem_max = 67108864
    # default read buffer
    net.core.rmem_default = 65536
    # default write buffer
    net.core.wmem_default = 65536
    # max processor input queue
    net.core.netdev_max_backlog = 4096
    # max backlog
    net.core.somaxconn = 4096
    
    # resist SYN flood attacks
    net.ipv4.tcp_syncookies = 1
    # reuse timewait sockets when safe
    net.ipv4.tcp_tw_reuse = 1
    # turn off fast timewait sockets recycling
    net.ipv4.tcp_tw_recycle = 0
    # short FIN timeout
    net.ipv4.tcp_fin_timeout = 30
    # short keepalive time
    net.ipv4.tcp_keepalive_time = 1200
    # outbound port range
    net.ipv4.ip_local_port_range = 10000 65000
    # max SYN backlog
    net.ipv4.tcp_max_syn_backlog = 4096
    # max timewait sockets held by system simultaneously
    net.ipv4.tcp_max_tw_buckets = 5000
    # TCP receive buffer
    net.ipv4.tcp_rmem = 4096 87380 67108864
    # TCP write buffer
    net.ipv4.tcp_wmem = 4096 65536 67108864
    # turn on path MTU discovery
    net.ipv4.tcp_mtu_probing = 1
    
    # for high-latency network
    net.ipv4.tcp_congestion_control = hybla
    # forward ipv4
    net.ipv4.ip_forward = 1
    

    保存并执行以下命令生效

    #   sysctl -p

    其中最后的hybla是为高延迟网络(如美国,欧洲)准备的算法,需要内核支持,测试内核是否支持,在终端输入:
    sysctl net.ipv4.tcp_available_congestion_control
    如果结果中有hybla,则证明你的内核已开启hybla,如果没有hybla,可以用命令modprobe tcp_hybla开启。

    对于低延迟的网络(如日本,香港等),可以使用htcp,可以非常显著的提高速度,首先使用命令modprobe tcp_htcp开启,再将net.ipv4.tcp_congestion_control = hybla改为net.ipv4.tcp_congestion_control = htcp,建议EC2日本用户使用这个算法。

    听说BBR算法很牛逼,下篇文章写下如何升级内核并开启BBR算法

  2. TCP优化

    1.修改文件句柄数限制
    如果是ubuntu/centos均可修改/etc/sysctl.conf
    找到fs.file-max这一行,修改其值为1024000,并保存退出。然后执行sysctl -p使其生效
    修改vi /etc/security/limits.conf文件,加入

    *               soft    nofile           512000
    *               hard    nofile          1024000
    

    2.修改vi /etc/profile文件,加入
    ulimit -SHn 1024000
    然后重启服务器执行ulimit -n,查询返回1024000即可。

赞(5) 打赏
未经允许不得转载:Anonym0x1 » shadowsocks服务搭建及配置优化

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏