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

相关推荐
小沈同学呀3 小时前
创建一个Spring Boot Starter风格的Basic认证SDK
java·spring boot·后端
杰锅就是爱情3 小时前
OpenObserve Ubuntu部署
linux·运维·ubuntu
方圆想当图灵5 小时前
如何让百万 QPS 下的服务更高效?
分布式·后端
凤山老林5 小时前
SpringBoot 轻量级一站式日志可视化与JVM监控
jvm·spring boot·后端
凡梦千华5 小时前
Django时区感知
后端·python·django
huangjiazhi_5 小时前
在Linux上无法访问usb视频设备
linux·运维·服务器
Chan166 小时前
JVM从入门到实战:从字节码组成、类生命周期到双亲委派及打破双亲委派机制
java·jvm·spring boot·后端·intellij-idea
yyy0002006 小时前
压缩和归档 文件传输
linux·运维·服务器
STCNXPARM6 小时前
深度剖析Linux内核无线子系统架构
linux·运维·系统架构·wifi·无线子系统
烈风7 小时前
004 Rust控制台打印输出
开发语言·后端·rust