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

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

ShadowsocksR 客户端和服务器

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

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

本文包括以下部分:

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

Windows Client

Download

要提取 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 图标以调出控制选项。选择服务器然后编辑服务器…。

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

扫描二维码

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

模式

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

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

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

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

选项

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

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

Android Client

从 Github 下载 Android apk 文件。为了您的方便,下载也镜像在这里。

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

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

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

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

您可以通过输入新服务器的详细信息或使用 Android 设备相机扫描显示的二维码来添加新服务器。

要使用该功能扫描二维码,您可能需要先安装 ZXing Team 的条形码扫描器应用程序。

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

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

您现在已连接。

Linux 客户端

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

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

sudo apt-get install git python-m2crypto libsodium18

我们将把 ShadowsocksR 安装到我们的 Downloads 目录中,因此如果需要,请切换到该目录:

cd ~/下载

从 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。您可以在 Preferences > 下执行此操作高级>网络 > 设置。确保您还代理您的 DNS 流量。

如果您使用的是 Chrome 而不是 Firefox,请安装 FelisCatus 的扩展 Proxy 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 连接,该 ISP 始终在 12.34.0.012.34.255.255 范围内为您分配 IP 地址。在无类域间路由 (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

免费服务器

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

支持

维基 Home · shadowsocksrr/shadowsocks-rss Wiki · GitHub

谷歌+ 登录 - Google 帐号

吉特 breakwa11/shadowsocksr - Gitter

知识共享 CC0