本教程将向您展示如何 在 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。然后设置您的首选密码,用于加密流量。 建议您更换 null
和 chacha20-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 地址,这表明您的代理正在工作。
单击标准测试。 确保您的本地 ISP 不在测试结果中。
启用 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 代理。 与往常一样,如果您发现这篇文章有用,请订阅我们的免费时事通讯以获取更多提示和技巧。 小心。