Ubuntu 修改SSH默认端口:22-》33662

分享 未结
0 12
苟哥
苟哥 2026-08-29 19:49

⚠️重要铁律:当前SSH会话全程不要关闭!改错配置会直接锁服务器。开一个新窗口测试新端口连通性,确认成功之后,再关闭旧22端口

步骤1:编辑ssh配置

vim /etc/ssh/sshd_config

找到 #Port 22

  • 把注释#删掉,改成

Port 33662
#Port 22

先不要直接删掉Port22,先注释保留,确认33662能登录再彻底关闭22。

保存退出 :wq

步骤2:校验配置语法(必须做!防止写错无法启动ssh)

sshd -t

无任何输出 = 配置语法正确;如果输出报错,回去修改配置文件

步骤3:放行新端口

①系统ufw防火墙

ufw allow 33662/tcp
ufw reload

②云服务商控制台安全组(腾讯云/阿里云等)

入站规则增加:

  • 协议:TCP

  • 端口:33662

  • 源地址:0.0.0.0/0(或者限定你自己公网IP,更安全)

    不开放安全组,无论系统怎么改,外部都连不上33662端口

③宝塔防火墙

宝塔面板 → 安全,放行 33662 TCP端口。

步骤4:重启ssh服务

systemctl restart ssh
#查看状态
systemctl status ssh

步骤5:确认监听端口

ss -tlnp | grep sshd

看到 0.0.0.0:33612 LISTEN 代表已经生效。

🔥测试登录(新开一个终端窗口,不要关掉原来的ssh!

ssh root@你的服务器IP -p 33662

新端口登录成功,才算完成!

如果新端口连不上,原来的窗口还在,可以排错,不会锁机。

全部确认没问题之后,再彻底禁用22端口

  1. 修改/etc/ssh/sshd_config直接删除或者注释掉Port22

  2. 删除防火墙22放行规则

ufw delete allow 22/tcp
ufw reload
  1. 云安全组删掉22端口入站规则

  2. 重启ssh:systemctl restart ssh


常见坑

  1. Ubuntu新版本ssh.socket抢占端口,修改sshd_config不生效

systemctl stop ssh.socket
systemctl disable ssh.socket
systemctl restart ssh

ssh.socket会强制绑定22端口,导致你修改sshd_config不生效,宝塔Ubuntu经常遇到这个问题。

  1. 登录命令必须带 -p 33662

ssh -p 33662 root@ip
  1. 回滚应急(万一33612连不上,旧会话还在)

vim /etc/ssh/sshd_config
#恢复 Port 22,注释Port33662
systemctl restart ssh

补充安全建议

修改端口只是防扫描,建议同时配置:禁用root密码登录,改用ssh密钥登录。

需要的话我可以给你一份禁用密码登录只允许密钥登录的配置。


收藏
回帖
  • 消灭零回复