五分钟就能搭好的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 教程

相关推荐
泡沫冰@2 小时前
管理 SELinux 安全性
linux
毅航3 小时前
从原理到实践,讲透 MyBatis 内部池化思想的核心逻辑
后端·面试·mybatis
展信佳_daydayup3 小时前
03 基础篇-润和开发板连接过程
linux·开源·嵌入式
两张不够花3 小时前
Shell脚本源码安装Redis、MySQL、Mongodb、PostgreSQL(无报错版)
linux·数据库·redis·mysql·mongodb·postgresql·云计算
展信佳_daydayup3 小时前
02 基础篇-OpenHarmony 的编译工具
后端·面试·编译器
Always_Passion3 小时前
二、开发一个简单的MCP Server
后端
用户721522078773 小时前
基于LD_PRELOAD的命令行参数安全混淆技术
后端
笃行3503 小时前
开源大模型实战:GPT-OSS本地部署与全面测评
后端
知其然亦知其所以然3 小时前
SpringAI:Mistral AI 聊天?一文带你跑通!
后端·spring·openai
庚云3 小时前
🔒 前后端 AES 加密解密实战(Vue3 + Node.js)
前端·后端