一般情况下,修改 vi /etc/ssh/sshd_config 文件,增加2个Port:
Port 22
Port 2222# 重启 ssh 服务
systemctl restart ssh# 使用 如下命令查看端口情况,以确定是否开启成功
netstat -anp|grep sshd# 正常情况会输出如下:
tcp 0 0 0.0.0.0:2222 0.0.0.0:* LISTEN 876361/sshd: /usr/s
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 876361/sshd: /usr/s
tcp 0 0 127.0.0.1:22 127.0.0.1:50944 ESTABLISHED 871884/sshd: root@p
tcp6 0 0 :::2222 :::* LISTEN 876361/sshd: /usr/s
tcp6 0 0 :::22 :::* LISTEN 876361/sshd: /usr/s
unix 3 [ ] STREAM CONNECTED 7269858 876361/sshd: /usr/s
unix 2 [ ] DGRAM CONNECTED 7226967 871884/sshd: root@p
unix 2 [ ] STREAM CONNECTED 7226944 871884/sshd: root@p
如果执行上述操作之后还不行,说明“Ubuntu 默认启用了 systemd socket 激活 (ssh.socket)”。这种情况下,sshd 不再自己监听端口,而是 systemd 先监听 22。修改 /etc/ssh/sshd_config 里的额外 Port 没效果。解决办法:停掉 socket 激活,让 sshd 自己监听端口。
sudo systemctl stop ssh.socket
sudo systemctl disable ssh.socket
然后再重启 ssh 服务