我是艾西今天跟大家聊聊Linux系统怎么查看端口有没有被占用命令
在这个前提你要有一台服务器,不理解服务器是什么的朋友可以比喻成PC电脑,配置越高性能越强服务器也是一样的。
首先,当你无法运行以下命令时候,请检查是否已经安装相应软件,您可以用以下命令安装:# 安装 netstat 需要的组件# CentOS 系列系统
yum install net-tools
# Ubuntu 和 Debian 系列系统
apt-get install net-tools
# 安装 lsof# CentOS 系列系统*
yum install lsof
# Ubuntu 和 Debian
apt-get install lsof
netstat命令
netstat命令是在内核中访问网络及相关信息的命令,能够显示协议统计和当前TCP/IP的网络连接
netstat -ntlp
参数说明:
- -a或--all 显示所有连线中的Socket。
- -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 显示网络硬件外围设备的符号连接名称。
- -o或--timers 显示计时器。
- -p或--programs 显示正在使用Socket的程序识别码和程序名称。
- -r或--route 显示Routing Table。
- -s或--statistics 显示网络工作信息统计表。
- -t或--TCP 显示TCP传输协议的连线状况。
- -u或--UDP 显示UDP传输协议的连线状况。
- -v或--verbose 显示指令执行过程。
- -V或--version 显示版本信息。
- -w或--raw 显示RAW传输协议的连线状况。
- -x或--unix 此参数的效果和指定"-A unix"参数相同。
- --ip或--inet 此参数的效果和指定"-A inet"参数相同。
lsof(list open files)是一个列出当前系统打开文件的工具。
# 列出所有端口情况 lsof -i
# [端口] 换成在要查询的占用端口 lsof -i:[端口] # 如查询 80 端口 lsof -i: 80
更多命令
lsof -i:8080:查看8080端口占用
lsof abc.txt:显示开启文件abc.txt的进程
lsof -c abc:显示abc进程现在打开的文件
lsof -c -p 1234:列出进程号为1234的进程所打开的文件
lsof -g gid:显示归属gid的进程情况
lsof d /usr/local/:显示目录下被进程开启的文件
lsof D /usr/local/:同上,但是会搜索目录下的目录,时间较长
lsof -d 4:显示使用fd为4的进程
lsof -i -U:显示所有打开的端口和UNIX domain文件
kill在查到端口占用的进程后,如果你要杀掉对应的进程可以使用 kill 命令:
# [pid] 换成在上面命令获得的进程PID kill - 9 PID
# 例如杀掉pid为6010的进程 kill - 9 6010
,