Shadowsocks 简易入门指南

简介

Shadowsocks 是一种基于 Socks5 代理方式的加密传输协议,最早由 clowwindy 使用 Python 语言开发(已停止维护),后续衍生出 ShadowsocksR(已停止维护),Shadowsocks-Go,Shadowsocks-libev 等多个分支,是如今最为主流的科学上网方式。使用 Shadowsocks 进行科学上网的基本原理如下图。

Shadowsocks 安装配置

Shadowsocks 一键安装脚本(四合一) By Teddysun

适用环境

系统支持:CentOS 6+,Debian 7+,Ubuntu 12+

内存要求:≥ 128M

使用方法

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

wget https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh && chmod +x shadowsocks-all.sh && ./shadowsocks-all.sh

卸载方法

若已安装多个版本,则卸载时也需多次运行(每次卸载一种)。

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

./shadowsocks-all.sh uninstall

启动脚本

启动脚本后面的参数含义,从左至右依次为:启动,停止,重启,查看状态。

  • 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

配置文件

  • Shadowsocks-Python 版:
    /etc/shadowsocks-python/config.json
  • ShadowsocksR 版:
    /etc/shadowsocks-r/config.json
  • Shadowsocks-Go 版:
    /etc/shadowsocks-go/config.json
  • Shadowsocks-libev 版:
    /etc/shadowsocks-libev/config.json

加密方式选择

不同加密方式在不同硬件平台下的带宽可以参考 Bandwidth of encrypt method,下面给出不同的加密方式下的带宽参考值。

Method \ CPU DIR-505 GL-iNet WNDR4300 N3700 i7-3720QM E5-2650 v2
rc4-md5 22.1 Mbits/sec 14.9 Mbits/sec 32.7 Mbits/sec 531 Mbits/sec 587 Mbits/sec 429 Mbits/sec
aes-128-cfb 12.0 Mbits/sec 9.17 Mbits/sec 20.2 Mbits/sec 506 Mbits/sec 321 Mbits/sec 544 Mbits/sec
aes-192-cfb 10.7 Mbits/sec 8.49 Mbits/sec 18.4 Mbits/sec 452 Mbits/sec 296 Mbits/sec 538 Mbits/sec
aes-256-cfb 9.74 Mbits/sec 7.90 Mbits/sec 15.9 Mbits/sec 447 Mbits/sec 273 Mbits/sec 460 Mbits/sec
aes-128-ctr 12.1 Mbits/sec 9.10 Mbits/sec 19.7 Mbits/sec 541 Mbits/sec 313 Mbits/sec 586 Mbits/sec
aes-192-ctr 10.9 Mbits/sec 8.55 Mbits/sec 18.9 Mbits/sec 537 Mbits/sec 285 Mbits/sec 574 Mbits/sec
aes-256-ctr 9.30 Mbits/sec 8.02 Mbits/sec 17.1 Mbits/sec 516 Mbits/sec 266 Mbits/sec 513 Mbits/sec
aes-128-gcm 6.90 Mbits/sec 6.25 Mbits/sec 11.4 Mbits/sec 323 Mbits/sec 169 Mbits/sec 233 Mbits/sec
aes-192-gcm 6.75 Mbits/sec 5.88 Mbits/sec 10.7 Mbits/sec 302 Mbits/sec 161 Mbits/sec 226 Mbits/sec
aes-256-gcm 5.64 Mbits/sec 5.64 Mbits/sec 10.3 Mbits/sec 263 Mbits/sec 155 Mbits/sec 220 Mbits/sec
camellia-128-cfb 8.42 Mbits/sec 7.60 Mbits/sec 13.7 Mbits/sec 227 Mbits/sec 222 Mbits/sec 128 Mbits/sec
camellia-192-cfb 7.82 Mbits/sec 6.71 Mbits/sec 11.5 Mbits/sec 200 Mbits/sec 184 Mbits/sec 93.4 Mbits/sec
camellia-256-cfb 7.19 Mbits/sec 6.61 Mbits/sec 10.8 Mbits/sec 189 Mbits/sec 185 Mbits/sec 93.1 Mbits/sec
bf-cfb 11.4 Mbits/sec 9.00 Mbits/sec 18.5 Mbits/sec 294 Mbits/sec 231 Mbits/sec 65.2 Mbits/sec
salsa20 16.3 Mbits/sec 11.5 Mbits/sec 23.8 Mbits/sec 486 Mbits/sec 251 Mbits/sec 1.20 Gbits/sec
chacha20 19.3 Mbits/sec 12.4 Mbits/sec 28.1 Mbits/sec 534 Mbits/sec 650 Mbits/sec 1.05 Gbits/sec
chacha20-ietf 19.6 Mbits/sec 12.1 Mbits/sec 27.9 Mbits/sec 548 Mbits/sec 653 Mbits/sec 1.16 Gbits/sec
chacha20-ietf-poly1305 14.5 Mbits/sec 12.7 Mbits/sec 20.1 Mbits/sec 440 Mbits/sec 283 Mbits/sec 809 Mbits/sec

测试环境:

  • libsodium – 1.0.11-2
  • libmbedtls – 2.4.0-3
  • shadowsocks-libev – 3.0.3-1

其中 AES-128-GCM,AES-192-GCM,AES-256-GCM,chacha20-ietf-poly1305,xchacha20-ietf-poly1305(表中未列出数据)为支持 AEAD 算法的加密协议。AEAD 加密可同时为数据提供私密性、完整性和真实性保证,因此推荐首选 AES-256-GCM,chacha20-ietf-poly1305 或 xchacha20-ietf-poly1305 作为加密方式,获得更高的安全性。

开启 BBR

BBR 是 Google 公司提出的一个开源 TCP 拥塞控制算法,在 Linux Kernel 4.9 及以上的内核版本中已被采用。在 VPS 上开启 BBR 可以有效提升网速。

Linux Kernel ≥ 4.9

修改系统变量

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

保存生效

sysctl -p

查看内核是否已开启 BBR

sysctl net.ipv4.tcp_congestion_control

显示 net.ipv4.tcp_congestion_control = bbr 即已开启

查看 BBR 是否启动

lsmod | grep bbr

显示 tcp_bbr                20480  14 即启动成功

Linux Kernel ≤ 4.9

非 OpenVZ 虚拟化

一键安装最新内核并开启 BBR 脚本 By Teddysun

适用环境:

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

使用方法:

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

wget https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh

OpenVZ 虚拟化

lkl-haproxy

OpenVZ 魔改 BBR – lkl-haproxy 一键脚本 By nanqinlang

特性:性能更优,支持端口段加速

适用环境:

  • 系统支持:CentOS 7,Debian 8+  64 bit
  • 特殊要求:TUN / TAP enabled,Ldd version ≥ 2.14

使用方法:

# Debian 8+:
wget https://github.com/tcp-nanqinlang/lkl-haproxy/releases/download/1.1.1/tcp_nanqinlang-haproxy-debian.sh && bash tcp_nanqinlang-haproxy-debian.sh

# CentOS 7:
wget https://github.com/tcp-nanqinlang/lkl-haproxy/releases/download/1.1.1/tcp_nanqinlang-haproxy-centos.sh && bash tcp_nanqinlang-haproxy-centos.sh

配置文件:/home/tcp_nanqinlang/haproxy.cfg | /home/tcp_nanqinlang/redirect.sh

lkl-rinetd

OpenVZ 魔改 BBR – lkl-rinetd 一键脚本 By nanqinlang

特性:占用更低,不支持端口段加速

适用环境:

  • 系统支持:CentOS 7,Debian 7+,Ubuntu 12+  64 bit
  • 内存要求:≥ 64M

使用方法:

# Debian / Ubuntu:
## 适用于 单网卡(单 IP) 服务器
wget https://github.com/tcp-nanqinlang/lkl-rinetd/releases/download/1.1.0/tcp_nanqinlang-rinetd-debianorubuntu.sh && bash tcp_nanqinlang-rinetd-debianorubuntu.sh
## 适用于 多网卡(多 IP) 服务器,会为所有网卡(所有 IP)提供加速
wget https://github.com/tcp-nanqinlang/lkl-rinetd/releases/download/1.1.0/tcp_nanqinlang-rinetd-debianorubuntu-multiNIC.sh && bash tcp_nanqinlang-rinetd-debianorubuntu-multiNIC.sh

# CentOS 7:
## 适用于 单网卡(单 IP) 服务器
wget https://github.com/tcp-nanqinlang/lkl-rinetd/releases/download/1.1.0/tcp_nanqinlang-rinetd-centos.sh && bash tcp_nanqinlang-rinetd-centos.sh
## 适用于 多网卡(单 IP) 服务器
wget https://github.com/tcp-nanqinlang/lkl-rinetd/releases/download/1.1.0/tcp_nanqinlang-rinetd-centos-multiNIC.sh && bash tcp_nanqinlang-rinetd-centos-multiNIC.sh

配置文件:/home/tcp_nanqinlang/config-port.conf

杂项

VPS 选购参考、安全建议、问题排除,Shadowsocks 客户端软件收录。

VPS 选购参考(价格从低到高)

  • Virmach:廉价 KVM 主机,支持支付宝付款
  • Vultr:数据中心遍布全球,无限更换 IP,月付最低 $3.5,注册充值 $5 即送 $50,支持支付宝 / 微信付款
  • Linode:数据中心遍布全球,无限更换 IP,月付最低 $5
  • DigitalOcean:数据中心遍布全球,无限更换 IP,月付最低 $5,注册即送 $100
  • BandwagonHost:大名鼎鼎的“搬瓦工”,国人用户非常多,其 CN2 GIA 线路质量极佳,支持支付宝付款
  • DMIT:香港 VPS 与 洛杉矶 CN2 GIA VPS 质量上佳,原生 IP 支持解锁流媒体,支持支付宝付款
  • 阿里云国际版:国内占有率最高的云服务商,香港 / 新加坡节点线路良好

Tips

  • 建议优先选择 KVM、Xen 等虚拟化架构,OpenVZ 次之
  • 使用 ZBench 等评测脚本测试 VPS 性能
  • 使用 BestTrace 等 Tracert 软件查看线路是否为直连(绕路严重容易导致低速和丢包)
  • 更多优质 VPS 请自己发掘

VPS 安全建议

  • 使用强密码、修改 root 用户名和默认 SSH 端口、配置相应防火墙规则、安装 Fail2ban
  • 或使用 SSH Key 登录

问题排除

  • 使用 在线 Ping 查询服务 检查服务器 IP 是否被 Ban
  • 检查 Shadowsocks 进程状态
  • 检查防火墙的端口放行规则
  • 对服务器进行 TCP Ping 测试,检查 Shadowsocks 服务端口或服务器 IP 是否被阻断 TCP 连接(GFW 最新屏蔽策略,阻断特定 IP 或其特定端口的 TCP 回程,保持 ICMP / UDP 畅通。特征为 PING / UDP 连接正常,TCP 无法连接)

客户端软件

Windows

macOS

Linux

Android

iOS

国区未下架(价格从低到高)

国区下架(非国区账号可下载,价格从低到高)

TestFlight(以测试员身份加入,不受应用下架影响,需在 App Store 下载安装 TestFlight)

更多代理工具,如 V2RayTrojanNaiveProxyBrook 等,本篇不做介绍,请自己查阅。

评论

  1. SkylakeSato
    Chrome 68.0.3440.106
    2年前
    2018-8-18 17:28:51

    很详细,排版很清晰

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇