
我的家用服务器上线几分钟就被Bot扫描了——三个设置让它彻底安全
Diebug
2026年7月,我搭建了一台小型 Linux 跳板机,用于统一管理内网中的多台家用服务器。想法很合理:一台暴露在公网的机器作为入口,其他设备藏在内网后面。
结果:服务器上线不到几分钟,SSH 端口就开始被全球 Bot 扫描。
这不是我的服务器被入侵了——是因为我做了正确的安全措施。但如果我没有做,后果可能不堪设想。
Bot 扫描有多快?
服务器上的真实日志:
1 | # 服务器首次启动后,5分钟内收到的SSH失败登录尝试 |
这些 IP 来自不同的大洲,扫描工具包括 Hydra、Ncrack 以及更高级的分布式扫描框架。它们在目标端口的每一次尝试,都在消耗服务器资源,同时暴露了潜在的暴力破解风险。

三个关键设置
设置一:禁用 root 直接登录 + 强制密钥认证
1 | # /etc/ssh/sshd_config |
这是最基础也是最重要的一步。绝大多数 Bot 攻击的目标是 root 账户,禁用 root 登录直接堵死了最常见的攻击路径。同时关闭密码认证,只允许 SSH 密钥登录,让暴力破解彻底失效。
效果是:Failed password 类的日志归零。攻击者即使知道你的用户名,也无法通过密码尝试进入。
设置二:安装 Fail2ban
1 | sudo apt install fail2ban |
1 | [sshd] |
Fail2ban 会监控 SSH 日志,当同一 IP 在 10 分钟内失败登录超过 3 次时,自动将该 IP 加入防火墙黑名单 1 小时。
我的服务器上线后,Fail2ban 在头几个小时内就自动封禁了上百个扫描 IP。这些 IP 不再能访问服务器的任何端口。

设置三:使用 Tailscale 替代端口转发
与其将 SSH 端口暴露在公网,不如使用 Tailscale(零配置 VPN)。
1 | curl -fsSL https://tailscale.com/install.sh | sh |
安装完成后,服务器会获得一个 Tailscale 分配的 IP(如 100.x.x.x),只有加入了同一 Tailscale 网络的设备才能访问。SSH 端口不需要对公网开放。
攻击者根本无法扫描到你的 SSH 端口,因为端口对公网根本不存在。只有你信任的设备才能连接。

为什么很多人忽略了这些?
大多数家用服务器教程的重点是让服务可用,而不是让服务不可被攻击。
常见的入门指南会说:安装 OpenSSH,修改端口为 2222,然后用 PuTTY 连接。
它们不会告诉你:修改端口只是 security by obscurity,对真正的攻击者没有任何阻挡作用。也不会提到 Fail2ban 或 Tailscale 的存在。
结果就是:无数服务器暴露在公网,运行着默认的 SSH 配置,成为 Bot 扫描的持续目标。
更多进阶建议
更改默认 SSH 端口,虽然不能阻止扫描,但可以减少日志中的噪音。使用 SSH 证书,除了密钥之外进一步限制允许登录的用户和来源。定期用 last 命令查看最近登录,用 grep “Failed” /var/log/auth.log 分析攻击来源。启用双因素认证,即使密钥泄露,攻击者仍需第二因素。
总结
家用服务器暴露公网不是安全问题,不做好基础防护才是。默认 SSH 配置让服务器在几分钟内成为全球 Bot 扫描的目标。禁用 root 登录、强制密钥认证、部署 Fail2ban、使用 Tailscale 替代端口转发——这四个动作足够挡住绝大多数攻击。
任何暴露在公网的服务,都应以默认即被攻击为前提进行安全配置,而不是依赖没人会发现我的侥幸。
原文来源:MakeUseOf