如何在 Debian 10 VPS 上安装 Shadowsocks-Libev 代理服务器

本教程将向您展示如何 在 Debian 10 VPS(虚拟专用服务器)上安装 Shadowsocks 代理服务器. Shadowsocks 是一款轻量级、超快速且安全的 Socks5 代理,可用于绕过互联网审查。 您还将学习如何 在 Debian 10 桌面上设置 Shadosocks-libev 客户端.

Shadowsocks 的实现有很多,本教程教你如何使用Shadowsocks-libev,因为

  • 它是用 C 编写的,即使在低端机器上也非常快。
  • 它维护得很好。
  • 这是功能最丰富的实现。 支持 TCP 快速开放、多用户、管理 API、重定向模式、隧道模式、UDP 中继、AEAD 密码和插件。

先决条件

要完成本教程,您需要:

  • VPS(虚拟专用服务器)。 我推荐 Vultr。 他们提供 512M 内存的高性能 KVM VPS,每月只需 2.5 美元,非常适合您的私人代理服务器。
  • 然后在您的 VPS 上安装 Debian 10。

如何在 Debian 10 VPS 上安装 Shadowsocks-libev 服务器

在 VPS 上安装 Debian 10 后。 通过 SSH 登录您的服务器。 Shadowsocks-libev 包含在默认的 Debian 10 存储库中,但它已经过时了。 事实上,过时的版本不再在我的服务器上运行。 我建议从 Debian 10 buster-backports 存储库安装它,其中包含最新版本的 Shadowsocks-libev,以便您获得安全更新和错误修复。

要启用 buster-backports 存储库,请运行以下命令。

echo "deb https://deb.debian.org/debian buster-backports main" | sudo tee /etc/apt/sources.list.d/buster-backports.list

然后更新本地包索引。

sudo apt update

之后,从 buster-backports 存储库安装 Shadowsocks-libev。

sudo apt -t buster-backports install shadowsocks-libev

要检查版本号,请运行

ss-server -v

示例输出:

shadowsocks-libev 3.3.4

钠加密库 (libsodium) 将与 shadowsocks-libev 一起安装。 如果您想使用安全且快速的 ChaCha20-Poly1305 加密方法,这是一项要求。 安装后,Shadowsocks-libev 将自动使用默认配置文件启动。 您可以通过以下方式检查其状态:

systemctl status shadowsocks-libev

输出:

 shadowsocks-libev.service - Shadowsocks-libev Default Server Service
   Loaded: loaded (/lib/systemd/system/shadowsocks-libev.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2020-06-23 13:33:46 UTC; 14s ago
     Docs: man:shadowsocks-libev(8)
 Main PID: 20316 (ss-server)
    Tasks: 1 (limit: 558)
   Memory: 552.0K
   CGroup: /system.slice/shadowsocks-libev.service
           └─20316 /usr/bin/ss-server -c /etc/shadowsocks-libev/config.json

提示:如果上面的命令没有立即退出,请按 重新获得对终端的控制权。

如您所见,它正在运行并且启动时自动启动已启用。 如果它没有运行,您可以使用以下命令启动它:

sudo systemctl start shadowsocks-libev

要在启动时启用自动启动,请运行:

sudo systemctl enable shadowsocks-libev

现在我们需要编辑默认配置文件。

sudo nano /etc/shadowsocks-libev/config.json

文件的默认内容如下。

{
 "server":"127.0.0.1",
 "server_port":8388,
 "local_port":1080,
 "password":"focobguph",
 "timeout":60,
 "method":null
}

将 127.0.0.1 替换为您的 Debian 服务器的公共 IP 地址。 你可以改变 server_port 到其他端口号,但不要使用端口 8388。然后设置您的首选密码,用于加密流量。 建议您更换 nullchacha20-ietf-poly1305 作为加密方法。 这是我的配置示例。

Save 和 close 文件。 然后重新启动 Shadowsocks-libev 以使更改生效。

sudo systemctl restart shadowsocks-libev

在 Debian 10 桌面上安装和配置 Shadowsocks-libev 客户端

shadowsocks-libev 包包含服务器软件和客户端软件。 所以只需使用上面提到的方法在 Debian 10 桌面上安装 Shadowsocks-libev。

注意:在 Debian 10 上,Shadowsocks-libev(服务器)安装后会自动启动。 您需要在 Debian 10 桌面上停止 Shadowsocks 服务器。

sudo systemctl stop shadowsocks-libev

另外,在启动时禁用自动启动。

sudo systemctl disable shadowsocks-libev

Shadowsocks 客户端二进制文件被命名为 ss-local. 有一个模板 systemd 服务单元: /lib/systemd/system/[email protected]. 在启动客户端之前,我们需要创建客户端配置文件。

sudo nano /etc/shadowsocks-libev/location-of-your-server.json

你可以更换 location-of-your-server 像 SFO、LAX 这样的东西。 将 Shadowsocks-libev 服务器配置复制到客户端配置文件,然后添加以下行告诉客户端侦听 127.0.0.1。

"local_address":"127.0.0.1",

因此,客户端配置文件将如下所示:

{
 "server":"your-server-ip-address",
 "server_port":8388,
 "local_address":"127.0.0.1",
 "local_port":1080,
 "password":"focobguph",
 "timeout":60,
 "method":"chacha20-ietf-poly1305"
}

Save 和 close 文件。 然后我们可以启动客户端:

sudo systemctl start [email protected]location-of-your-server.service

并在启动时启用自动启动。

sudo systemctl enable [email protected]location-of-your-server.service

检查其状态。 确保它正在运行。

systemctl status [email protected]location-of-your-server.service

现在 ss-local 进程在您的 Ubuntu 桌面上侦听 127.0.0.1:1080 并且它已连接到您的 Shadowsocks 服务器。

配置 Web 浏览器以使用 Socks 代理

要让您的程序使用socks 代理,程序必须支持socks 代理。 火狐量子、谷歌浏览器和 Dropbox 等程序允许用户使用代理。 我将向您展示如何配置 Firefox 和 Google Chrome。

火狐

在 Firefox 中,转到 编辑 > 喜好 > 一般的. 然后向下滚动到底部并单击 设置网络代理. 在里面 连接设置 窗口,选择 手动代理配置. 然后选择 袜子 v5 因为 Shadowsocks 是 Socks5 代理。 Enter SOCKS 主机字段中的 127.0.0.1 和端口字段中的 1080。 确保 使用 SOCKS v5 时的代理 DNS 已启用。 单击“确定”以应用这些修改。

谷歌浏览器

Google Chrome 和 Chromium Linux 版本没有用于配置代理的 GUI,但您可以使用如下命令行选项。

google-chrome --proxy-server="socks5://127.0.0.1:1080"

或者

chromium-browser --proxy-server="socks5://127.0.0.1:1080"

您还可以安装和使用 SwitchOmega 扩展配置代理,这样您就不必在终端窗口中键入命令。

DNS泄漏测试

访问 dnsleaktest.com。 您将看到您的 Shadowsocks 服务器的 IP 地址,这表明您的代理正在工作。

shadowsocks-libev-debian-9-stretch-install

单击标准测试。 确保您的本地 ISP 不在测试结果中。

shadowsocks-libev-debian-9-server

启用 TCP BBR

TCP BBR 是一种 TCP 拥塞控制算法,可以大幅提高连接速度。 按照下面的教程在 Debian 10 服务器上启用 TCP BBR。 您不必在 Debian 10 桌面上启用它。 下面链接的教程适用于 Ubuntu,但也适用于 Debian。

  • 如何通过启用 TCP BBR 轻松提升 Ubuntu 网络性能

启用 TCP 快速打开

您可以通过启用 TCP 快速打开来加快 Shadowsocks 的速度。 TCP是面向连接的协议,这意味着只有在建立连接后才能交换数据,这是通过三向握手完成的。 也就是说,传统上,只有在三向握手完成后才能进行数据交换。 TCP 快速打开 (TFO) 是一种允许在三向握手完成之前交换数据的机制,最多可节省 1 次往返时间 (RTT)。

自 3.7 版起,TCP 快速开放支持已合并到 Linux 内核,并自 3.13 版起默认启用。 您可以通过运行来检查您的内核版本:

uname -r

要检查 Debian 服务器上的 TCP 快速打开配置,请运行

cat /proc/sys/net/ipv4/tcp_fastopen

它可以返回 4 个值。

  • 0 表示禁用。
  • 1 表示已启用传出连接(作为客户端)。
  • 2 表示已启用传入连接(作为服务器)。
  • 3 表示它对传出和传入连接启用。

我所有的 debian 服务器都返回了 1 运行上述命令后。 我们希望在我们的服务器上将 tcp_fastopen 设置为 3。 为此,我们可以编辑 sysctl 配置文件。

sudo nano /etc/sysctl.conf

然后将以下行粘贴到文件末尾。

net.ipv4.tcp_fastopen=3

重新加载 sysctl 设置以使更改生效。

sudo sysctl -p

然后你还需要在Shadowsocks配置文件中启用TCP快速打开。

sudo nano /etc/shadowsocks-libev/config.json

添加以下行。

"fast_open": true

所以你的 Shadowsocks 服务器配置文件将如下所示:

{
 "server":"your-server-ip-address",
 "server_port":8388,
 "local_port":1080,
 "password":"focobguph",
 "timeout":60,
 "method":"chacha20-ietf-poly1305",
 "fast_open": true
}

请注意,最后一个配置行没有逗号。 Save 和 close 文件。 然后重启Shadowsocks服务器。

sudo systemctl restart shadowsocks-libev

检查它是否正在运行。 (配置文件中的错误可以阻止它重新启动。)

systemctl status shadowsocks-libev

您还需要编辑 Shadowsocks 客户端配置文件并重新启动它以在 Debian 10 桌面上启用 TCP 快速打开。

有关 Shadowsocks 的更多用法,请查看手册。

man shadowsocks-libev

总结

就是这样! 我希望本教程可以帮助您在 Debian 10 服务器和桌面上安装 Shadowsocks-libev 代理。 与往常一样,如果您发现这篇文章有用,请订阅我们的免费时事通讯以获取更多提示和技巧。 小心。