LINUX中查看端口與相應進程
Standard本文介紹了在 Linux 中查看端口占用情況的一些方法。
全程需要用到下列程序:
- netstat:一個命令行工具,用來顯示 網絡連接,路由表,和一些 網絡接口數據
- fuser:一個命令行工具,用來表示經常使用文件或者套接字
-
lsof:一個命令行工具,用來列出當前系統打開文件的工具
- /proc/$pid:在 Linux的 /proc 目錄下包含了一個名爲 PID (PID爲所需進程對應的值)的文件,其包含每個對應PID的進程的 信息,通常,包含進程的名字和打開的端口等。。
# 注:可能需要使用 root 權限使用上述命令
netstat命令:
# 注,如果 PID/Program name 不顯示的話,可能是權限不夠,請嘗試 sudo
使用 grep來過濾結果
• # netstat -tulpn | grep :22
後面的參數是指定需要顯示的一些內容,例如圖中列出了IP地址,端口號,相應進程PID等內容。
如果知道端口號,想知道對應的進程的一些信息,就可以使用下面的fuser命令
fuser 命令
查看 哪個 進程PID 佔用了 53 端口,使用命令
# fuser 53/tcp
# 注,同上,可能有些 進程權限不夠看不到,嘗試 sudo。
查看該 PID 對應的是哪個進程 ,使用命令:
ls -l /proc/3353/exe
和最上面的介紹一樣,每個進程 OS 都會在 /proc 路徑下給建立一個對應PID的文件夾,裏面存放一些進程信息,exe中即保存了名字。。
# 注,還是權限問題,然後對應 那個PID 是dnsmasq 進程,man dnsmasq 得知,該進程爲一個輕量級 DHCP 和 DNS 緩存服務器
查看 一個進程 當前的工作路徑
使用命令:
# ls -l /proc/3353/cwd
或者使用 pwdx 命令:pwdx 3353
查看一個 進程 的 owner# ps aux | grep 3353