• 认真地记录技术中遇到的坑!
  • 能摸鱼真是太好啦!嘿嘿嘿!

Linux占用端口强制释放以及防火墙端口开放

Linux 悠悠 6年前 (2018-05-03) 4416次浏览 0个评论

概述

在安装nginx,mysql,tomcat等等服务的时候,我们会遇到需要使用的端口莫名其妙被占用,下面介绍如何解决这类问题。

说到端口,还不得不提到防火墙,本文还会简单介绍如何配置防火墙开发端口。

查看端口情况的各种方法

所有端口的映射关系在 /etc/services 文件中有

端口简单介绍

端口编号从0-65536,各编号端的用途如下:

  • 0-1023:公认端口,与常见服务绑定(FTP,SSH)
  • 1024-49151:注册端口,用于和一些服务绑定
  • 49152-65535:动态或私有端口,可用于任意网络连接

端口分为TCP和UDP传输协议。

查看端口状态命令

可以有下面的命令查看端口情况,点击命令可以调整到每个命令的使用详情:

  • nmap命令,端口扫描使用
  • netstat,检测开发端口
  • lsof,检查端口描述符
# 查看绑定本机的端口
nmap 127.0.0.1

# 检查3306端口
netstat -anlp | grep 3306

# 检测3306接口
lsof -i:3306

释放占用端口总体解决办法

解决步骤如下:

  • 查找占用端口的进程
  • 杀掉该进程

使用下面命令即可:

# 可以写成一条命令
netstat -anp|grep 8080|awk '{print 7}'|awk -F '/' '{print1}'|xargs kill -s 9

各命令含义如下:

  • netstat -anp 显示所有网络使用情况,并显示使用程序
  • grep 8080 匹配8080端口的记录(可能会包含18080)
  • awk '{print $7}' 输出第7列进程,形式如下:18989/nginx
  • awk -F '/' '{print $1}' 截取进程PID:18989
  • xargs kill -s 9 使用前一个命令的输出作为参数,杀掉该进程

释放占用端口分步解决办法

查询端口是否被占用

比如需要查询8080端口是否占用,可以下面命令

netstat -an | grep 8080

查询占用端口的进程

可以使用lsof命令查看

lsof -i:8080

也可以使用netstatgrep查看

netstat -anp|grep 8080

该命令最后一行就是占用8080端口的进程PID和名称。

杀掉占用端口的进程

可以使用kill命令直接杀死上一步中查到的进程。

kill -9 19664

防火墙释放端口

防火墙启动和关闭

下面介绍的防火墙是iptable,对于firewalld并不适用。

  • 开启防火墙(重启后永久生效):chkconfig iptables on
  • 关闭防火墙(重启后永久生效):chkconfig iptables off
  • 开启防火墙(即时生效,重启后失效):service iptables start
  • 关闭防火墙(即时生效,重启后失效):service iptables stop
  • 重启防火墙:service iptables restart

查看防火墙状态

可以使用下面命令查看:

/etc/init.d/iptables status

# 或者简写
iptables status
iptables -L

# 也可以直接查看配置文件
vim /etc/sysconfig/iptables 

开放某个端口

比如打开8080端口,可用下面的命令:

iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
# 还需要重启服务
service iptables restart

# 也可以直接编辑配置文件
vim /etc/sysconfig/iptables
# 然后在文件结尾添加一行,下面开发8080-8181之间的所有端口
iptables -A INPUT -p tcp --dport 8080:8181 -j ACCEPT

其中

  • –A 参数就看成是添加一条规则
  • –p 指定是什么协议,我们常用的tcp协议,当然也有udp
  • –dport 就是目标端口,当数据从外部进入服务器为目标端口
  • –sport 数据从服务器出去,则为数据源端口使用
  • –j 指定是 ACCEPT -接收 或者 DROP 不接收

喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址