最近在给一台 Debian 13 (Trixie) 的 VPS 搭建 SOCKS5 代理时,踩了不少坑。网上一搜一大把的“Dante 一键安装脚本”,要么还在用古老的源码编译导致依赖报错,要么因为没适配 systemd 导致服务根本跑不起来。最让人头疼的是,部分新系统的官方 APT 源里甚至直接移除了 dante-server 包。
折腾了一圈后我发现,对于个人开发者和小微需求来说,我们根本不需要 Dante 这种笨重的“重型卡车”。我们需要的只是一个能快速跑起来、资源占用极小的轻量级代理。
今天,给大家分享一个基于 MicroSOCKS 的通用一键部署脚本,完美解决上述所有痛点。
🌟 为什么选择 MicroSOCKS?
相比老牌的 Dante,MicroSOCKS 有着不可替代的优势:
极致轻量: 纯 C 语言编写,运行内存通常只有 1MB - 3MB,几乎不占用 CPU,非常适合 RackNerd、搬瓦工等小内存 VPS。
配置极简: 抛弃了繁琐的
.conf配置文件,直接通过命令行参数启动,告别“标点符号填错导致服务启动失败”的噩梦。系统包管: 完美存在于 Debian/Ubuntu 的官方仓库中,直接
apt install即可,后续更新和卸载极其干净。
兼容性说明: 本脚本已经过严格测试,完美支持以下系统架构(Systemd + APT)不支持CentOS:
Ubuntu: 20.04 / 22.04 / 24.04
Debian: 11 / 12 / 13
🚀 一键部署脚本
请使用 root 用户登录你的服务器,依次执行以下命令:
github一键安装:
bash <(curl -sSL https://raw.githubusercontent.com/RocGP/microsocks-installer/main/install.sh)大陆机器github不通可按照以下方式直接创建脚本文件:
1. 创建脚本文件
nano socks.sh2. 贴入核心代码
将以下代码完整复制并粘贴到编辑器中(如果使用 nano,粘贴后按 Ctrl+O 保存,Enter 确认,Ctrl+X 退出):
#!/bin/bash
# 检查root权限
if [ "$EUID" -ne 0 ]; then
echo "❌ 权限错误: 请使用 root 身份运行此脚本 (可以尝试 sudo bash socks.sh)"
exit 1
fi
echo "=========================================================="
echo " Debian/Ubuntu 通用版 SOCKS5 (MicroSOCKS) 自动部署"
echo " 支持: Debian 11-13 | Ubuntu 20.04/22.04/24.04"
echo "=========================================================="
# 配置端口和用户名密码
read -p "请输入 SOCKS5 监听端口 [默认 1080]: " PORT
PORT=${PORT:-1080}
read -p "请输入 SOCKS5 认证用户名 [默认 socksuser]: " SOCKS_USER
SOCKS_USER=${SOCKS_USER:-socksuser}
read -p "请输入 SOCKS5 认证密码 [默认随机生成]: " SOCKS_PASS
if [ -z "$SOCKS_PASS" ]; then
SOCKS_PASS=$(tr -dc A-Za-z0-9 </dev/urandom | head -c 12)
echo "✅ 已自动生成安全密码: $SOCKS_PASS"
fi
echo "⏳ 正在更新软件源并安装 MicroSOCKS..."
# 防止因为弹窗导致安装卡顿,加入非交互环境变量
export DEBIAN_FRONTEND=noninteractive
apt-get update -y
apt-get install -y microsocks
# 写入系统服务配置
cat > /etc/systemd/system/microsocks.service <<EOF
[Unit]
Description=MicroSOCKS SOCKS5 Proxy Server
After=network.target
[Service]
Type=simple
User=nobody
# 允许非root用户绑定端口
AmbientCapabilities=CAP_NET_BIND_SERVICE
ExecStart=/usr/bin/microsocks -i 0.0.0.0 -p ${PORT} -u ${SOCKS_USER} -P ${SOCKS_PASS}
Restart=on-failure
RestartSec=3
[Install]
WantedBy=multi-user.target
EOF
# 启动服务并设置开机自启
echo "⏳ 正在配置并启动后台服务..."
systemctl daemon-reload
systemctl enable microsocks
systemctl restart microsocks
# 防火墙配置 (自动适配UFW)
if command -v ufw &> /dev/null; then
if ufw status | grep -q "Status: active"; then
ufw allow $PORT/tcp >/dev/null 2>&1
echo "✅ UFW 防火墙已放行 $PORT (TCP) 端口"
else
echo "⚠️ UFW 已安装但未开启,跳过防火墙配置。"
fi
else
echo "⚠️ 系统未安装 UFW 防火墙,请确保云服务商(如存在)的安全组已开放 $PORT 端口。"
fi
# 获取公网IP
PUBLIC_IP=$(curl -s --connect-timeout 5 ifconfig.me || echo "你的公网IP")
echo ""
echo "=========================================================="
echo "🎉 通用版 SOCKS5 代理安装完成!"
echo "=========================================================="
echo "🌐 代理地址 (IP) : $PUBLIC_IP"
echo "🔌 代理端口 (Port): $PORT"
echo "👤 认证用户 (User): $SOCKS_USER"
echo "🔑 认证密码 (Pass): $SOCKS_PASS"
echo "=========================================================="
echo "🔍 查看运行状态: systemctl status microsocks"
echo "=========================================================="
3. 赋予权限并执行
chmod +x socks.sh
./socks.sh
运行后,脚本会交互式地引导你输入监听端口、用户名和密码(直接回车可使用安全默认值),一分钟内即可部署完成!
🛠️ 本地连通性测试
部署完成后,你可以在你的电脑(或手机终端)上使用 curl 命令测试代理是否通畅:
# 请替换为你自己的 用户名、密码、IP 和 端口
curl --socks5-hostname username:password@你的服务器IP:端口 https://www.google.com -v
如果返回了网页源码或者 HTTP/2 200,说明代理已经完美运行!
💡 进阶使用技巧
1. 如何修改用户名或密码?
由于 MicroSOCKS 没有独立的配置文件,账号密码是直接写在 Systemd 启动参数里的。修改方法如下:
打开服务文件:
sudo nano /etc/systemd/system/microsocks.service
找到 ExecStart= 这一行,修改里面对应的 -u 用户名 和 -P 密码。保存退出后,重启服务即可生效:
sudo systemctl daemon-reload
sudo systemctl restart microsocks
2. 脚本安全机制解读
这个脚本在设计时充分考虑了安全性:
服务降权运行: 脚本中配置了
User=nobody,这意味着代理服务是以系统极低权限运行的。即使代理软件存在漏洞被攻破,攻击者也无法获取你的 root 权限。自动防卡顿: 加入了
DEBIAN_FRONTEND=noninteractive,有效避免了 Ubuntu 安装软件包时烦人的紫色确认弹窗。云厂商安全组提醒: 如果你的服务器在阿里云、AWS、腾讯云等厂商,切记去网页控制台的安全组规则中,放行你设置的 TCP 端口,否则即使系统防火墙关了,外网依然连不上。
3. 如何彻底卸载?
由于使用了标准的系统包管理,卸载非常干净,只需一行命令:
apt-get purge -y microsocks && rm -f /etc/systemd/system/microsocks.service && systemctl daemon-reload
如果你只是需要一个稳定、省心、低耗的个人代理服务端,MicroSOCKS 绝对是目前的最佳选择。祝大家折腾愉快!
评论区