Linux强制释放占用端口以及Linux防火墙端口开放方法详解
在安装nginx,mysql,tomcat等等服务的时候,我们会遇到需要使用的端口莫名其妙被占用,下面介绍如何解决这类问题。
说到端口,还不得不提到防火墙,本文还会简单介绍如何配置防火墙开发端口。
Linux查看端口情况的各种方法
所有端口的映射关系在/etc/services文件中有
Linux端口简单介绍,端口编号从0-65536,各编号端的用途如下:
0-1023:公认端口,与常见服务绑定(FTP,SSH)
1024-49151:注册端口,用于和一些服务绑定
49152-65535:动态或私有端口,可用于任意网络连接
端口分为TCP和UDP传输协议。
Linux查看端口状态命令
可以有下面的命令查看端口情况,点击命令可以调整到每个命令的使用详情:
nmap命令,端口扫描使用
netstat检测开发端口
lsof检查端口描述符
#查看绑定本机的端口 nmap127.0.0.1 #检查3306端口 netstat-anlp|grep3306 #检测3306接口 lsof-i:3306
linux释放占用端口解决办法
解决步骤如下:
查找占用端口的进程
杀掉该进程
使用下面命令即可:
#可以写成一条命令
netstat-anp|grep8080|awk'{print$7}'|awk-F'/''{print$1}'|xargskill-s9
各命令含义如下:
netstat-anp显示所有网络使用情况,并显示使用程序
grep8080匹配8080端口的记录(可能会包含18080)
awk'{print$7}'输出第7列进程,形式如下:18989/nginx
awk-F'/''{print$1}'截取进程PID:18989
xargskill-s9使用前一个命令的输出作为参数,杀掉该进程
释放占用端口分步解决办法
查询端口是否被占用
比如需要查询8080端口是否占用,可以下面命令
netstat-an|grep8080
查询占用端口的进程
可以使用lsof命令查看
lsof-i:8080
也可以使用netstat和grep查看
netstat-anp|grep8080
该命令最后一行就是占用8080端口的进程PID和名称。
杀掉占用端口的进程
可以使用kill命令直接杀死上一步中查到的进程。
kill-919664
linux防火墙释放端口
Linux防火墙启动和关闭
下面介绍的防火墙是iptable,对于firewalld并不适用。
开启防火墙(重启后永久生效):chkconfigiptableson
关闭防火墙(重启后永久生效):chkconfigiptablesoff
开启防火墙(即时生效,重启后失效):serviceiptablesstart
关闭防火墙(即时生效,重启后失效):serviceiptablesstop
重启防火墙:serviceiptablesrestart
Linux查看防火墙状态
可以使用下面命令查看:
/etc/init.d/iptablesstatus #或者简写 iptablesstatus iptables-L #也可以直接查看配置文件 vim/etc/sysconfig/iptables
Linux开放防火墙某个端口
比如打开8080端口,可用下面的命令:
iptables-AINPUT-ptcp--dport8080-jACCEPT #还需要重启服务 serviceiptablesrestart #也可以直接编辑配置文件 vim/etc/sysconfig/iptables #然后在文件结尾添加一行,下面开发8080-8181之间的所有端口 iptables-AINPUT-ptcp--dport8080:8181-jACCEPT
其中
–A参数就看成是添加一条规则
–p指定是什么协议,我们常用的tcp协议,当然也有udp
–dport就是目标端口,当数据从外部进入服务器为目标端口
–sport数据从服务器出去,则为数据源端口使用
–j指定是ACCEPT-接收或者DROP不接收
以上既是关于 Linux强制释放占用端口以及Linux防火墙端口开放方法,查看更多关于Linux端口方面的文章可以点击下方相关文章