当前位置:网站首页 > 技术博客 > 正文

socks5代理服务器搭建




本教程将向您展示如何在 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。

  1. 在 Firefox 中,转到编辑 > 设置> 常规(或工具 -> 设置 ) -> 常规)。
  2. 然后向下滚动到底部并单击网络设置中的设置按钮。
  3. 连接设置窗口中,选择手动代理配置
  4. 然后选择SOCKS v5,因为Shadowsocks是Socks5代理。
  5. 在 SOCKS 主机字段中输入 ,在端口字段中输入 。
  6. 您可以在使用 SOCKS v5 时启用代理 DNS,或启用通过 HTTPS 的 DNS。两者都很好。
  7. 单击确定应用这些修改。

虽然您可以从命令行为 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 是一个转发代理。想知道什么是转发代理吗?请阅读以下文章:

  • 正向代理和反向代理之间的区别

版权声明


相关文章:

  • java课程设计总结与思考2024-11-07 09:45:25
  • redis集群模式原理2024-11-07 09:45:25
  • 引用类型和基本数据类型有什么区别2024-11-07 09:45:25
  • 位图索引原理2024-11-07 09:45:25
  • java中内部类的定义2024-11-07 09:45:25
  • 玄幻:开局获得机缘抢夺系统2024-11-07 09:45:25
  • 标志位syn2024-11-07 09:45:25
  • 找不到node.dll是什么意思2024-11-07 09:45:25
  • 多目标优化是什么2024-11-07 09:45:25
  • 如何用c语言随机数生成2024-11-07 09:45:25