Centos SSh端口号的更改

前言:开启某服务或软件的端口,要从该服务或软件监听的端口(多以修改配置文件为主),SeLinux和防火墙(FireWall)的安全策略下手。如果使用阿里云,腾讯等第三方服务器还需要对管理控制台的安全组下手。

下面进入主题,如果有什么问题请查看下面的补充栏:
第一步:修改SSH配置文件(注意是sshd_config而不是ssh_config,多了个d)

vim /etc/ssh/sshd_config 

找到“#Port 22”,这一行直接键入“yyp”复制该行到下一行,然后把两行的“#”号即注释去掉,修改成:
Port 22
Port 10086
SSH默认监听端口就是22,如果你不强制说明别的端口,”Port 22”注不注释都是开放22访问端口。上面我保留了22端口,防止之后因为各种权限和配置问题,导致连22端口都不能访问了,那就尴尬了。等一切都ok了,再关闭22端口。

Ok,继续,我增加了10086端口,大家修改端口时候最好挑10000~65535之间的端口号,10000以下容易被系统或一些特殊软件占用,或是以后新应用准备占用该端口的时候,却被你先占用了,导致软件无法运行。
第二步:如果你关闭了SELinux,可以忽略第二步。
先查看SELinux开放给ssh使用的端口

semanage port -l|grep ssh  

如果提示:-bash: semanage: command not found,表示没有安装semanage
安装yum -y install policycoreutils-python.x86_64

我的系统打印如下:

[root@izwz98nqtxax20v9gcwk1tz ~]# semanage port -l|grep ssh 
ssh_port_t                     tcp      22

可知,SELinux没有给SSH开放10086端口,那么我们来添加该端口:

semanage port -a -t ssh_port_t -p tcp 10086  

完成后,再次查看

semanage port -l|grep ssh  

[root@izwz98nqtxax20v9gcwk1tz ~]# semanage port -l|grep ssh 
ssh_port_t                     tcp      22,10086

如果确认在配置文件中添加了和已开放了端口号,执行上一步未显示的话无需在意

第三步:如果你关闭了防火墙,可以忽略第三步,话说防火墙不开启太危险了,建议开启。
先查看防火墙是否开启了10086端口:

firewall-cmd --zone=public --query-port=10086/tcp

打印结果如下:
no
表示没有开放10086端口,那么添加下该端口:

firewall-cmd --zone=public --add-port=80/tcp --permanent 

打印结果如下:
success
重新加载防火墙策略:

firewall-cmd --reload 

第四步:重启SSH服务和防火墙,最好也重启下服务器

systemctl restart sshd  
systemctl restart firewalld.service  
shutdown -r now  

第五步:尝试用10086登录SSH,或者进入该服务器直接本地访问SSH如下:

ssh root@localhost -p 10086  

如果成功,说明10086已经完全可以使用了,接下来你就可以根据上述步骤sshd_config Port22注释掉,SELinux和防火墙(Firewalld)关闭22端口就OK,大工造成!

第六步:修改第三方服务器安全组策略。如果没有第三方服务器,上述已经完成了本文的目标,可以忽略第六步。下面直接上阿里云的示例图:

请输入图片描述

补充栏-----------------------------------------------------------------------------

1.查看某端口是否被占用,以10086为例:

netstat -lnp|grep 10086

如果没有任何打印,说明没有被占用。有打印的话,说明被占用了,一般会列出哪个进程占用。

  1. 列出所有端口

    netstat -ntlp

  2. 查看是否开启了SELinux

    sestatus -v
    如果输出结果为:

SELinux status: disabled
说明有打开,可以通过修改SELinux的配置开启或关闭它:

vim /etc/selinux/config 

找到:
SELINUX=disabled
修改成:
SELINUX= enforcing
重启一下,就OK。

  1. semanage命令无法使用,或说找不到该命令。说明没有配置该命令,可以进行以下命令进行安装:

    yum -y install policycoreutils-python.x86_64
    关于它的依赖库我就不作赘述,可以百度下更全面的安装semanage教程。

  2. CentOS7防火墙改为firewalld了,而不是iptables,对应的命令也请百度下,这里不作赘述。
CentOS 9系统中,如果你想要修改SSH服务的默认端口号,你需要编辑SSH的配置文件,并重启SSH服务。默认的SSH端口号是22,修改步骤如下: 1. 首先,打开SSH配置文件。你可以使用文本编辑器,例如`vi`或`nano`,来编辑这个文件。命令如下: ``` sudo vi /etc/ssh/sshd_config ``` 或者 ``` sudo nano /etc/ssh/sshd_config ``` 2. 在`sshd_config`文件中找到`#Port 22`这一行。你需要去掉行首的`#`(这代表注释),然后在`Port`后面指定新的端口号。例如,如果你想要设置端口号为2222,那么应该是这样的: ``` Port 2222 ``` 3. 保存并关闭配置文件。如果你使用的是`vi`,可以按`ESC`键然后输入`:wq`保存并退出。如果使用`nano`,则可以使用快捷键`Ctrl + O`保存文件,然后`Ctrl + X`退出。 4. 修改完配置文件后,需要重启SSH服务以使更改生效。可以使用以下命令重启SSH服务: ``` sudo systemctl restart sshd ``` 5. 最后,确保新端口已开放。你可以使用`firewall-cmd`命令来添加新的端口到防火墙中: ``` sudo firewall-cmd --add-port=2222/tcp --permanent ``` 其中`2222`是你新设置的端口号。之后,重新加载防火墙规则以使更改生效: ``` sudo firewall-cmd --reload ``` 在进行这些更改后,你可以通过新端口访问SSH服务。注意,在修改端口并重启服务之前,确保你了解更改带来的影响,并且已经在其他地方备份了当前的配置文件,以防出现配置错误导致无法远程连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值