1、登陆 SSH 修改配置文件,输入如下命令
输入下方命令:
vi /etc/ssh/sshd_config
会出现如下提示,大家能够看到#port 22,代表默认端口 22。按下键盘的 a,vi 命令中 a 是编辑,你按下 a 之后进入编辑状态,这时候可以用键盘的上下键移动绿色光标并用键盘的 delete 键删除前面的#号了。
小提示:为什么要先把 port 22 前面的 # 去掉呢?因为在配置文件中,# 是 linux 的注释,凡是#后的代码都不会执行。而 SSH 默认的端口为 22,所以配置文件在默认的情况下以#出现。当你需要更改为其它端口或添加多端口同时 SSH 访问时,就要删掉注释符号,让程序能够执行你的命令。
2、添加新的shh端口(注意保留22端口)
如下图按回车另起一行手动添加 12366 端口(自定义端口建议选择 5 位数端口如:10000-65535 之间 ),保留 22 是为了防止防火墙屏蔽了其它端口导致无法连接 VPS,比如你注释了端口 22,新添加的 12366 端口防火墙也没放行,那么恭喜你给自己挖坑了,可能下次你就无法通过 SSH 连接 VPS 了。为了防止这种尴尬的情况发生,就要给自己留条后路,等到新端口可以正常连接 SSH 了,再删除 22 端口也不迟。
这时候按键盘的“ESC”键退出当前状态,再输入“:wq”命令保存退出。
3、以上修改完后,重启 SSH 服务
并退出当前连接的 SSH 端口。命令如下:
service sshd restart
4、向防火墙添加修改的端口
#启动防火墙
#向防火墙添加ssh端口
#重启防火墙
#查看修改后的端口是否添加进防火墙
#启动防火墙
systemctl start firewalld.service
#关闭防火墙
systemctl stop firewalld.service
#重启防火墙
systemctl restart firewalld.service
#查看防火墙状态
systemctl status firewalld.service
#设置开机启动防火墙
systemctl enable firewalld.service
#设置开机不启动防火墙
systemctl disable firewalld.service
注意: 这里的设置是在 CentOS 7 版本下的操作 , 低于 CentOS 7的版本不支持
#向防火墙添加ssh端口
firewall-cmd --zone=public --add-port=10022/tcp --permanent
#说明:
#开放10022端口
#–zone 作用域
#–add-port=10022/tcp #添加端口,格式为:端口/通讯协议
#–permanent 永久生效,没有此参数重启后失效
#添加完毕过后重新读取防火墙规则或者重启防火墙,规则才生效
#重新读取防火墙规则
firewall-cmd --reload
#或者重启防火墙:
systemctl restart firewalld.service
#查看修改后的端口是否添加进防火墙
firewall-cmd --zone=public --query-port=10022/tcp
5、利用新的端口在xshell软件中连接
正常连接过后,我们此时就可以删除默认的22端口了
vi /etc/ssh/sshd_config
删除 port 22 行,然后重启服务:按照标题2、3中的命令方法重启。