SSH 开端口还是用 Tailscale?密钥还是密码?远程访问安全决策
结论先行:远程 SSH 走 Tailscale(零端口暴露、免费、5 分钟),公网 SSH 端口一个都不开。必须开端口时上四件套:密钥登录 + fail2ban + 非标端口 + UFW。还在用密码的,立刻换密钥。
「独立开发者的选择题」第四题,关乎你服务器能不能活过第一晚:SSH 到底是开放端口还是走 Tailscale?登录用密码还是密钥?
先表态:我管的 8 台 VPS,全部走 Tailscale,公网 SSH 端口一个都不开。下面用真实日志告诉你为什么。
0、写在前面:一台新 VPS 的第一晚
你刚买好 VPS,开了 22 端口准备 SSH 进去。装好环境并开始部署,第二天早上查看系统登录安全日志:
1 | # 查看最近 24 小时内遭遇的密码认证失败频次 |
终端返回的统计数字大概率高达几千行。具体日志长这样(一台新上线 VPS 几小时内的真实记录):
1 | Failed password for root from 193.32.162.41 port 51012 ssh2 |
这些攻击并非由黑客针对特定个人发起,而是分布在全球各地的全自动化扫描爬虫按 IP 段横扫 22 端口。一旦服务器使用了弱口令或历史泄漏的重复密码,几小时内就会被攻陷成为挖矿程序或 DDoS 傀儡机。
很多初学者习惯将 22 端口改成 2222,误以为这样就能高枕无忧。事实上现代自动化扫描器(如 ZMap 或 Masscan)在几分钟内即可遍历完主机的全量开放端口。真正的工程级解法:让远程管理端口从公网视野中彻底消失。
1、期望目标:远程访问的双重基准
远程连接架构需要同时满足以下两项安全指标:
- ✅ 公网攻击面完全清零:在公网任何端口扫描器下,服务器呈现绝对不可探测状态,SSH 端口不对公网监听。
- ✅ 全场景秒级低延迟直连:在咖啡店 Wi-Fi、移动热点或公司受限网络下,笔记本与移动端均能稳定直连,免记复杂动态 IP。
通过消除公网入口的方式解决安全问题,收益远高于配置复杂的防御规则。
2、计划思考:三个量化评估轴
评估远程连接方案时,需聚焦以下三个维度:
- 轴 1·外部暴露面(Attack Surface):公网扫描器能否直接触达并探测到 SSH 握手特征。
- 轴 2·认证防御强度(Auth Resilience):即便入口可达,能否在密码字典碰撞与离线破解下保持绝对防御。
- 轴 3·网络自愈与穿透性(Traversability):身处对称型 NAT 或企业严格防火墙后,能否实现无感打洞互联。
3、推荐方案与工程实操落地
方案 A(首选):Tailscale 零暴露虚拟专用网
Tailscale 底层基于 WireGuard 协议构建。所有安装了客户端的设备接入后,将获得专属的 100.x.x.x 虚拟私网 IP。主机之间通过 NAT 打洞建立端到端加密通道,公网完全无需暴露任何入站端口。
直接运行开源项目中的 ittinker-scripts/tailscale-quick-mesh 脚本完成自动化部署,或手动执行以下官方流程:
1 | # 1. 在 VPS 上一键安装 Tailscale 并启动 |
完成上述配置后,通过 UFW 防火墙将 SSH 监听严格收敛在虚拟网卡 tailscale0 上,彻底关闭公网入站规则:
1 | # 允许且仅允许来自 Tailscale 虚拟网卡的 SSH 连接请求 |
执行后,公网扫描器将判定端口处于 Filtered 状态,攻击探测彻底失效。关于更多组网参数,参考 Tailscale 5 分钟上手实战;若需要完全自建控制面,参阅 Netbird 开源自建 Mesh VPN 完全指南 与 NAT 穿透工具综合评测。
方案 B(必须开端口时):高强加固四件套
某些特定环境(例如第三方 CI/CD 自动化部署、协作者临时接入)无法安装 Tailscale 客户端,必须对外开放公网 SSH 端口。此时必须执行全套加固工程。
1. 禁用密码登录并强制启用 Ed25519 密钥认证
在本地客户端生成安全等级最高的 Ed25519 算法密钥对:
1 | # 生成高抗攻击性的 Ed25519 密钥 |
2. 写入生产级 /etc/ssh/sshd_config.d/99-hardened.conf 配置
在 VPS 上建立专用加固文件,覆盖系统默认的不安全配置:
1 | # /etc/ssh/sshd_config.d/99-hardened.conf |
执行语法检查并安全重载守护进程:
1 | # 测试配置文件是否存在语法错误 |
3. 部署 Fail2ban 自动防爆机制
安装并配置 Fail2ban,针对短时间内连续认证失败的恶意 IP 实行多级自动封禁:
1 | sudo apt update && sudo apt install fail2ban -y |
编写专用防御规则 /etc/fail2ban/jail.d/sshd.local:
1 | [sshd] |
启动并验证服务:
1 | sudo systemctl enable --now fail2ban |
4. UFW 防火墙端口放行
1 | sudo ufw default deny incoming |
生产级客户端 ~/.ssh/config 最佳实践
在个人电脑中配置连接复用与别名管理,日常连接无需手动敲击长 IP、端口与证书路径:
1 | # ~/.ssh/config 客户端优化配置 |
ControlMaster auto 开启连接复用特性。首次握手建立 TCP 管道后,后续同一终端窗口直连将实现秒级免协商快速复用,大幅减少高频指令延迟。关于高阶运维配置,参阅 SSH Config 管理多服务器规范 与 SSH 连接管理最佳实践。
4、系统安全加固与自检测试清单
配置完成后,执行以下实操验证项,确认各项防御策略全部生效:
- [ ] 外部扫描验证:从本地电脑运行
nmap -Pn -p 22,28422 <VPS公网IP>,确认公网 22 端口处于 Filtered 状态,无法获取服务握手特征。 - [ ] 密码登录阻断验证:使用未经授权的新账号尝试密码认证
ssh -o PubkeyAuthentication=no dev@<VPS公网IP>,确认系统直接拒绝并返回Permission denied (publickey)。 - [ ] Tailscale 链路验证:断开公网 SSH 规则,在本地仅通过
ssh [email protected]发起连接,确认通道畅通且直连延迟在正常范围内。 - [ ] Fail2ban 响应验证:使用测试终端故意输入 3 次错误密钥,验证该测试 IP 是否被正确列入
fail2ban-client status sshd封禁黑名单。
5、总结:决策矩阵与配置速查
| 使用场景与业务诉求 | 推荐连接方案 | 公网攻击暴露面 | 安全与维护评级 |
|---|---|---|---|
| 个人管理主力 VPS(绝大多数场景) | Tailscale + Ed25519 密钥,关闭公网 SSH | 绝对为零(不可探测) | 🟢 极佳(5 分钟配置,终身免受打扰) |
| 多区域多节点内网互联 | Tailscale Subnet Router 或 Netbird 组网 | 零(全走内网网格) | 🟢 极佳(各节点自动组成内网集群) |
| 需对接公网第三方 CI 或外部协同 | 密钥 + 非标端口 + Fail2ban + UFW 严格限流 | 极小(仅暴露非标端口) | 🟡 良好(需定期巡检查看封禁列表) |
| 仍在使用静态密码登录 | 立刻废除密码认证,更换为 Ed25519 密钥 | 极高(易受字典遍历攻击) | 🔴 高危(存在全天候被攻破风险) |
反向选择的特例:在用后即焚的临时测试虚拟机中,若仅使用 15 分钟且无任何关键数据,可以临时开启密钥公网登录。但凡长期运行的生产节点,关闭公网暴露是性价比最高的安全加固动作。
6、异常记录:两起真实安全入侵案例
- 弱密码 + 裸露 22 端口被植入 XMRig 矿机:某开发者购买 VPS 初始化后未修改默认端口与弱口令,当晚即遭肉鸡爆破成功,黑客植入隐蔽挖矿进程占用 100% CPU,最终导致服务商下发滥用警告并直接冻结账号。教训:密码认证在自动化字典攻击面前极其脆弱。
- 误将非标端口视作绝对安全:开发者仅仅将端口修改为 2222,未部署 Fail2ban 与密钥认证。扫描器在执行全端口探测后仅耗时数分钟便定位到 SSH 服务,随后继续发起爆破。教训:非标端口只能过滤低端探测,无法阻断有针对性的自动化扫描。
想要系统化提升整台服务器的防护层级,请参阅 Linux 服务器安全加固全景清单 与 UFW 防火墙快速配置实战;关于连接容灾与备用通道部署,参考 SSH 多路径连接容灾方案设计。
选购云主机时,推荐选择 Vultr 支持一键防火墙策略组与安全组配置。
7、FAQ
Q:把 22 端口改成 28422 真的能彻底防住黑客吗?
不能。修改端口只能过滤掉针对 22 端口的广谱扫描流量;现代网络嗅探工具可以在数分钟内检测出所有开放端口的协议特征。必须配合密钥认证与 Fail2ban,或者通过 Tailscale 隐藏端口。
Q:Tailscale 免费套餐对独立开发者够用吗?
官方免费版支持多达 100 台设备与 3 个子账号,个人开发者管理个人电脑、手机与十余台 VPS 额度充裕。
Q:如果在部分网络环境下 Tailscale 的 UDP 流量被封锁怎么办?
Tailscale 官方部署了全球 DERP 中继节点,当直连打洞失败时会自动切换至 HTTPS 443 中继通道兜底;配合方案 B 中加固过的备用公网入口,形成完备的双通道容灾。
Q:使用手机或平板也能通过 Tailscale 连接 VPS 吗?
可以。iOS 与 Android 安装官方客户端后,配合 Termius 等 SSH 工具直接连接 100.x.x.x 内网 IP,体验与本地局域网无异。
