手动修改 SSH 登录端口

Linux 的 SSH 默认监听端口是 22 ,但在公网有非常多的人扫描这个端口爆破 SSH 密码

建议将 SSH 端口设置成高高位数端口

1. 登录终端,建议使用 VNC 或 SSH 之外的连接方式登录终端

2. 检查环境

在终端下执行下面的命令查看当前监听的端口

1
sudo ss -tlnp | grep ssh

不出意外的话应该会有类似的输出:

1
2
3
~ » sudo ss -tlnp | grep ssh
LISTEN 0 128 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=1276,fd=6))
LISTEN 0 128 [::]:22 [::]:* users:(("sshd",pid=1276,fd=7))

3. 修改端口

较新系统以及使用 systemd 管理服务:
1
sudo systemctl edit ssh.socket

找到类似于以下这几行,如果没有这几行而不是没找到文件或命令就添加上:

1
2
3
# [Socket]
# ListenStream=22
# Accept=no

改成:

1
2
3
4
[Socket]
ListenStream= # 覆盖先前的 22 端口配置
ListenStream=<高位数端口>
# Accept=no

保存退出,重启 ssh 服务即可

1
2
sudo systemctl restart ssh.socket
sudo systemctl restart ssh.service
较旧系统以及使用 systemd 管理服务:
1
sudo nano /etc/ssh/sshd_config

找到这一行

1
2
3
4
5
#Port 22

# 或者

Port 22 #没有注释

把 22 改成高位数端口即可,去掉注释

1
Port <高位数端口>

保存退出,重启 ssh 服务即可

1
sudo systemctl restart ssh.service

4. UFW 放行端口

1
sudo ufw allow <刚才设置的高位数端口>

删除原来的 22 端口

请先确保新端口能访问 SSH 终端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
~ » sudo ufw status numbered              
Status: active

To Action From
-- ------ ----
[ 1] 22 ALLOW IN Anywhere
[ 2] 123 ALLOW IN Anywhere
[ 3] 22 (v6) ALLOW IN Anywhere (v6)
[ 4] 123 (v6) ALLOW IN Anywhere (v6)

~ » sudo ufw delete 3
Deleting:
allow 22
Proceed with operation (y|n)? y
Rule deleted (v6)
~ » sudo ufw delete 1
Deleting:
allow 22
Proceed with operation (y|n)? y
Rule deleted
~ »

手动修改 SSH 登录端口
https://blog.clazys.qzz.io/2026/03/21/chansshport/
作者
Clazys
发布于
2026年3月21日
许可协议