广州云服务器怎么修改端口?云服务器修改端口详细教程
- 虚拟主机
- 2026-07-09
- 6
在云服务器环境中,修改默认端口(如 SSH 的 22 端口或 Web 服务的 80/443 端口)是提升服务器安全性、避免端口扫描攻破以及满足特定业务需求的标准操作,以下将以最常见的 Linux 云服务器(以 CentOS/Ubuntu 为例)修改 SSH 端口为例,详细说明操作流程及注意事项。
前置准备与风险提示
在修改任何端口之前,必须确保新端口在防火墙和安全组中已开放,否则修改完成后可能导致无法远程连接服务器,建议保留当前的 SSH 会话窗口,新开一个终端窗口进行测试,确认新端口连接成功后再关闭旧会话。
| 检查项目 | 说明 | 操作建议 |
|---|---|---|
| 云服务商安全组 | 阿里云、西西安全等云厂商提供的网络层防火墙 | 需在控制台添加新端口的入站规则,允许 TCP 协议访问 |
| 系统防火墙 | 服务器内部的防火墙软件(如 firewalld, ufw) | 需放行新端口,并可选择性禁用或移除旧端口规则 |
| SSH 配置文件 | /etc/ssh/sshd_config | 修改 Port 参数为新端口号 |
第一步:配置云服务商安全组
大多数云服务器默认仅开放 22 端口,若直接修改系统 SSH 端口而不配置安全组,修改后将立即断连。
- 登录云服务商控制台(如阿里云 ECS、西西安全 CVM)。
- 找到实例对应的安全组或防火墙设置。
- 添加一条入方向规则:
- 协议类型:TCP
- 端口范围:填写你计划使用的新端口(2222)
- 授权对象:0.0.0/0(允许所有 IP)或指定你的固定 IP 以增强安全性。
- 保存规则。
第二步:修改系统防火墙规则
根据服务器使用的防火墙软件不同,操作略有差异。

场景 A:使用 firewalld(CentOS 7+ 默认)
# 1. 添加新端口到防火墙 sudo firewall-cmd --permanent --add-port=2222/tcp # 2. 重新加载防火墙配置 sudo firewall-cmd --reload # 3. (可选)移除旧端口 22 的规则,若需完全禁用旧端口 sudo firewall-cmd --permanent --remove-port=22/tcp sudo firewall-cmd --reload
场景 B:使用 ufw(Ubuntu 默认)
# 1. 允许新端口 sudo ufw allow 2222/tcp # 2. (可选)删除旧端口 22 的规则 # 先查看规则编号:sudo ufw status numbered # 然后删除对应编号:sudo ufw delete <编号>
第三步:修改 SSH 配置文件
这是核心步骤,用于告诉 SSH 服务监听新的端口。

- 使用文本编辑器打开 SSH 配置文件: sudo vi /etc/ssh/sshd_config
- 找到 Port 22 这一行,如果前面有 注释符号,请去掉。
- 将 22 修改为你想要的新端口号, Port 2222
- 保存并退出编辑器(在 vi 中按 Esc,输入 wq 回车)。
第四步:重启 SSH 服务并验证
修改配置后,必须重启 SSH 服务才能生效。
# 重启 SSH 服务 sudo systemctl restart sshd # 检查服务状态,确保无报错 sudo systemctl status sshd # 查看当前监听的端口 sudo netstat -tlnp | grep sshd # 或者 sudo ss -tlnp | grep sshd
如果输出中包含 0.0.0:2222 或 :2222,说明监听成功。
第五步:测试新端口连接
切勿关闭当前的 SSH 会话! 打开一个新的终端窗口,尝试使用新端口连接:
ssh -p 2222 username@your_server_ip
如果连接成功,说明修改无误,你可以安全地关闭旧的 SSH 会话。

第六步:清理旧端口规则(可选但推荐)
为了安全起见,建议彻底禁用旧端口 22,防止攻破者通过默认端口扫描发现服务器。
- 确保新端口连接正常后,再次编辑 /etc/ssh/sshd_config。
- 确认 Port 22 已被注释或删除,仅保留 Port 2222。
- 重启 SSH 服务:sudo systemctl restart sshd。
- 在防火墙中确保 22 端口已关闭(参考第二步中的移除操作)。
相关问题与解答
Q1: 修改 SSH 端口后,为什么仍然无法连接服务器?
A: 这通常由以下三个原因导致,请按顺序排查:
- 云安全组未放行:这是最常见的原因,云厂商的安全组是独立于系统防火墙的网络层过滤,即使系统内防火墙已开放,若云控制台未添加新端口规则,连接仍会被拦截。
- SSH 服务未重启:修改 sshd_config 后必须执行 systemctl restart sshd,否则配置不会生效。
- 防火墙配置错误:系统内部的防火墙(如 firewalld)可能未正确加载新端口规则,或规则优先级导致旧端口仍被占用。
Q2: 修改端口后,原有的 SSH 密钥认证是否失效?
A: 不会失效,SSH 密钥认证是基于公钥/私钥对的身份验证机制,与端口号无关,只要新端口能正常建立 TCP 连接,密钥认证即可正常工作,你只需在连接命令中指定新端口(如 ssh -p 2222 user@ip)或使用 ~/.ssh/config 文件配置主机别名即可,无需重新生成密钥。