Skip to content

服务端的终极防护:利用 Fail2ban 和混淆隐藏保护你的 Sing-box VPS

毛佳国

经常有群友抱怨:我搭的 VLESS-Reality 或者 Hysteria 刚刚搞好,用得好好的,怎么没过两周就被封锁了端口,甚至整段 IP 被墙了?

大家往往只盯着代理协议的隐蔽性是不是被突破了,却很少关注运行 Sing-box 的 VPS 全局安全机制。互联网上存在着数百万只 24 小时不间断扫描(Scanner)各个 IP 漏洞的僵尸网络自动发包机。今天我们重点探讨,在部署好代理节点以后,如何对 VPS 本身做加固和隐身。

致命弱点 1:默认的 SSH 端口 (22) 是活靶子

百分之九十的主机商给你的默认远程连接工具都是 22 端口。大量黑客软件会每天对你这个公网 IP 的 22 端口进行疯狂的密码爆破试探。有些服务商如果检测到你的 IP 常年被海外大量的黑产攻击,甚至会拔你的网线!

解决方案:修改默认 SSH 端口

# 编辑 ssh 配置文件
nano /etc/ssh/sshd_config

找到 #Port 22 这一行。去掉井号,把 22 换成极高位的端口,比如: Port 45678

保存并重启 SSH 服务(千万记得先在服务商的面板防火墙也放行这个新端口!):

systemctl restart ssh

这一个小动作,就能过滤掉全球 99% 毫无意义的自动扫描攻击。

致命弱点 2:针对代理端口的高频刺探

当你把 Sing-box 的某一个入站(inbounds)比如开了 443 或高位端口 18443,某些深度包侦测的防火墙和主动扫描探测节点可能会对该端口疯狂发送一些不可理喻的假包,看服务端的反馈。如果你的服务回应有特征性数据包,直接拉入黑名单!

解决方案 A:使用防探测能力强的底层协议(Reality 和 Hysteria2)

解决方案 B:装上 Fail2ban 系统大黑板

利用 Fail2ban 实时分析 Linux 上的访问日志,连续输错密码或向未开放端口做多连接试探的非法 IP,直接交给操作系统的 iptables 切断甚至拉黑 24 小时。

# Ubuntu/Debian 上安装 Fail2ban
apt update && apt install fail2ban -y
# 启动并设置自启
systemctl enable --now fail2ban

这样再也没人可以肆无忌惮地拿着字典爆破你的小机子了。

致命弱点 3:开启了 ICMP 响应(防止被 Ping 出来)

其实很多时候大范围封锁就是通过群发 Ping(ICMP 请求)来检测哪些服务器还活着活着延迟是多少。既然咱们只是安安静静自己翻墙用,就不必告诉世界:“我在这儿”。

你可以通过直接在本地使用内核参数关闭 Ping 响应:

echo "net.ipv4.icmp_echo_ignore_all=1" >> /etc/sysctl.conf
sysctl -p

从此,从外界任何地方 Ping 你的 IP(包括你自己的电脑终端),全部会显示 Request timeout(请求超时)。别人会以为这是一个死了的 IP 或者是空路由,但你的 Sing-box 在特定设置的代理端口上依然悄悄平稳运行。

结语

在如今复杂的网络博弈中,仅依靠优秀的代理核心远远不够。“最高效的防守就是隐藏自己。”

通过上述:更改 SSH 端口、使用强力丢弃机制的加密算法(Reality)、安装防爆破插件以及禁 Ping。你的 VPS 服务器将成为互联网上一座暗中的“幽灵基站”,安全运行长长久久。

上一篇
解决痛点:手把手教你如何使用 Subconverter 将机场订阅转化为 Sing-box 格式
下一篇
进阶:Sing-box 节点群组管理:如何配置 URLTest 自动测速与选择器模式