前言
如何确定端口是否在Linux或类unix系统下占用?怎么检查哪些端口正在Linux服务器上被占用?Linux系统如何使用命令行检查端口是否已经在占用?
查询哪些端口正在服务器的网络接口上被占用是非常重要的工作。您需要查询打开端口以检测入侵。除了入侵之外,出于故障排除的目的,可能有必要检查服务器上的其他应用程序是否已经使用了某个端口。例如,您可以在同一系统上安装Apache和Nginx服务器。因此,有必要了解Apache或Nginx是否使用TCP端口80或443。本教程提供了使用netstat、nmap和lsof命令查询正在使用的端口并查看正在使用该端口的应用程序的步骤。
如何查询端口是否在使用中:
检查Linux上被占用的端口和应用程序:
Step1: 打开终端
Step2: 执行以下任意一条命令查看被占用的端口
查看端口22是否被占用:
较新版本的Linux使用以下查询命令:
方法1: 使用lsof命令查询占用端口
先安装lsof命令
RHEL/CentOS系统:
Debian/Ubuntu系统安装lsof命令
使用语法如下
OpenBSD
看到类似这样的输出结果:
sshd是进程名字
TCP 22表示sshd进程占用了TCP 22端口,正在监听中(LISTEN)
1243表示sshd进程号
方法二:使用netstat查询被占用的端口号
较新的Linux发行版已经不再默认集成netstat命令,而是使用新命令ss取代了。
如果要使用netstat命令,需要手动安装net-tools套件:
RHEL/CentOS系统安装net-tools套件,执行以下命令:
Debian/Ubuntu系统执行以下命令:
您可以使用netstat查询被占用的端口和应用程序,如下所示。
执行以下命令查询:
在Linux上,netstat命令已经废弃了一段时间。因此,你需要使用ss命令如下:
或者:
其中ss命令选项如下:
-t : 只显示Linux上的TCP套接字
-u : 在Linux上只显示UDP套接字
-l : 监听套接字。例如,TCP端口22由SSHD服务器打开。
-p : 列出打开套接字的进程名
-n : 不要解析服务名称,即不要使用DNS
FreeBSD/MacOS X netstat 语法
FreeBSD/MacOS X查询被占用的端口
或者
OpenBSD netstat 语法
OpenBSD查询被占用的端口
或者
方法三:使用`nmap`命令查询Linux被占用的端口
默认情况下,Linux发行版并没有默认安装nmap命令,
CentOS系统安装nmap
Ubuntu系统安装nmap
使用nmap查询本机被占用的端口
查询Linux系统被占用的UDP端口
查询Linux系统被占用的TCP端口
你可以同时查询被占用的TCP和UDP端口
结论:
本教程解释了如何在Linux系统上使用命令行查询TCP或者UDP端口是否被占用。有关更多信息,请参见nmap命令和lsof命令页面
一、常用命令:
1,lsof -i端口号
2,netstat -tunlp|grep 端口号
这两个命令都可以查看端口被什么进程占用。
二、lsof -i 需要 root 用户的权限来执行,如下图:
三、netstat命令
netstat -tunlp 用于显示 tcp,udp 的端口和进程等相关情况。
netstat 查看端口占用语法格式:
netstat -tunlp | grep 端口号
扩展资料
一、更多 lsof 的命令扩展
1、lsof -i:8080:查看8080端口占用
2、lsof abc.txt:显示开启文件abc.txt的进程
3、lsof -c abc:显示abc进程现在打开的文件
4、lsof -c -p 1234:列出进程号为1234的进程所打开的文件
5、lsof -g gid:显示归属gid的进程情况
6、lsof +d /usr/local/:显示目录下被进程开启的文件
7、lsof +D /usr/local/:同上,但是会搜索目录下的目录,时间较长
8、lsof -d 4:显示使用fd为4的进程
9、lsof -i -U:显示所有打开的端口和UNIX domain文件
二、更多netstat命令
1、netstat -ntlp //查看当前所有tcp端口
2、netstat -ntulp | grep 80 //查看所有80端口使用情况
3、netstat -ntulp | grep 3306 //查看所有3306端口使用情况
三、关闭端口
1、在查到端口占用的进程后,如果你要杀掉对应的进程可以使用 kill 命令:
kill -9 PID
2、如上实例,我们看到 8000 端口对应的 PID 为 26993,使用以下命令杀死进程:
kill -9 26993
Linux中如何查看8080端口是否被占用?在Linux系统中,想要查看哪些端口被占用可通过命令进行查询,比如:lsof、netstat命令。其中netstat命令是最为常见的,本文将为大家重点介绍一下,不了解的小伙伴一定要认真看完!
输入命令:netstat -tln | grep 8080,来查看8080端口情况,按回车执行。
Linux netstat命令用于显示网络状态。
利用netstat指令可让你得知整个Linux系统的网络情况。
语法
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
参数
-a或--all:显示所有连线中的Socker。
-A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址。
-c或--continuous:持续列出网络状态。
-C或--cache:显示路由器配置的快取信息。
-e或--extend:显示网络其他相关信息。
-F或--fib:显示路由缓存。
-g或--groups:显示多重广播功能群组组员名单。
-h或--help:在线帮助。
-i或--interfaces:显示网络界面信息表单。
-l或--listening:显示监控中的服务器的Socket。
-M或--masquerade:显示伪装的网络连线。
-n或--numeric:直接使用IP地址,而不通过域名服务器。
-N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称。
…………
参数较多,就不一一列举了!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)