Linux系统修改远程连接22端口

1、检查Linux系统是否安装SSH软件包,rpm -qa| grep ssh
在这里插入图片描述
如果没有安装使用yum安装ssh服务 :yum install -y openssh-server
查看安装的 ssh服务包 : # yum list installed | grep ssh
在这里插入图片描述
2、找到SSh服务配置文件路径一般都是在 /etc/ssh这个目录下面 sshd_config 这个文件
在这里插入图片描述
3、将端口修改为66
以root身份编辑文件 /etc/ssh/sshd_config文件,

找到 #Port 22 ,将井号去掉,然后将22改为66。后保存。
最好是在#Port 22 下面添加一个新的端口。以免新的端口和22端口都连不上。
在这里插入图片描述
4、修改iptables 防火墙:/etc/sysconfig/iptables
开放特定端口

#vi /etc/sysconfig/iptables
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

-A INPUT -p tcp -m state --state NEW -m tcp --dport 66 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 66 -j ACCEPT       #66端口是添加的添加此端口号至防火墙,允许端口号通过防火墙

或者
#firewall-cmd --zone=pulic --add-port=77/tcp --permanent

在这里插入图片描述
注意末尾的success,表示添加成功!
重新加载防火墙,并重启防火墙服务

在这里插入图片描述
并没有报错,我们也可以查看一下防火墙运行状态.
在这里插入图片描述
检查SELinux服务是否运行
在这里插入图片描述
如上图显示enabled表示SELinux已启用

修改/etc/sysconfig/iptables文件,增加如下一行:

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

iptables防火墙

systemctl stop iptables

systemctl start iptables  

查看防火墙开机启动状态:chkconfig iptables --list
systemctl status iptables

关闭开机启动:chkconfig iptables off

firewalld防火墙:

关闭firewalld服务:systemctl stop firewalld.service

查看防护墙状态:systemctl status firewalld.servicee

在开机时禁用:systemctl disable firewalld.service

查看服务是否开机启动:systemctl is-enabled firewalld.service

查看已启动的服务列表:systemctl list-unit-files|grep enabled

重启sshd

systemctl status sshd.service  
systemctl enable sshd.service  
systemctl restart sshd.service  

5、在向SELinux中添加端口之前需要先安装SELinux的管理工具 semanage (如果已经安装了就直接到下一步) : yum provides semanage。
在这里我们看到运行 semanage 需要先安装其依赖工具包 policycoreutils-python : yum install policycoreutils-python
在这里插入图片描述
安装好之后,可以直接使用 semanage 命令:

查询当前 ssh 服务端口: semanage port -l | grep ssh

向 SELinux 中添加 ssh 端口: semanage port -a -t ssh_port_t -p tcp 66

验证 ssh 端口是否添加成功: semanage port -l | grep ssh

添加成功之后就可以重启 ssh 服务了: systemctl restart sshd.service
在这里插入图片描述
6、查看ssh服务状态和端口占用情况。
在这里插入图片描述

netstat -antulp | grep ssh                 #端口占用情况

在这里插入图片描述
测试是否能本机联通

ssh localhost -p 77

在这里插入图片描述
查看新配置的端口是否生效。
在这里插入图片描述
6、使用新的端口远程连接服务器
#ssh root@x.x.x.x -p66
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
查看并修改 防火墙配置文件中 远程连接的端口
在这里插入图片描述
重新载入配置,配置生效

firewall-cmd --complete-reload

备注:默认firewalld会优先读取/etc/firewalld/services/ssh.xml配置文件,当该配置文件不存在时,将会读取配置库中的配置/lib/firewalld/services/ssh.xml作为生效配置

注意
1、在 /etc/ssh/sshd_config 配置文件 中,不能修改将UseDNS yes 改为 no,保持默认值。
在这里插入图片描述
2、在工作中,可以在22端口下面添加一个端口,以免22端口断了连不上,又要到机房修改回22或者找机房人员远程协助了。

常见问题 :

1、端口没有权限
Linux修改ssh Port端口后,无法启动ssh访问。

具体修改 /etc/ssh/sshd_config 里的 Port 端口,然后查日志后出现:

error: Bind to port 77 on 0.0.0.0 failed: Permission denied.
在这里插入图片描述
在这里插入图片描述
最后发现是SELinux的问题,关闭SELinux的两种方法

然后重启ssh访问即可。
2、SSH登陆其他主机时报错:ssh: connect to host 192.168.46.190 port 22: No route to host。新的端口已经存在。
在这里插入图片描述
在这里插入图片描述
解决办法 :
查看防火墙状态

firewalld:

关闭firewalld服务:systemctl stop firewalld.service
查看防护墙状态:systemctl status firewalld.servicee

在开机时禁用:systemctl disable firewalld.service

查看服务是否开机启动:systemctl is-enabled firewalld.service

查看已启动的服务列表:systemctl list-unit-files|grep enabled
重启sshd服务

#systemctl enable sshd.service
#netstat -anp | grep 77                  #查看77端口是否已经存在
#netstat -anput                             #77端口已经存在/打开
#ssh root@192.168.163.130        #在另一台机器上测试,连接新的端口。

参考链接 :
https://blog.csdn.net/weixin_38628533/article/details/80943956
https://blog.csdn.net/oba_gaga/article/details/80684051
https://www.linuxidc.com/Linux/2018-05/152372.htm
CentOS7增加或修改SSH端口号的方法 : https://www.jb51.net/article/144599.htm

CentOS7 系统防火墙firewalld工具手册 : https://www.jianshu.com/p/fd29623cf882

  • 13
    点赞
  • 85
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寰宇001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值