五分钟就能搭好的socks5为啥我装了一个小时😭 进来看小丑

💡最近有个服务代理的需求,就照例网上找找解决方案,这些还是挺方便的 有很多技术小伙伴无私的分享自己的一键脚本,但是很多脚本似乎因为时间原因已经不好使了 遂自己研究研究 在此分享一下自己的安装过程并说说自己的踩坑点

为什么选择 SOCKS5?🤔

相比 HTTP 代理,SOCKS5 有两个明显优势:

  • 支持 TCP 和 UDP 协议(比如可以代理视频通话、游戏等)
  • 转发效率更高,对应用层协议无限制(HTTP 代理只能转发 HTTP/HTTPS 流量)

而 Dante-server 是目前最流行的 SOCKS5 服务器实现之一,轻量、稳定、配置灵活,非常适合个人或小型团队使用。

一、 准备工作

开始之前,你需要:

  • 一台 Linux 服务器(本文以 CentOS 为例,Ubuntu 操作类似)
  • 服务器已安装yum包管理器
  • 基本的 Linux 命令操作能力

二、安装过程

1. 安装Dante-server

Dante-server 在官方源中一般有收录,直接用 yum 安装即可:

bash 复制代码
# 安装dante-server
sudo yum install dante-server -y

# 验证安装是否成功(查看版本)
sockd -v

如果出现-bash: sockd: 未找到命令的错误,别慌!这是因为程序路径没加入环境变量:

bash 复制代码
# 手动添加路径(临时生效)
export PATH=$PATH:/usr/sbin

# 永久生效(针对bash用户)
echo 'export PATH=$PATH:/usr/sbin' >> ~/.bashrc
source ~/.bashrc

再次执行sockd -v,如果能看到版本信息,说明安装成功啦!✅

2. 创建新配置文件

bash 复制代码
sudo vim /etc/sockd.conf  # 用nano的话替换成sudo nano /etc/sockd.conf

粘贴以下内容(记得替换eth0为你的服务器网卡,用ip addr查看):

bash 复制代码
# 日志输出(方便排查问题)
logoutput: /var/log/sockd.log

# 监听地址和端口(0.0.0.0表示监听所有网卡 这里的1080 可以替换成你想要监听端口)
internal: 0.0.0.0 port = 1080

# 出口网卡(服务器访问外网用的网卡)
external: eth0

# 不启用认证(测试用 **一般这里还是要设置认证的** 后面会讲)
socksmethod: none
clientmethod: none

# 运行用户
user.privileged: root
user.unprivileged: nobody

# 允许所有客户端连接
client pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
}

# 允许代理所有目标地址
socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    protocol: tcp udp
}

3. 启动服务并测试

bash 复制代码
# 启动服务
sudo systemctl start sockd

# 设置开机自启
sudo systemctl enable sockd

# 检查服务状态(出现active(running)说明正常)
sudo systemctl status sockd

测试代理是否可用(替换服务器IP为你的实际 IP 还有你配置的端口号):

shell 复制代码
curl -x socks5://服务器IP:1080 https://www.baidu.com

如果返回百度的 HTML 内容,说明基础配置成功!🎉

4. 添加用户认证(安全加固) 🔒

无密码代理太危险了!必须加上用户认证,只允许知道账号密码的人使用。

创建专用系统用户

bash 复制代码
# 创建用户(-s /sbin/nologin 禁止登录服务器,仅用于代理认证)
sudo useradd -s /sbin/nologin proxyuser

# 设置密码(按提示输入密码,比如abc@123!)
sudo passwd proxyuser

修改配置文件启用认证

sudo vim /etc/sockd.conf

替换认证相关配置:

bash 复制代码
# 启用用户名密码认证
socksmethod: username
clientmethod: username

# 其他配置不变,保留之前的监听和规则设置

# 限制仅允许proxyuser使用(可选)
socks pass {
    from: 0.0.0.0/0 to: 0.0.0.0/0
    protocol: tcp udp
    user: proxyuser  # 只允许这个用户访问
}

重启服务并测试

bash 复制代码
sudo systemctl restart sockd

# 测试带认证的代理(密码中有特殊字符记得用单引号包裹)
curl -x 'socks5://proxyuser:你的密码@服务器IP:1080' <https://www.baidu.com>

三、踩坑记录🤡

💡如果你前面都顺顺利利执行下来了 就不用往下看了,😩因为下面都是我这个大冤种遇到的奇奇怪怪的问题

1. 服务器安全组没有开对应端口

这个其实算是比较常见的问题了 只是给大家提个醒 我自己可没犯这么基础的错误🤣

2. danted command not found /dantd command not found

我真的会谢!搜攻略时看到有人写danted startdantd -v,跟着敲全报错,😤 害得我怀疑自己 怀疑yum 就是没怀疑过写攻略的作者 特么😭 正确命令是sockd!(重要的事情加粗:是sockd不是 danted!

3. 密码里有特殊字符导致curl失败

这里其实是shell的转义导致的 特殊字符加一个反斜杠\ 或者像我上面加单引号就可以解决 不要像我笨笨的去怀疑是不是代理没装好又去查了一番

4. 配置项 method: none username

我其实理解分享者的意思 这里的method指用户认证方式 分别是 none(无认证) 和 username(用户名密码认证) 大家可以根据需求自选其一 但是你至少说清楚啊!!!, 对于不了解的人来说 我只会复制粘贴呀

如果觉得本文对你有帮助,欢迎点赞收藏~ 有任何问题可以在评论区留言,我会尽力解答!😘

#SOCKS5 #服务器配置 #代理服务器 #Linux 教程

相关推荐
行百里er3 小时前
WebSocket 在 Spring Boot 中的实战解析:实时通信的技术利器
spring boot·后端·websocket
wdfk_prog4 小时前
[Linux]学习笔记系列 -- hashtable
linux·笔记·学习
柳杉4 小时前
建议收藏 | 2026年AI工具封神榜:从Sora到混元3D,生产力彻底爆发
前端·人工智能·后端
仙俊红4 小时前
spring的IoC(控制反转)面试题
java·后端·spring
CheungChunChiu4 小时前
Linux 内核动态打印机制详解
android·linux·服务器·前端·ubuntu
小楼v4 小时前
说说常见的限流算法及如何使用Redisson实现多机限流
java·后端·redisson·限流算法
与遨游于天地5 小时前
NIO的三个组件解决三个问题
java·后端·nio
czlczl200209255 小时前
Guava Cache 原理与实战
java·后端·spring
BlueBirdssh6 小时前
linux 内核通过 dts 设备树 配置pcie 控制器 各种参数和中断等, 那freeRTOS 是通过直接设置PCIe寄存器吗
linux
Yuer20256 小时前
什么是 Rust 语境下的“量化算子”——一个工程对象的最小定义
开发语言·后端·rust·edca os·可控ai