題記
經常會發(fā)現,很多時候我們在運行一些帶有端口的程序時治泥,程序經常會報端口被占用的問題筹煮,比如Tomcat 8080,端口起不來居夹。
查看端口號 netstat
如果發(fā)現某個端口被占用后败潦,可以用命令查看,該端口到底是被哪個進程所占用准脂。命令如下:
netstat -pan | grep 5623
其中5623位端口號
如圖
其中劫扒,‘Local Address’ 表示 ‘本地地址:端口’,為服務提供方占用
‘Foreign Address’ 表示 ‘外部地址:端口’狸膏,為服務調用方占用
我們發(fā)現5623的端口沟饥,被pid為28425的服務進程所占用,可以繼續(xù)進一步跟蹤湾戳,到底是哪個程序所占用了贤旷。
通過進程id查找程序–ps
直接通過:ps -aux | grep pid 查看,進程程序名稱砾脑,
通過netstat查找端口占用的pid幼驶,再通過pid進一步的查找程序名稱,能夠確認目前沖突的端口是哪個程序已經占用了韧衣,我們是重新啟用換一個端口號盅藻,還是結束已經占用的端口號所用的程序,清空被占用的端口號畅铭。
netstat 中參數選項
-a或--all:顯示所有連線中的Socket萧求;
-A<網絡類型>或--<網絡類型>:列出該網絡類型連線中的相關地址;
-c或--continuous:持續(xù)列出網絡狀態(tài)顶瞒;
-C或--cache:顯示路由器配置的快取信息;
-e或--extend:顯示網絡其他相關信息元旬;
-F或--fib:顯示FIB榴徐;
-g或--groups:顯示多重廣播功能群組組員名單守问;
-h或--help:在線幫助;
-i或--interfaces:顯示網絡界面信息表單坑资;
-l或--listening:顯示監(jiān)控中的服務器的Socket耗帕;
-M或--masquerade:顯示偽裝的網絡連線;
-n或--numeric:直接使用ip地址袱贮,而不通過域名服務器仿便;
-N或--netlink或--symbolic:顯示網絡硬件外圍設備的符號連接名稱;
-o或--timers:顯示計時器攒巍;
-p或--programs:顯示正在使用Socket的程序識別碼和程序名稱嗽仪;
-r或--route:顯示Routing Table;
-s或--statistice:顯示網絡工作信息統(tǒng)計表柒莉;
-t或--tcp:顯示TCP傳輸協議的連線狀況闻坚;
-u或--udp:顯示UDP傳輸協議的連線狀況;
-v或--verbose:顯示指令執(zhí)行過程兢孝;
-V或--version:顯示版本信息窿凤;
-w或--raw:顯示RAW傳輸協議的連線狀況;
-x或--unix:此參數的效果和指定"-A unix"參數相同跨蟹;
--ip或--inet:此參數的效果和指定"-A inet"參數相同雳殊。