ShadowsocksR 各种客户端及服务器的配置与搭建

本文介绍了ShadowsocksR的win,linux,android等的客户端安装配置及服务器的ShadowsocksR环境搭建与配置。也是英文文档,介绍的很详细,一步一步的按照说明操作可以搭建功能完整的ShadowsocksR环境。

ShadowsocksR客户端和服务器

本文介绍如何在Windows,Android和Linux客户端上安装ShadowsocksR(SSR),以及如何创建私有ShadowsocksR服务器。

2017年7月27日,breakwa11 ShadowsocksR存储库从Github中删除。此页面链接到ShadowsocksRR(SSRR)存储库中的软件副本。

本文包括以下部分:

  • Windows客户端
    • 下载
    • 添加服务器
    • 扫描二维码
    • 模式
    • 选项
  • Android客户端
  • Linux客户端
  • 服务器
  • 高级服务器配置
    • 优化系统
    • 限制出站端口
    • 重启ShadowsocksR
  • 免费服务器
  • 支持

Windows客户端

下载

要提取Windows C#客户端,您需要使用7-Zip。因此,首先下载并安装7-zip。

现在从Github下载Windows C#客户端软件。为方便起见,下载也在此处进行了镜像。

在撰写本文时,最新版本具有文件名 ShadowsocksR-win-4.8.0.rar。文件大小为823,114字节。SHA256总和是14135ef9 a7e2ca8a 084a6b2f 74a4cb4d 17fc114f 9dc52329 3e219aca 189014b0。您可以通过右键单击文件,使用7-Zip在Windows上进行检查,然后执行CRC SHA,然后执行SHA 256。

要解压缩下载,请右键单击下载的文件,选择7-Zip选项集,然后将下载的文件解压缩到自己的文件夹中。新文件夹将具有名称 ShadowsocksR-win-4.8.0

在Windows资源管理器中,切换到ShadowsocksR的文件夹。

根据Windows PC的现代化程度选择可执行文件:

  • 对于> = Windows 8或.NET 4.0,请使用ShadowsocksR-dotnet4.0.exe
  • 对于<= Windows 7或.NET 2.0,请使用ShadowsocksR-dotnet2.0.exe

双击相应的应用程序文件以启动该程序。

添加服务器

要添加服务器,请打开系统托盘通知区域,然后找到ShadowsocksR图标。它看起来像一架纸飞机。右键单击ShadowsocksR图标以显示控件选项。选择Servers然后编辑服务器……

填写服务器详细信息,然后单击“确定”。(更改第一个条目时,可能需要退出并重新启动ShadowsocksR。)

扫描二维码

如果有人与您共享快速响应(QR)代码,您可以使用选项扫描屏幕中的QR代码…来添加服务器。

模式

在全局模式下,任何设置为使用Windows系统代理服务器设置的Windows应用程序都将通过ShadowsocksR发送其流量。

  • 例如,如果设置了此选项,Microsoft Edge将自动通过ShadowsocksR发送其流量。
  • 在Windows 10中,您可以在“设置”>“网络和Internet”>“代理”中查看当前设置。

与全局模式相反的是禁用系统代理功能。然后,您必须手动配置每个应用程序以通过ShadowsocksR发送其流量。

  • 您可以在Firefox中的选项>高级>网络>设置下执行此操作。如果要执行此操作,请确保您还代理DNS流量。
  • 如果您使用的是Chrome而不是Firefox,则可以使用FelisCatus的扩展代码SwitchyOmega执行类似操作。为地址为127.0.0.1端口1080的SOCKS5代理服务器配置SwitchyOmega。

选项

要控制ShadowocksR,请再次打开系统托盘通知区域,然后找到ShadowsocksR图标。它看起来像一架纸飞机。它将根据您当前的模式设置进行颜色编码。右键单击ShadowsocksR图标以显示控件选项。

  • 模式控制SSR是否将禁用Windows系统范围的代理,使用代理自动配置(PAC),充当全局系统范围的代理,或保持Windows系统范围的代理设置不变
  • PAC填充代理自动配置(PAC)列表
  • 代理规则控制SSR是否将绕过局域网(LAN)和/或大陆IP地址的代理服务器
  • 服务器允许您添加,编辑或删除SSR服务器及其配置详细信息
  • Servers Subscribe允许您从Github获取最新的免费公共服务器列表(由于Github删除,可能不再有效)
  • 负载平衡导致SSR尝试从列表中找到响应最快的服务器(取消选中此选项以仅使用一个明确的服务器)
  • 全局设置控制是否在启动时启动,以及端口1080或其他端口是否用于本地代理
  • 端口设置用于端口转发
  • 从屏幕扫描QR码从您在浏览器或其他地方显示的快速响应(QR)代码扫描服务器配置
  • 导入SSR链接可以以SSR QRcode方案的格式导入链接
  • 帮助提供查看日志等选项
  • 退出以退出ShadowsocksR程序

Android客户端

apk 从Github 下载Android 文件。为方便起见,下载也在此处进行了镜像。

在撰写本文时,最新版本具有文件名 shadowsocksr-android-3.5.1.apk。文件大小为3,705,200字节。SHA256总和为30aa16d5 9e48afd0 16986f6a 5f2ed60c 9769006c 03110395 d152439e 028655bf。如果您愿意,可以在Android中使用Hash Droid应用程序进行检查。

点击下载的 apk 文件进行安装。它可能会被您的默认安全设置阻止。按照提示转到“设置”。您需要选中此框以允许从未知来源安装以允许安装。请确保选中该框以允许此安装,然后点击确定。

安装完成后,打开应用程序。

  1. 点击左上角的标识ShadowsocksR以显示服务器配置选项。
  2. 单击右下角的加号按钮+以添加新服务器。

您可以通过键入其详细信息或使用Android设备摄像头扫描显示的QR码来添加新服务器。

要使用此功能扫描QR码,您可能需要先安装ZXing Team的应用程序Barcode Scanner。

添加服务器后,点击右上角的连接按钮。它看起来像一个圆形的纸飞机。

您需要选中该框以表示我信任此应用程序。点按确定。

你现在已经连接好了。

Linux客户端

这些说明适用于Ubuntu 16.04。如果您使用的是其他Linux发行版,则需要调整它们。

首先在Linux PC上安装ShadowsocksR的必备软件包:

sudo apt-get install git python-m2crypto libsodium18

我们要将ShadowsocksR安装到我们的 Downloads 目录中,如果需要,请更改到该目录:

cd ~/Downloads

从Github获取ShadowsocksR:

git clone -b manyuser https://github.com/shadowsocksrr/shadowsocksr.git

请注意,长命令可能出现在此网页的多行上,但您应将它们作为单个命令输入。

编辑您的初始ShadowsocksR配置文件:

sudo vi /etc/shadowsocks.json

您可以从下面的模板开始。当然,您必须在值中替换ShadowsocksR服务器IP地址,端口,密码,加密方法,协议,混淆方法等。这是开始的模板:

{"server":"12.34.56.78","server_ipv6":"::","server_port":8388,"local_address":"127.0.0.1","local_port":1080,"password":"happy2017","timeout":300,"udp_timeout":60,"method":"aes-128-ctr","protocol":"auth_aes128_md5","protocol_param":"","obfs":"tls1.2_ticket_auth","obfs_param":"","fast_open":false,"workers":1}

如果需要从插入或替换模式中退出,请按Esc键。键入:wq将文件写入磁盘并退出编辑器。

切换到单用户版SSR的目录:

cd shadowsocksr/shadowsocks

启动作为守护程序运行的ShadowsocksR客户端:

sudo python local.py -c /etc/shadowsocks.json -d start

检查它是否正常运行:

sudo tail /var/log/shadowsocksr.log

如果您使用的是Firefox,请将其配置为在localhost端口1080上向ShadowsocksR发送流量。您可以在“首选项”>“高级”>“网络”>“设置”下执行此操作。确保您还代理DNS流量。

如果您使用的是Chrome而不是Firefox,请安装FelisCatus的扩展代理SwitchyOmega,并在localhost端口1080上为SOCKS5代理服务器配置它。

使用完ShadowsocksR后,将Firefox或Chrome恢复为使用系统代理设置,然后停止守护程序:

sudo python local.py -c /etc/shadowsocks.json -d stop

如果随后添加新服务器,则需要编辑该文件/etc/shadowsocks.json 并重新启动守护程序。

服务器

首先访问DigitalOcean并开立和资助一个帐户。如果您使用我的链接,他们可能会在您第一次添加资金时奖励您额外的信用额度。按照本文的其余部分从Windows PC进行基本Linux VPS设置,以创建和设置“Droplet”(VPS)。

完成此操作后,请继续以下操作。

选择一个将运行ShadowsocksR的端口。在本文的其余部分中,我们将使用端口8388作为示例。

在ShadowsocksR端口上打开防火墙。考虑将可以向ShadowsocksR服务器发送流量的IP地址列入白名单的可能性。在下面的例子中,我们假定你总是从本地ISP总是在范围内分配IP地址给你的连接 12.34.0.0 通过12.34.255.255。在无类别域间路由(CIDR)表示法中,这是12.34.0.0/16

sudo iptables -A INPUT -p tcp -s 12.34.0.0/16 --dport 8388 -j ACCEPT

另一方面,如果您希望允许来自任何地方的流量连接到您的服务器,则省略源规范,即:

sudo iptables -A INPUT -p tcp --dport 8388 -j ACCEPT

请注意,长命令可能出现在此网页的多行上,但您应将它们作为单个命令输入。

在重新启动后保持防火墙更改:

sudo dpkg-reconfigure iptables-persistent

安装ShadowsocksR的必备软件包:

sudo apt-get install git python-m2crypto libsodium18

我们将安装ShadowsocksR cd /usr/local,因此切换到该目录:

cd /usr/local

从Github获取ShadowsocksR:

sudo git clone -b manyuser https://github.com/shadowsocksrr/shadowsocksr.git

请注意,长命令可能出现在此网页的多行上,但您应将它们作为单个命令输入。

创建初始ShadowsocksR配置文件:

cd shadowsocksr

sudo bash initcfg.sh

编辑ShadowsocksR配置文件:

sudo vi user-config.json

指定ShadowsocksR端口,密码,加密方法,协议,混淆方法等的值。例如:

{"server": "0.0.0.0","server_ipv6": "::","server_port": 8388,"local_address": "127.0.0.1","local_port": 1080,"password": "happy2017","method": "aes-128-ctr","protocol": "auth_aes128_md5","protocol_param": "","obfs": "tls1.2_ticket_auth_compatible","obfs_param": "","speed_limit_per_con": 0,"speed_limit_per_user": 0,"additional_ports" : {},"additional_ports_only" : false,"timeout": 120,"udp_timeout": 60,"dns_ipv6": false,"connect_verbose_info": 0,"redirect": "","fast_open": false}

如果需要从插入或替换模式中退出,请按Esc键。键入:wq将文件写入磁盘并退出编辑器。

现在创建systemd服务文件:

sudo vi /etc/systemd/system/shadowsocksr.service

插入内容如下:

[Unit]Description=ShadowsocksR serverAfter=network.targetWants=network.target[Service]Type=forkingPIDFile=/var/run/shadowsocksr.pidExecStart=/usr/bin/python /usr/local/shadowsocksr/shadowsocks/server.py --pid-file /var/run/shadowsocksr.pid -c /usr/local/shadowsocksr/user-config.json -d startExecStop=/usr/bin/python /usr/local/shadowsocksr/shadowsocks/server.py --pid-file /var/run/shadowsocksr.pid -c /usr/local/shadowsocksr/user-config.json -d stopExecReload=/bin/kill -HUP $MAINPIDKillMode=processRestart=always[Install]WantedBy=multi-user.target

按Esc退出插入模式,然后键入:wq将文件写出并退出编辑器。

让ShadowocksR在重启时启动,并立即启动它:

sudo systemctl enable shadowsocksr.service

sudo systemctl start shadowsocksr.service

检查ShadowsocksR是否按预期工作:

sudo systemctl status shadowsocksr.service

sudo journalctl -u shadowsocksr

sudo netstat -tulpn | grep 8388

sudo tail /var/log/shadowsocksr.log

假设您的服务器工作已完成:

exit

现在将您的新服务器添加到Windows,Android或Linux客户端。

高级服务器配置

如果要为共享或公共使用设置ShadowsocksR服务器,则基本服务器配置会有各种可选添加项。

优化系统

编辑 limits.conf 文件:

sudo vi /etc/security/limits.conf

添加这两行以增加允许的最大打开文件数:

* soft nofile 51200* hard nofile 51200

如果需要从插入或替换模式中退出,请按Esc键。键入:wq将文件写入磁盘并退出编辑器。

编辑系统配置文件:

sudo vi /etc/sysctl.conf

防止在下面的插入中自动插入注释行:

:set formatoptions-=cro

插入以下行:

# max open filesfs.file-max = 51200# socket receive buffer 64 MBnet.core.rmem_max = 67108864# socket send buffer 64 MBnet.core.wmem_max = 67108864# default read buffernet.core.rmem_default = 65536# default write buffernet.core.wmem_default = 65536# max processor input queuenet.core.netdev_max_backlog = 4096# max backlognet.core.somaxconn = 4096# resist SYN flood attacksnet.ipv4.tcp_syncookies = 1# reuse timewait sockets when safenet.ipv4.tcp_tw_reuse = 1# turn off fast timewait sockets recyclingnet.ipv4.tcp_tw_recycle = 0# short FIN timeoutnet.ipv4.tcp_fin_timeout = 30# short keepalive timenet.ipv4.tcp_keepalive_time = 1200# outbound port rangenet.ipv4.ip_local_port_range = 10000 65000# max SYN backlognet.ipv4.tcp_max_syn_backlog = 4096# max timewait sockets held by system simultaneouslynet.ipv4.tcp_max_tw_buckets = 5000# turn on TCP Fast Open on both client and server sidenet.ipv4.tcp_fastopen = 3# TCP receive buffernet.ipv4.tcp_rmem = 4096 87380 67108864# TCP write buffernet.ipv4.tcp_wmem = 4096 65536 67108864# turn on path MTU discoverynet.ipv4.tcp_mtu_probing = 1# for high-latency network, uncomment this line:net.ipv4.tcp_congestion_control = hybla# for low-latency network, uncomment this line:# net.ipv4.tcp_congestion_control = cubic# for BBR, uncomment two lines:# net.core.default_qdisc=fq# net.ipv4.tcp_congestion_control=bbr

BBR拥塞控制仅在Linux内核4.9中可用,例如在Debian 9中。

如果需要从插入或替换模式中退出,请按Esc键。键入:wq将文件写入磁盘并退出编辑器。

立即使这些更改生效:

sudo sysctl -p

限制出站端口

要将用户可以将出站流量发送到的端口限制为常用于Web浏览的端口,以及普通服务器操作所需的端口,请发出命令:

sudo iptables -A OUTPUT -o lo -j ACCEPTsudo iptables -A OUTPUT -p tcp --sport 22 -j ACCEPTsudo iptables -A OUTPUT -p udp --dport 53 -j ACCEPTsudo iptables -A OUTPUT -p tcp --dport 53 -j ACCEPTsudo iptables -A OUTPUT -p udp --dport 67 -j ACCEPTsudo iptables -A OUTPUT -p udp --dport 68 -j ACCEPTsudo iptables -A OUTPUT -p tcp --dport 80 -j ACCEPTsudo iptables -A OUTPUT -p udp --dport 123 -j ACCEPTsudo iptables -A OUTPUT -p tcp --dport 443 -j ACCEPTsudo iptables -A OUTPUT -p tcp --dport 8080 -j ACCEPTsudo iptables -A OUTPUT -p tcp --sport 8388 -j ACCEPTsudo iptables -A OUTPUT -p icmp --icmp-type 0 -j ACCEPTsudo iptables -P OUTPUT DROPsudo dpkg-reconfigure iptables-persistent

在上面的示例中,8388是为SSR连接选择的端口。如果使用其他端口,则必须更改此编号。

重启ShadowsocksR

完成所有配置更改后,重新启动ShadowsocksR服务器:

sudo systemctl stop shadowsocksr.service

sudo systemctl start shadowsocksr.service

免费服务器

免费服务器往往会在没有通知的情况下出现。密码经常更改。同一服务器上可能有许多用户,从而降低了速度。

对于免费的SSR服务器,请尝试https://doub.io/sszhfx/ 5 ,镜像:http://doub.bid/sszhfx/。

如果您找到原始SS的免费服务器,则可以使用protocol = origin 和obfuscation = 从SSR客户端访问它plain

支持

Wiki https://github.com/shadowsocksrr/shadowsocks-rss/wiki 2 

Google+ https://plus.google.com/communities/117390969460066916686

网格https://gitter.im/breakwa11/shadowsocksr 1