如何在 Ubuntu 上 开启 2个 ssh 服务?

一般情况下,修改 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端口,有连接进来时,才会启动 sshd 去处理用户连接,也就是 sshd 并没有真正地监听 22 端口。修改 /etc/ssh/sshd_config 里的额外 Port 没效果。解决办法:停掉 socket 激活,让 sshd 自己监听端口。

sudo systemctl stop ssh.socket
sudo systemctl disable ssh.socket

然后再重启 ssh 服务

systemctl restart ssh
posted @ 2025-08-21 18:19  江南烟雨梦  阅读(38)  评论(0)    收藏  举报