我是艾西今天跟大家聊聊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









