当你拥有一台 VPS 服务器后,出于安全考虑,必须修改 SSH 的默认连接端口。科学的修改方式并非一步到位,而是包含了多个必要步骤。SSH 服务器的配置文件为:/etc/ssh/sshd_config,具体修改步骤如下:

1、备份原sshd配置文件

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

2、修改sshd配置文件

可以使用winscp、nano、vim之类的软件编辑 /etc/ssh/sshd_config

查找Port 22,有可能 Port 22 是注释的(即前面有#号,有的话删掉 # 号)。

在 Port 22 下面添加一行 Port 3322 其中3322为你更改SSH后的端口。

这里建议先保留原来的22端口,待新的SSH端口测试正常工作后再删掉原Port 22 端口行。修改完成后保存。

3、重启SSH服务器

重启SSH服务器命令:systemctl restart sshd

如果没有systemctl的话可以执行:/etc/init.d/sshd restart 或 /etc/init.d/ssh restart

如果没有报错的话就生效了,可以 ss -ntl 或 netstat -ntl 查看一下端口。

4、防火墙、安全组规则设置

iptables添加SSH新端口规则:
iptables -A INPUT -p tcp --dport 3322 -j ACCEPT #3322替换为新的端口#
然后保存iptables规则

firewalld添加SSH新端口规则:
firewall-cmd --permanent --zone=public --add-port=3322/tcp #3322替换为新的端口#
firewall-cmd --reload #重载firewalld#

阿里云之类的安全组规则添加SSH新端口规则:
阿里云之类的有安全组之类设置的云服务器一定要在安全组规则里将新端口添加到“入方向”的允许规则。

5、putty、xshell之类的SSH软件连接测试

添加上新的SSH端口后一定要通过putty、xshell之类的SSH软件连接测试一下,测试可以正常连接然后再编辑 /etc/ssh/sshd_config 将 Port 22 这一行直接删除或这一行前面加 # 注释掉,然后再按前面的命令重启SSHd服务。