centos 空闲端口,centos关闭端口命令
大家好,感谢邀请,今天来为大家分享一下centos 空闲端口的问题,以及和centos关闭端口命令的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!
CentOS如何查看端口是被哪个应用/进程占用
有时启动应用时会发现端口已经被占用,或者是感觉有些端口自己没有使用却发现是打开的。这时我们希望知道是哪个应用/进程在使用该端口。
CentOS下可以用netstat或者lsof查看,Windows下也可以用netstat查看,不过参数会不同
Linux:
netstat-nap#会列出所有正在使用的端口及关联的进程/应用
lsof-i:portnumber#portnumber要用具体的端口号代替,可以直接列出该端口听使用进程/应用
一、检查端口被哪个进程占用
代码如下复制代码
netstat-lnp|grep 88#88请换为你的apache需要的端口,如:80
SSH执行以上命令,可以查看到88端口正在被哪个进程使用。如下图,进程号为 1777。
二、查看进程的详细信息
ps 1777
SSH执行以上命令。查看相应进程号的程序详细路径。如下图。
三、杀掉进程,重新启动apache
代码如下复制代码
kill-9 1777#杀掉编号为1777的进程(请根据实际情况输入)
service httpd start#启动apache
SSH执行以上命令,如果没有问题,apache将可以正常启动。
Windows系统:
netstat-nao#会列出端口关联的的进程号,可以通过任务管理器查看是哪个任务
最后一列为程序PID,再通过tasklist命令:tasklist| findstr 2724
再通过任务管理结束掉这个程序就可以了
centos查看端口占用情况
在CentOS系统中,管理员常常需要检查端口的占用情况,以确保系统的正常运行。"netstat"命令是常用的工具,用于查看端口的使用状态。以下是使用netstat进行操作的几个步骤:
首先,执行命令以查看所有端口的占用情况:
运行命令:
结果显示:
例如,3306端口被TCP协议的PID为10818的mysqld进程占用,状态为LISTEN,表示该端口正在监听连接。
1596端口则被UDP协议的PID为1596的chronyd进程占用,由于UDP协议无连接状态,状态显示为空。
接着,可以指定特定端口查询占用信息,如3306端口:
查询3306端口的占用记录:
如果需要进一步了解占用端口的程序详细信息,可以根据查询结果中PID找到对应进程:
例如,对于PID为10818的程序,可以查看详细信息:
netstat命令提供了多个参数选项,如-t(显示TCP端口)、-u(显示UDP端口)、-p(显示进程PID和名称)等,以满足不同需求。例如:
常用参数说明:
-t:显示TCP协议端口
-u:显示UDP协议端口
-l:显示监听中的套接字(默认)
-p:显示所属进程PID和名称
在查看套接字状态时,State列会显示套接字的不同状态,如ESTABLISHED、LISTEN等。对于详细状态解释,请参考:
状态说明:
...(省略状态详细解释)
通过这些步骤,管理员可以有效地监控和管理CentOS系统中端口的使用情况。
如何开放CentOS的端口
Centos升级到7之后,内置的防火墙已经从iptables变成了firewalld。所以,端口的开启还是要从两种情况来说明的,即iptables和firewalld。更多关于CentOs防火墙的最新内容,请参考Redhat官网。
一、iptables
1.打开/关闭/重启防火墙
开启防火墙(重启后永久生效):chkconfig iptables on
关闭防火墙(重启后永久生效):chkconfig iptables off
开启防火墙(即时生效,重启后失效):service iptables start
关闭防火墙(即时生效,重启后失效):service iptables stop
重启防火墙:service iptables restartd
2.查看打开的端口
/etc/init.d/iptables status
3.打开某个端口(以8080为例)
(1)开启端口
iptables-A INPUT-p tcp--dport 8080-j ACCEPT
(2)保存并重启防火墙
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables restart
4.打开49152~65534之间的端口
iptables-A INPUT-p tcp--dport 49152:65534-j ACCEPT
同样,这里需要对设置进行保存,并重启防火墙。
5.其他打开方式
我们还可以通过修改/etc/sysconfig/iptables文件的方式开启端口,如下
vi/etc/sysconfig/iptables
然后在文件中增加一行
-A RH-Firewall-1-INPUT-m state–state NEW-m tcp-p tcp–dport 8080-j ACCEPT
参数说明:
–A参数就看成是添加一条规则
–p指定是什么协议,我们常用的tcp协议,当然也有udp,例如53端口的DNS
–dport就是目标端口,当数据从外部进入服务器为目标端口
–sport数据从服务器出去,则为数据源端口使用
–j就是指定是 ACCEPT-接收或者 DROP不接收
二、firewalld
Centos7默认安装了firewalld,如果没有安装的话,可以使用 yum install firewalld firewalld-config进行安装。
1.启动防火墙
systemctl start firewalld
2.禁用防火墙
systemctl stop firewalld
3.设置开机启动
systemctl enable firewalld
4.停止并禁用开机启动
sytemctl disable firewalld
5.重启防火墙
firewall-cmd--reload
6.查看状态
systemctl status firewalld或者 firewall-cmd--state
7.查看版本
firewall-cmd--version
8.查看帮助
firewall-cmd--help
9.查看区域信息
firewall-cmd--get-active-zones
10.查看指定接口所属区域信息
firewall-cmd--get-zone-of-interface=eth0
11.拒绝所有包
firewall-cmd--panic-on
12.取消拒绝状态
firewall-cmd--panic-off
13.查看是否拒绝
firewall-cmd--query-panic
14.将接口添加到区域(默认接口都在public)
firewall-cmd--zone=public--add-interface=eth0(永久生效再加上--permanent然后reload防火墙)
15.设置默认接口区域
firewall-cmd--set-default-zone=public(立即生效,无需重启)
16.更新防火墙规则
firewall-cmd--reload或firewall-cmd--complete-reload(两者的区别就是第一个无需断开连接,就是firewalld特性之一动态
添加规则,第二个需要断开连接,类似重启服务)
17.查看指定区域所有打开的端口
firewall-cmd--zone=public--list-ports
18.在指定区域打开端口(记得重启防火墙)
firewall-cmd--zone=public--add-port=80/tcp(永久生效再加上--permanent)
说明:
–zone作用域
–add-port=8080/tcp添加端口,格式为:端口/通讯协议
–permanent#永久生效,没有此参数重启后失效