当前位置: 首页 > news >正文

【在阿里云或其他 CentOS/RHEL 系统上安装和配置 Dante SOCKS5 代理服务】

在阿里云或其他 CentOS/RHEL 系统上安装和配置 Dante SOCKS5 代理服务

    • 什么是SOCKS5?
    • 前提条件
    • 步骤 1:安装 Dante SOCKS5 服务
    • 步骤 2:创建专用代理用户(推荐)
    • 步骤 3:配置 Dante 服务
    • 步骤 4:设置日志文件权限
    • 步骤 5:配置 Systemd 服务文件
    • 步骤 6:重载 Systemd 并启动服务
    • 步骤 7:配置防火墙
    • 步骤 8:测试 SOCKS5 代理
    • 总结

什么是SOCKS5?

SOCKS5 是一种网络协议,常用于客户端与服务器之间通过代理服务器进行通讯。它可以代理 TCP 和 UDP 流量,常用于绕过网络限制、保护隐私或用于特定应用的代理需求(例如 RustDesk)。本文将指导你在阿里云或其他基于 CentOS/RHEL 的 Linux 服务器上安装和配置 Dante SOCKS5 代理服务,并使用系统用户进行认证。

前提条件

  • 一台运行 CentOS、RHEL、AlmaLinux 或 Rocky Linux 的服务器(例如阿里云 ECS)。
  • 拥有服务器的 root 或 sudo 访问权限。
  • 基本的 Linux 命令行操作知识。

步骤 1:安装 Dante SOCKS5 服务

我们使用 dante-server 软件包来提供 SOCKS5 服务。在 CentOS/RHEL 系列系统上,可以使用 yumdnf 进行安装。

sudo yum update -y
sudo yum install dante-server -y

步骤 2:创建专用代理用户(推荐)

为了安全和管理方便,建议创建一个专门用于 SOCKS5 认证的用户,而不是使用系统已有用户。

首先,创建一个新的系统用户(例如 proxyuser):

sudo useradd proxyuser

然后,为这个用户设置密码:

sudo passwd proxyuser

按照提示输入并确认密码。记住这个用户名和密码,客户端连接代理时需要使用。

注意: 如果你不创建独立用户而选择使用现有系统用户,需要确保该用户存在并设置了密码。

步骤 3:配置 Dante 服务

Dante 的主配置文件位于 /etc/danted.conf。我们需要编辑此文件来指定监听地址、端口、认证方式和规则。

使用你喜欢的文本编辑器打开配置文件(例如 vim):

sudo vim /etc/danted.conf

将文件内容修改为以下示例:

# 日志输出路径(需确保 proxyuser 有写入权限,见步骤 4)
logoutput: /var/log/danted.log# 监听地址和端口(0.0.0.0 表示允许所有 IP 连接,端口使用 1080)
internal: 0.0.0.0 port = 1080# 对外网卡名称。根据你的服务器实际网卡名称修改(如 eth0, ens33, etc.)
# 可以使用 'ip a' 命令查看网卡名称
external: eth0# 认证方式:启用系统用户认证,禁用匿名访问
method: username# 特权用户(绑定端口需 root 权限)
user.privileged: root# 实际运行用户(降权至专用用户 proxyuser)
user.unprivileged: proxyuser# 客户端访问规则(允许所有客户端连接到代理服务本身)
client pass {from: 0.0.0.0/0 to: 0.0.0.0/0log: connect disconnect error
}# 代理流量规则(允许代理所有流量到任何目的地)
socks pass {from: 0.0.0.0/0 to: 0.0.0.0/0log: connect disconnect error
}

重要:

  • external: eth0 中的 eth0 替换为你服务器的实际对外网卡名称。你可以运行 ip a 命令来查找。常见的名称还有 ens33ens160 等。
  • 确保 user.unprivileged 的值与你在步骤 2 中创建的用户名一致(例如 proxyuser)。

保存并关闭文件。

步骤 4:设置日志文件权限

Dante 服务以非特权用户(proxyuser)运行时,需要有写入日志文件的权限。

首先创建日志文件(如果不存在):

sudo touch /var/log/danted.log

然后,将日志文件的所有者和组改为 proxyuser,并设置合适的权限:

sudo chown proxyuser:proxyuser /var/log/danted.log
sudo chmod 644 /var/log/danted.log

步骤 5:配置 Systemd 服务文件

Dante 安装后通常会提供一个 systemd 服务文件,但有时需要根据配置进行微调,特别是指定配置文件路径。

检查 /etc/systemd/system/danted.service 文件。如果文件不存在,或者需要修改,可以手动创建或编辑它。

使用编辑器打开服务文件:

sudo vim /etc/systemd/system/danted.service

确保文件内容类似如下:

[Unit]
Description=Dante SOCKS5 Proxy Server
After=network.target[Service]
Type=forking
ExecStart=/usr/sbin/sockd -f /etc/danted.conf # -f 指定配置文件路径
ExecReload=/bin/kill -HUP $MAINPID
User=root # Systemd 运行服务脚本时使用 root,但 Dante 进程会降权
Group=root[Install]
WantedBy=multi-user.target

注意: ExecStart 中的 /usr/sbin/sockd 是 Dante 服务的可执行文件路径。你可以运行 which sockdwhich danted 命令来确认实际路径,如果不同,请替换。不过 /usr/sbin/sockd 是常见的默认路径。确保 -f /etc/danted.conf 指定了正确的配置文件路径。

保存并关闭文件。

步骤 6:重载 Systemd 并启动服务

修改了 systemd 服务文件后,需要重载 systemd 配置:

sudo systemctl daemon-reload

然后启动 Dante 服务并设置开机自启:

sudo systemctl start danted
sudo systemctl enable danted

检查服务状态,确认服务已成功启动且没有报错:

sudo systemctl status danted

如果服务启动失败,请检查 danted.conf 文件的语法、日志文件权限以及 systemd 服务文件中的可执行文件路径。

步骤 7:配置防火墙

如果你在服务器上使用了防火墙(强烈推荐,阿里云默认可能开启安全组,但系统内置防火墙也需要配置),需要放行 SOCKS5 服务使用的端口(默认为 1080)。

如果你使用 firewalld(CentOS 7/8+ 默认):

sudo firewall-cmd --permanent --zone=public --add-port=1080/tcp
sudo firewall-cmd --reload

如果你使用 iptables

sudo iptables -A INPUT -p tcp --dport 1080 -j ACCEPT
sudo service iptables save # 或 iptables-save > /etc/sysconfig/iptables
sudo service iptables restart

请根据你的实际防火墙配置进行调整。同时,确保阿里云安全组也开放了 TCP 协议的 1080 端口。

步骤 8:测试 SOCKS5 代理

现在你可以从另一台机器上测试 SOCKS5 代理是否工作,特别是带有用户认证的情况。可以使用 curl 命令进行测试:

curl --socks5 proxyuser:your_password@服务器IP:1080 [http://ifconfig.me](http://ifconfig.me)

proxyuser 替换为你创建的用户名,your_password 替换为对应的密码,服务器IP 替换为你的阿里云服务器公网 IP 地址。

如果命令成功执行并返回了你的服务器公网 IP 地址,说明 SOCKS5 代理已成功搭建,并且用户认证也正常工作。

如果返回错误,请检查:

  • 用户名和密码是否正确。
  • 服务器防火墙和阿里云安全组是否放行了 1080 端口。
  • Dante 服务是否正在运行 (sudo systemctl status danted)。
  • danted.log 文件中是否有错误信息。

总结

通过以上步骤,你已经在阿里云或其他 CentOS/RHEL 服务器上成功安装并配置了使用系统用户认证的 Dante SOCKS5 代理服务。现在你可以在客户端应用程序(如浏览器、IM 客户端、RustDesk 等)中配置使用这个代理了,连接地址为你的服务器公网 IP,端口 1080,认证时输入你在步骤 2 中创建的用户名和密码。

相关文章:

  • k8s-1.28.10 安装metrics-server
  • 【k8s】PV,PVC的回收策略——return、recycle、delete
  • ESP32音频识别(FFT)实测调整(ESP-IDF 5.4)
  • 蓝桥杯常考的找规律题
  • 小白工具视频转MPG, 功能丰富齐全,无需下载软件,在线使用,超实用
  • hi3516cv610构建音频sample工程代码步骤
  • 【Nova UI】六、SASS 赋能组件库:通用方法与混入的变革力量
  • 【FreeRTOS】简介
  • 使用resend通过调用api接口的方式发送邮件,可以自定义域
  • 模型 螃蟹效应
  • 前台调用接口的方式及速率对比
  • 品牌如何通过朝日新闻出海日本?——某企业日本媒体发稿实战
  • XSS的应用
  • 工厂模式:工厂方法模式 和 抽象工厂模式
  • 闲聊人工智能对媒体的影响
  • 20.4 显示数据库数据
  • rpm命令详解
  • 【通过Docker快速部署Tomcat9.0】
  • 考研单词笔记 2025.04.22
  • rgw的d3n功能配置
  • 马文化体验展商圈启动,环球马术冠军赛的能量不止在赛场
  • 中国政府援缅第七批抗震救灾物资运抵交付
  • 人民文学奖颁出,董宇辉获传播贡献奖
  • 一场小型越野赛为何吸引众多越野大神打卡?
  • 网信部门持续整治利用未成年人形象不当牟利问题
  • 网约车司机要乘客提前200米下车遭殴打,警方介入