阿里云修改默认SSH端口

阿里云修改默认SSH端口

  • admin admin
  • 2026-09-12
  • 4528
  • 0

阿里云修改默认SSH端口是指将云服务器Linux系统默认的22号SSH远程管理端口更改为自定义端口,从而减少自动化扫描、暴力免费和未授权登录风险。修改前准备修改端口之前,需要先确定新的SSH端口号,端口范围建议选择1024到65535之间,避开系统常用服务...

优惠价格:¥ 0.00
当前位置:首页 > 阿里云物理服务器 > 阿里云修改默认SSH端口
详情介绍

阿里云修改默认SSH端口是指将云服务器Linux系统默认的22号SSH远程管理端口更改为自定义端口,从而减少自动化扫描、暴力免费和未授权登录风险。

修改前准备

修改端口之前,需要先确定新的SSH端口号,端口范围建议选择1024到65535之间,避开系统常用服务端口,例如80、443、3306、6379等,可以使用以下命令查看当前服务器的端口占用情况:

ss-tlnp

选择类似2200、2222、50022等不常用端口,确认当前SSH连接正常,并确保拥有阿里云控制台权限,以便后续修改安全组规则,对SSH配置文件进行备份:

cp/etc/ssh/sshd_config/etc/ssh/sshd_config.bak.$(date+%F)

备份文件可用于配置错误时快速恢复。

阿里云修改默认SSH端口  第1张

修改阿里云安全组规则

阿里云ECS实例的安全组相当于虚拟防火墙,需要在入方向放行新端口,否则服务器内部即使修改成功,外部也无法连接。

  1. 登录阿里云控制台,进入“云服务器ECS”页面。

  2. 在左侧导航栏选择“网络与安全”下的“安全组”。

  3. 找到目标实例所在安全组,点击“配置规则”。

  4. 在“入方向”点击“手动添加”。

  5. 填写规则参数:

    • 协议类型:自定义TCP

    • 端口范围:2222/2222,以实际选定的端口为准

    • 授权对象:0.0.0.0/0表示所有IP可访问,建议限制为公司或家庭出口IP,例如203.0.113.0/24

    • 描述:SSH新端口

  6. 保存规则。

此时不要删除原有的22端口入方向规则,保留双端口可同时访问,待新端口验证成功后再删除22端口。

修改服务器SSH配置

使用root用户或具有sudo权限的账户登录服务器,编辑SSH主配置文件:

sudovim/etc/ssh/sshd_config

找到以下行:

#Port22

将其修改为:

Port2222

如果文件中没有该行,可直接在文件顶部添加,注意不要保留多个未注释的Port行,否则SSH服务可能启动失败或只监听其中一个端口,若想暂时同时监听22和新端口,可写成两行:

Port22
Port2222

但为了安全,测试成功后应删除22端口,保存退出后,检查配置语法:

sudosshd-t

无输出表示语法正确,然后重启SSH服务:

sudosystemctlrestartsshd

CentOS 7及以上、Ubuntu 16.04及以上均可使用systemctl命令,旧版系统可使用:

sudoservicesshrestart

或:

sudoservicesshdrestart

重启后可以查看端口监听状态:

sudoss-tlnp|grep2222

如果显示sshd正在监听2222端口,说明服务端配置已生效。

调整系统防火墙与SELinux

修改SSH端口后,系统防火墙如果开启,必须放行新端口,否则即使安全组放行也无法连接。

firewalld防火墙

CentOS 7/8、Rocky Linux、AlmaLinux通常使用firewalld:

sudofirewall-cmd--permanent--add-port=2222/tcp
sudofirewall-cmd--reload

验证规则:

sudofirewall-cmd--list-ports

iptables防火墙

如果系统使用iptables,可添加规则:

sudoiptables-IINPUT-ptcp--dport2222-jACCEPT
sudoserviceiptablessave

ufw防火墙

Ubuntu常见使用ufw:

sudoufwallow2222/tcp
sudoufwreload

SELinux放行端口

在启用SELinux的CentOS/RHEL系统上,SSH端口受ssh_port_t类型限制,直接修改端口后sshd可能无法绑定新端口,日志会提示权限错误,使用以下命令添加:

sudosemanageport-a-tssh_port_t-ptcp2222

如果提示端口已存在,使用修改命令:

sudosemanageport-m-tssh_port_t-ptcp2222

如果提示semanage命令不存在,安装相关软件包:

sudoyuminstall-ypolicycoreutils-python-utils

验证SELinux端口:

sudosemanageport-l|grepssh

若不想修改SELinux策略,也可临时关闭SELinux,但不建议长期关闭。

验证新端口并清理旧端口

完成以上配置后,先不要断开当前SSH会话,打开新的终端窗口,使用新端口测试连接:

ssh-p2222root@服务器公网IP

如果使用密钥登录,命令相同,密钥会自动匹配,若连接被拒绝,按以下顺序排查:

  1. 阿里云安全组是否放行新端口;

  2. 系统防火墙是否放行新端口;

  3. sshd_config是否确实修改并重启成功;

  4. SELinux是否已放行或关闭;

  5. 云服务器内部是否有第三方安全软件拦截。

验证成功后,再回到阿里云安全组中删除22端口入方向规则,此时服务器将只监听新端口,原有22端口不再对外提供服务,同时建议修改SSH配置,删除仍可能存在的Port 22行,并再次重启SSH服务。

不同系统命令差异

不同Linux发行版在SSH服务名称和防火墙命令上略有区别,Ubuntu/Debian使用ssh服务名重启:

sudosystemctlrestartssh

CentOS/RHEL使用sshd

sudosystemctlrestartsshd

阿里云控制台安全组规则与操作系统无关,任何系统均需配置,若服务器数量较多,建议使用阿里云安全组批量应用规则,但SSH配置文件仍需逐台修改,或使用Ansible、云助手批量执行。

常见连接失败原因排查

修改端口后无法连接时,可以借助阿里云控制台的“远程连接”或VNC进入服务器排查。

安全组未放行新端口

检查安全组规则是否保存成功,确认方向为“入方向”,协议为TCP,端口范围正确,授权对象包含当前访问IP。

系统防火墙未放行

登录服务器后执行:

sudofirewall-cmd--list-ports

或:

sudoufwstatus

确认新端口已放行。

SELinux阻止端口绑定

查看SSH服务日志:

sudojournalctl-usshd-f

若出现SELinux is preventing sshd from name_bind相关提示,说明需要执行SELinux放行命令。

sshd_config语法错误

执行以下命令检查:

sudosshd-t

若有错误会直接输出,修改配置后未重启服务也会导致新端口不生效。

端口被其他进程占用

执行:

sudoss-tlnp|grep2222

如果显示其他进程占用,需要更换端口或停止占用进程。

阿里云安全组优先级冲突

多个安全组同时作用于实例时,拒绝规则可能优先,检查实例绑定的所有安全组,确保没有拒绝规则屏蔽新端口。

恢复默认端口的方法

若修改后无法通过新端口连接,可通过阿里云控制台的“远程连接”或VNC进入服务器,恢复备份配置:

sudocp/etc/ssh/sshd_config.bak.$(date+%F)/etc/ssh/sshd_config
sudosystemctlrestartsshd

同时检查安全组、防火墙规则,回滚后22端口应立即恢复可用,如果忘记备份,可手动编辑/etc/ssh/sshd_config,将Port 2222改回Port 22,保存后重启SSH服务,安全组中也需要恢复22端口入方向规则。

修改默认SSH端口后,仍应配合密钥登录、限制来源IP、安装fail2ban等措施提升服务器安全性,端口修改本身只能减少大部分自动扫描流量,不能完全防止针对特定端口的攻破。

0