当前位置: 首页 > 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 中创建的用户名和密码。

http://www.xdnf.cn/news/81541.html

相关文章:

  • 【MCP Node.js SDK 全栈进阶指南】利用TypeScript-SDK打造高效MCP应用
  • 25.4.22学习总结
  • IOT项目——双轴追光系统
  • # 利用迁移学习优化食物分类模型:基于ResNet18的实践
  • 第十一届机械工程、材料和自动化技术国际会议(MMEAT 2025)
  • 机器人进阶---视觉算法(六)傅里叶变换在图像处理中怎么用
  • hi3516cv610构建音频sample工程代码步骤
  • Spring Boot Actuator 详细使用说明(完整代码与配置)
  • 【C++游戏引擎开发】第21篇:基于物理渲染(PBR)——统计学解构材质与光影
  • 基于华为云 ModelArts 的在线服务应用开发(Requests 模块)
  • 数字IC低功耗设计——基础概念和低功耗设计方法
  • 【Linux】用户权限
  • LangChain 核心模块学习:Chains
  • USB 共享神器 VirtualHere 局域网内远程使用打印机与扫描仪
  • 安宝特科技 | Vuzix Z100智能眼镜+AugmentOS:重新定义AI可穿戴设备的未来——从操作系统到硬件生态,如何掀起无感智能革命?
  • 麒麟系统网络连接问题排查
  • 乐视系列玩机------乐视2 x620红灯 黑砖刷写教程以及新版刷写工具的详细释义
  • C++IO流
  • AI 数字短视频数字人源码开发:多维赋能短视频生态革新​
  • 图像预处理-直方图均衡化
  • 卷积神经网络迁移学习:原理与实践指南
  • GSAP 动画引擎实战:打造丝滑动效交互组件库
  • 在 40 亿整数中捕获“恰好出现两次”的数字
  • Git管理
  • 离散化区间和 java c++
  • Springboot整合MyBatisplus和快速入门
  • lspci的资料
  • crewai与langchain分析某公司股票是否可购买
  • prtobuf的原理
  • 2.Spring MVC与WebFlux响应式编程