本教程将向您展示如何在 Ubuntu 上设置 Shadowsocks 代理服务器。 Shadowsocks 是一个轻量级、快速且安全的 Socks5 代理,可绕过互联网审查。我们将学习如何在 Ubuntu 上设置服务器端以及如何配置桌面客户端。 Shadowsocks的实现有很多,本教程向您展示如何使用Shadowsocks-libev,因为
- 它是用 C 语言编写的,即使在低端机器上也非常快。
- 它维护得很好。
- 这是功能最丰富的实现。 TCP快速开放、多用户、管理API、重定向模式、隧道模式、UDP中继、AEAD密码和插件都支持。
按照下面链接的教程在 Kamatera 创建 Linux VPS 服务器。
- 如何在 Kamatera 上创建 Linux VPS 服务器
一旦您拥有运行 Ubuntu 的 VPS,请按照以下说明操作。
通过 SSH 连接到远程 Ubuntu 服务器。 包含在 Ubuntu 存储库中,因此您可以使用以下命令安装它:
钠加密库 () 将与 Shadowsocks-libev 一起安装。如果您想使用安全快速的 ChaCha20-Poly1305 加密方法,这是一个要求。安装后,编辑配置文件。
该文件的默认内容如下。
我们需要将 更改为 ,以便 Shadowsocks-libev 服务器将监听公共 IP 地址。然后将 更改为其他端口号,例如 8888。密码是随机生成的,因此您可以保持原样。
保存并关闭文件。然后重新启动shadowsocks-libev服务以使更改生效。
启用启动时自动启动。
检查其状态。确保它正在运行。
如果您看到以下错误。
您可以通过安装 rng-tools 来修复此错误。
然后运行
现在你可以启动Shadowsocks-libev服务了。
如果您在服务器上使用 iptables 防火墙,则需要允许流量流向 Shadowsocks 正在侦听的 TCP 和 UDP 端口。例如,如果 Shadowsocks 使用端口 8888,则运行以下命令:
如果您使用 UFW 防火墙,请运行以下命令:
如果您使用 AWS 或 Google Cloud,则需要在基于 Web 的控制面板上配置防火墙。
Shadowsocks-libev 软件包包含服务器软件和客户端软件。在 Ubuntu 22.04、20.04 桌面上,运行以下命令安装 Shadowsocks-libev。
Shadowsocks-libev(服务器)安装后会自动启动。您需要停止 Ubuntu 桌面上的 Shadowsocks 服务器。
另外,禁用启动时的自动启动。
Shadowsocks 客户端二进制文件名为 ss-local。有一个模板 systemd 服务单元:。在启动客户端之前,我们需要创建客户端配置文件。我们可以将 Shadowsocks-libev 服务器配置复制到客户端配置文件。
然后编辑客户端配置文件。
将服务器地址更改为服务器的公共 IP 地址,并添加以下行以告诉客户端侦听 127.0.0.1。
所以客户端配置文件将如下所示:
保存并关闭文件。然后我们可以通过以下方式启动客户端:
并启用开机自动启动功能。
检查其状态。确保它正在运行。
现在 ss-local 进程在您的 Ubuntu 桌面上侦听 127.0.0.1:1080,并且它已连接到您的 Shadowsocks 服务器。
Windows用户可以下载这个Shadowsocks客户端。下载 ZIP 文件并解压。然后双击 Shadowsocks 可执行文件。如果 Windows Defender 程序阻止 Shadowsocks 运行,请单击更多信息并选择仍然运行。
接下来,您需要在客户端软件中添加新的服务器。
- 指定服务器 IP 地址、服务器端口 (8888) 和密码。
- 您还可以更改超时值(应小于 20 秒)。
- 将其他设置保留为默认值。
单击按钮
如果您有多个代理服务器,可以单击按钮添加更多代理服务器。请注意,您一次仅使用一台代理服务器。
要使您的程序使用socks代理,程序必须支持socks代理。 Firefox、Google Chrome 和 Dropbox 等程序允许用户使用代理。我将向您展示如何配置 Firefox 和 Google Chrome。
- 在 Firefox 中,转到编辑 > 设置> 常规(或工具 -> 设置 ) -> 常规)。
- 然后向下滚动到底部并单击网络设置中的设置按钮。
- 在连接设置窗口中,选择手动代理配置。
- 然后选择SOCKS v5,因为Shadowsocks是Socks5代理。
- 在 SOCKS 主机字段中输入 ,在端口字段中输入 。
- 您可以在使用 SOCKS v5 时启用代理 DNS,或启用通过 HTTPS 的 DNS。两者都很好。
- 单击确定应用这些修改。
虽然您可以从命令行为 Google Chrome 和 Chromium 浏览器配置代理,但我建议安装 Proxy SwitchyOmega 扩展来管理代理。
在 Google Chrome 中安装扩展程序后,请按如下方式配置代理服务器:
- 选择 协议。
- 将设置为服务器地址。
- 将 设置为端口号。
应用更改。然后单击右上角的扩展图标,然后单击。
默认情况下,SwithyOmega 使用操作系统的代理设置。我们需要将其从更改为。
现在你的代理应该可以工作了。
访问 dnsleaktest.com。您将看到 Shadowsocks 服务器的 IP 地址,这表明您的代理正在工作。
单击标准测试。确保您的本地 ISP 不在测试结果中。
要让您的命令行程序使用代理,您可以安装 tsocks。
然后编辑配置文件。
找到以下行:
将其更改为
保存并关闭文件。现在您可以允许命令行程序使用 Shadowsocks 代理,如下所示:
还有一个类似的程序,称为 proxychains。
您可以通过启用 TCP 快速打开来加速 Shadowsocks。 TCP是面向连接的协议,这意味着只有在建立连接后才能交换数据,这是通过三次握手完成的。也就是说,传统上,只有三次握手完成后才能交换数据。 TCP 快速打开 (TFO) 是一种允许在三向握手完成之前交换数据的机制,最多可节省 1 个往返时间 (RTT)。
TCP 快速打开支持从 3.7 版本开始合并到 Linux 内核中,并从 3.13 版本开始默认启用。您可以通过运行以下命令来检查您的内核版本:
要检查 Ubuntu 服务器上的 TCP 快速打开配置,请运行
它可以返回 4 个值。
- 0 表示禁用。
- 1 表示已启用传出连接(作为客户端)。
- 2 表示已启用传入连接(作为服务器)。
- 3 表示已启用传出和传入连接。
运行上述命令后,我的所有 Ubuntu VPS(虚拟专用服务器)都返回 。我们希望在我们的服务器上将 tcp_fastopen 设置为 3。为此,我们可以编辑 sysctl 配置文件。
然后将以下行粘贴到文件末尾。
重新加载 sysctl 设置以使更改生效。
然后您还需要在 Shadowsocks 配置文件中启用 TCP 快速打开。
添加以下行。
所以你的 Shadowsocks 服务器配置文件将如下所示:
请注意,最后一个配置行没有逗号。保存并关闭文件。然后重新启动 Shadowsocks 服务器。
检查它是否正在运行。 (配置文件中的错误可能会阻止其重新启动。)
您还需要编辑Shadowsocks客户端配置文件并重新启动才能在Ubuntu桌面上启用TCP快速打开。
TCP BBR 是一种 TCP 拥塞控制算法,可以大幅提高连接速度。请查看以下教程。
- 如何通过启用 TCP BBR 轻松提升 Ubuntu 网络性能
有关 Shadowsocks 的更多使用,请查看手册。
我的 Shadowsocks-libev 代理时不时地停止工作,并且当我使用 systemctl 检查状态时,服务器端会显示以下错误。
在客户端,返回的错误是:
我不知道为什么会发生这种情况,但是在服务器上重新启动 服务可以解决此问题。
我不想每次都手动重新启动服务,所以我添加了一个 cron 作业来定期为我执行此操作。
将以下行放在文件末尾。
这将每 3 小时重新启动一次服务。也就是说,重启发生在凌晨 12 点、凌晨 3 点、上午 6 点、上午 9 点等。注意,时间是由cron决定的。它不是通过计算服务运行了多长时间来确定的。
如果您在 Shadowsocks-libev 日志中看到以下错误。
这意味着 Shadowsocks-libev 服务器无法成功解析 DNS。在 文件中指定 DNS 服务器很有帮助。只需在文件中添加以下行并重新启动 Shadowsocks-libev 服务即可。
如果您在 Shadowsocks 服务器上运行自己的 DNS 解析器,则可以指定 127.0.0.1 作为名称服务器。
请记住,在 JSON 文件中,最后一行不以逗号结尾。
就是这样!我希望本教程可以帮助您在 Ubuntu 上安装 Shadowsocks-libev 代理。与往常一样,如果您发现这篇文章有用,请订阅我们的免费时事通讯以获取更多提示和技巧 🙂
Shadowsocks 是一个转发代理。想知道什么是转发代理吗?请阅读以下文章:
- 正向代理和反向代理之间的区别
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/2833.html