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
检查端口描述符
# 查看绑定本机的端口
nmap 127.0.0.1
# 检查3306端口
netstat -anlp | grep 3306
# 检测3306接口
lsof -i:3306
linux释放占用端口解决办法
解决步骤如下:
查找占用端口的进程
杀掉该进程
使用下面命令即可:
# 可以写成一条命令
netstat -anp|grep 8080|awk '{print $7}'|awk -F '/' '{print $1}'|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
也可以使用netstat和grep查看
netstat -anp|grep 8080
该命令最后一行就是占用8080端口的进程PID和名称。
杀掉占用端口的进程
可以使用kill命令直接杀死上一步中查到的进程。
kill -9 19664
linux防火墙释放端口
Linux防火墙启动和关闭
下面介绍的防火墙是iptable,对于firewalld并不适用。
开启防火墙(重启后永久生效):chkconfig iptables on 关闭防火墙(重启后永久生效):chkconfig iptables off 开启防火墙(即时生效,重启后失效):service iptables start 关闭防火墙(即时生效,重启后失效):service iptables stop 重启防火墙:service iptables restart
Linux查看防火墙状态
可以使用下面命令查看:
/etc/init.d/iptables status
# 或者简写
iptables status
iptables -L
# 也可以直接查看配置文件
vim /etc/sysconfig/iptables
Linux开放防火墙某个端口
比如打开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 不接收
以上即是关于Linux强制释放占用端口以及Linux防火墙端口开放方法。
- Mysql连接错误:Lost connection to Mysql server at 'waiting for initial communication packet'
- 适应现代变化的数据架构
- Linux下修改系统编码的操作记录
- 微信公众平
- linq to xml复习
- web cache server方案比较:varnish、squid、nginx
- Nginx虚拟目录alias和root目录
- Nginx的https配置记录以及http强制跳转到https的方法梳理
- VPC下访问FTP的问题
- 分析车辆雨刮频次计算降雨量 大数据服务天气预报
- 干货:这里有一份小程序接入微信支付避雷指南
- Mysql占用过高CPU时的优化手段
- 服务器端加入自动运行的JS代码
- 数据中心发电机组的调试与验收要求
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 手写React-Router源码,深入理解其原理
- 深入Node.js的模块加载机制,手写require函数
- Redux异步解决方案之Redux-Thunk原理及源码解析
- MySQL设计与优化
- Elasticsearch学习笔记
- 《springboot实战》
- 360全国大学生信安技术大赛记录
- gh0st源码分析与远控的编写(四)
- 记一次Elasticsearch优化总结
- unix环境高级编程(上)-文件篇
- php webshell下直接反弹shell(不借助任何其他语言)
- XssHtml – 基于白名单的富文本XSS过滤类
- unix环境高级编程(下)-高级IO和进程间通信篇
- mybatis原理,配置介绍及源码分析
- web.py使用不当可能造成代码执行