实际问题已通过更改端口号得到解决,但我不相信我首先理解了为什么会发生这种情况,因此下次我希望彻底查明原因,特别是因为不能排除敌对行动。
我在 AWS EC2 中管理一个企业版 Ubuntu 14.04 VPS。服务器 ssh 端口开放为 0.0.0.0/0,因为无论我身处什么不安全的地方(商务酒店、机场、星巴克等),此服务器都是 VPC 的网关。SSH 是明显地配置为非 root、仅密钥连接。由于 ssh 端口是全世界可见的,我将端口更改为 50022,理由是互联网的广泛扫描大多会错过它,并且只会在有针对性的端口探测中被发现,从而减少 CPU 周期和日志条目,从而拒绝无用的字典攻击以及网络流量。
无论出于什么原因,我都会经常间歇地无法通过 ssh 连接到此服务器。失败比成功更常见,但偶尔也会成功无需做任何不同的事情。
我已经在其他非 EC2 服务器上成功使用了此端口号,因此大概这不是端口的一般问题。
刚才将端口号改为另一个高编号的人为随机端口似乎已经解决了这个问题。
我遇到这个问题的时候在中国,所以我不能排除防火墙恶作剧,甚至是一些 NSA 式的自动中间人探测,用于收集密钥/证书或 VPN 阻止。该服务器确实托管 VPN 服务,因此这些干扰可能与之有关,尽管这不太可能,因为我也使用非 EC2 VPS使用 VPN 可以不是此端口上的 ssh 有问题。
端口 50022 有什么特殊之处吗?
答案1
有些服务(例如 FTP 和 HTTP)会使用一定范围内的随机传出端口。通常这些端口位于 10,000 以上的较高范围内。我猜想服务器上运行的某些此类服务会干扰您对端口的使用。如果您的新端口遇到类似问题,我建议尝试使用 2000 - 10,000 范围内的较低端口。