返回列表

亚马逊云海外版 AWS亚马逊云修改SSH端口

亚马逊aws / 2026-04-27 13:50:09

下载.png

前言:为什么你会想改 SSH 端口

在服务器圈里,“SSH 默认端口 22”就像快递默认写法一样:大家都知道它在哪里,所以你不改,它就总在提醒别人“有件事我还没做”。当然,改端口并不能替代认证、密钥和防火墙,但它能减少大量自动化扫描带来的噪音,让你的日志更像真实世界而不是“机器人刷存在感”。

不过先说句人话:在 AWS 上改端口这事,通常不是你想的那么简单。因为你改的是“系统里的 SSH 服务端口”,但 AWS 安全组决定“外部能不能打到你”。你改了端口,安全组没放行,就会出现那种让人怀疑人生的现象:你明明改了,连接就是不通,像对着空气敲门。

所以这篇文章我会按“网络层 → 系统层 → 验证与回滚”的顺序讲,保证你能真正把 SSH 端口改成功,而不是改着玩。

亚马逊云海外版 准备工作:确认你要改的是哪一台、走的是哪条路

在 AWS 上,一般你面对的是 EC2 实例。假设你要把 SSH 从 22 改成 2222(举例而已,别照抄数字,下面会告诉你怎么选)。你需要确认:

  • 你的 EC2 实例操作系统是什么(Ubuntu / Debian / CentOS / Amazon Linux 等)。不同系统 sshd 配置位置可能略有差异。
  • 你使用的登录方式是密码还是密钥。强烈建议密钥,并尽量禁用密码登录。
  • 你目前是否通过浏览器控制台或其他方式能进机器。如果你只有 SSH,一旦改错端口或忘记放行,可能会把自己锁在外面。别慌,下面有“回滚预案”。

建议你先在心里画一下图:外部网络 → AWS 安全组规则 → 实例的网络接口 → OS 的 sshd 服务监听端口。你改端口必须同时让这三段都“对上号”。

步骤一:在 AWS 安全组中放行新 SSH 端口

这是最容易被忽略的环节。你可以把 sshd 改到天边,外部还是进不来,因为安全组像保安:门票没办到位,他不会让你进。

1. 找到实例所属安全组

在 AWS 管理控制台打开 EC2,进入你的实例详情页,找到“安全组(Security groups)”。记下当前允许入站的规则。

亚马逊云海外版 2. 添加新端口的入站规则

假设你计划把 SSH 从 22 改为 2222,那么你需要添加一条入站规则:

  • 类型:SSH(如果可选)或自定义 TCP
  • 协议:TCP
  • 端口范围:2222
  • 来源:建议填写你的公网 IP / 公司出口 IP,而不是 0.0.0.0/0(全网)。

如果你当前只有一条“从 22 放行到 0.0.0.0/0”的规则,别急着删。你要先放行新端口,等确认一切正常,再考虑关闭旧端口。

3. 可选但推荐:先保留 22,等验证后再移除

最稳的做法是:先开 2222,仍保留 22。这样即便你改 SSH 配置漏了点什么,你还能用 22 兜底登录,进行修正。等你成功切换并验证后,再把 22 关掉。

步骤二:在实例系统中修改 sshd 监听端口

当你已经在安全组放行新端口后,接下来是系统层面:让 sshd 真正开始监听你新指定的端口。

1. 备份 sshd 配置文件

登录到实例(如果你还在用 22,先用旧端口登录),执行类似命令:

  • 先备份配置文件(不同系统文件可能不同,但通常叫 /etc/ssh/sshd_config)。

你可以理解为:改配置前先拍照留证据,不然出了问题你会在“想不起来改了啥”的迷雾里打转。

2. 编辑 sshd 配置

打开 sshd 配置文件,找到或添加以下关键项:

  • Port 2222

通常情况下,把原本的 Port 22 改成 Port 2222 即可。

如果文件里有多行 Port 相关配置,取决于 sshd 的解析顺序和是否注释。你可以把目标配置整理得更清爽:保留你要的端口设置,删除/注释掉多余的端口行,避免“以为改了但 sshd 还在听另一个端口”。

3. 建议顺手做的安全强化(可选但很值)

既然你都在安全上动刀了,建议顺手把一些常见“黑历史”处理一下:

  • 禁用密码登录:PasswordAuthentication no
  • 允许密钥登录:确保 PubkeyAuthentication yes
  • 限制 root 直接登录(如果你没必要):PermitRootLogin no
  • 加固 SSH 协议和算法(不同系统默认可能已不错,但你可以检查)。

注意:如果你正在用密码登录而且还没配密钥,先别急着禁用密码,不然下一次你可能连 22/2222 都进不去。安全是要逐步来的,不是“一把梭”。

4. 检查配置是否正确

在重启 sshd 前,务必做配置检查。典型操作是运行 sshd 的配置测试命令(很多发行版都有)。如果配置写错,sshd 不一定会启动,你就会遇到“端口改了但服务没起来”的尴尬。

5. 重启 sshd 服务

配置正确后,重启 sshd 让它重新加载配置。

这里再强调一次:如果你在改配置的时候只有一个 SSH 会话,没有保留 22 作为后路,风险会明显上升。前面我们已经在安全组层面保留了 22,就是为了让你不至于“改到一半当场失联”。

步骤三:本地验证新端口是否可连

改完系统配置并重启服务后,你要做两件事:验证网络通不通、验证 sshd 到底监听了没。

1. 从本地测试端口连通性

你可以使用类似工具验证指定端口是否可达(例如 telnet、nc 或系统自带的端口探测)。如果你看到连接成功,至少说明安全组和路由那条链路是通的。

2. 用 SSH 指定端口登录

比如你把新端口设为 2222,那么本地登录要指定:

  • 用户名要正确(取决于你实例里默认用户,例如 ubuntu、ec2-user 等)
  • 端口用 2222

如果你用的是密钥,确保你的密钥配置没问题。如果你用的是密码登录,请确保你没有在服务器端禁用密码认证。

3. 检查 sshd 实际监听端口

登录成功后,最好在服务器上确认 sshd 确实在监听新端口。你可以查看监听端口列表,确认 2222 在 LISTEN 状态。

步骤四:确认切换无误后,关闭旧端口(可选但推荐)

当你已经能稳定使用新端口登录,那么就可以把旧端口 22 关掉,进一步减少被扫描到的概率。

1. 服务器侧:是否仍允许 22

如果你的 sshd_config 里已经只写了 Port 2222,那服务器侧通常不会再监听 22。但如果你保留了多端口配置,22 可能仍在监听。

因此:别光看你写没写,还要看“实际监听”。用端口检查或进程监听列表确认。

2. AWS 侧:删除或收紧安全组中 22 的入站规则

在安全组里,把 22 的入站规则移除,或至少收紧来源 IP。

有些人会犯的错是:在 sshd 里停了 22,但安全组还对外开放 22。这样虽然不会成功登录(因为服务没在听),但连接仍会产生无意义的噪音,日志也会更难看。

常见坑位:你可能会遇到的“玄学不通”

改端口这事,最常见的失败原因其实就那几种。我把它们列出来,你可以对号入座。

坑 1:安全组没放行新端口

典型现象:你改了配置并重启 sshd,但本地连接 2222 超时。

解决思路:检查安全组入站规则是否真的有 TCP 2222,并且来源 IP 正确。

坑 2:安全组仍放行旧端口,结果你以为改成功了

典型现象:你仍然能用 22 登录,于是你误以为 2222 也成功了。

解决思路:用本地明确指定 2222 登录,并确认 2222 端口在服务器上处于监听状态。

坑 3:sshd 配置写错,服务根本没启动或没加载

典型现象:你用 2222 连不上,且服务器上发现 sshd 没在监听。

解决思路:查看系统的 sshd 服务状态和日志;用 sshd 配置检查命令确认语法。

坑 4:你禁用了密码认证,但你的登录方式还停留在“密码时代”

典型现象:你能连到 2222,但认证失败。

解决思路:改回允许密码,或者更推荐地:在服务器配置密钥登录后再禁用密码。

坑 5:你改端口前没有准备兜底方式

典型现象:你改错后自己进不去了。

解决思路:保留 22 的安全组规则一段时间;或者使用 AWS Systems Manager(如果你启用了相关权限)进行远程修复。不同环境可用手段不同,但总之要有“能进机器”的后路。

如何选择新端口号:别太随意,也别太作死

端口不是越高越好,也不是选个 3 位数就完事。建议你遵循:

  • 尽量选未被常用服务占用的端口(避免冲突)。
  • 不要选太热门的端口(比如某些常见服务端口附近)。
  • 选完后要在文档里记下来:未来你会忘得比你想象快。

常见选择比如 2222、22022 这类(仅举例)。你也可以用企业内部规范,比如固定使用某个范围内的端口,并且统一管理。

建议你用的“更靠谱路线”:端口只是第一步

改端口能减少噪音,但安全仍要靠组合拳。你可以考虑:

  • 限制安全组来源 IP(只允许你的办公网络/跳板机公网 IP)。
  • 使用密钥认证,禁用密码登录。
  • 启用 Fail2ban 或类似策略(视系统而定)。
  • 为实例设置更严格的 IAM/角色与最小权限。

如果你把这些也做了,日志会从“吵吵闹闹”变成“偶尔有人来敲门,敲错门就走”。服务器终于像个有秩序的地方。

一份简明操作清单(照着做就能成功)

  • 确定目标端口:例如 2222,并记好它。
  • 在 AWS 安全组增加入站规则:TCP 2222,来源限定为你的公网 IP(先别全开)。
  • 登录实例(仍可用 22 保底)。
  • 备份 sshd 配置文件,修改 Port 为 2222。
  • 检查 sshd 配置,重启 sshd 服务。
  • 本地用 ssh -p 2222 登录验证。
  • 确认 sshd 实际监听 2222。
  • 稳定后再关闭 22:ssh 配置移除旧端口监听,并在安全组收紧/移除 22 规则。

结语:改端口不是为了“炫”,是为了“少折腾”

亚马逊云海外版 很多人第一次改 SSH 端口会被反复打脸:要么连不上,要么其实还在用 22。其实问题不在你手残,而在于你只改了系统,却忘了 AWS 的安全组也在“管门”。当你把网络链路和服务链路一起对齐,事情就会变得非常直观。

最后送你一句现实建议:把这次改端口当成一次“安全梳理”。端口只是开胃菜,密钥登录、最小权限、限制来源才是主菜。你做得越系统,未来就越省时间,少一点“为什么我又被锁了”。

祝你改端口成功,日志清爽,服务器听话。

Telegram售前客服
客服ID
@cloudcup
联系
Telegram售后客服
客服ID
@yanhuacloud
联系