天天看點

Linux檢視服務指令與端口使用狀态

netstat/lsof

netstat指令用于顯示與IP、TCP、UDP和ICMP協定相關的統計資料,一般用于檢驗本機各端口的網絡連接配接情況

-a 顯示一個所有的有效連接配接資訊清單(包括已建立的連接配接,也包括監聽連接配接請求的那些連接配接)

-n 顯示所有已建立的有效連接配接

-t tcp協定

-u udp協定

-l 查詢正在監聽的程式

-p 顯示正在使用socket的程式識别碼和程式名稱

例如:netstat -ntupl|grep processname

如何隻查詢tomcat的連接配接?

netstat -na|grep ESTAB |grep 80 |wc-l

netstat -na|grep ESTAB |grep 8080 |wc-l

常用端口介紹:

端口:21

服務:FTP伺服器所開放的端口,用于上傳、下載下傳。

端口: 22

服務:ssh

端口: 80

服務:HTTP 用于網頁浏覽

端口:389

服務:LDAP ILS 輕型目錄通路協定和NetMeetingInternet Locator Server

端口:443

服務:網頁浏覽端口 能提供加密和通過安全端口傳輸的另一種HTTP

端口:8080

服務:代理端口

打開終端,執行如下指令,檢視各程序占用端口情況:

# ps -ef|wc -l //檢視背景運作的程序總數

# ps -fu csvn //檢視csvn程序

# netstat -lntp //檢視開啟了哪些端口

# netstat -r //本選項可以顯示關于路由表的資訊

# netstat -a //本選項顯示一個所有的有效連接配接資訊清單

# netstat -an|grep 8080

# netstat -na|grep -i listen //可以看到目前系統偵聽的端口号

# netstat -antup //檢視已建立的連接配接程序,所占用的端口。

netstat -anp|grep1487

lsof -i:1487

檢視哪些程序打開了指定端口1487

關閉端口實際上是關閉其對應的服務,比如80端口是HTTPD 關閉80端口可以通過關閉httpd服務來實作

每個端口都有一個守護程序,kill掉這個守護程序就可以了

主機的端口分為監聽端口與随機可用的進階端口

監聽端口:監聽端口就是主機開啟了哪些服務,這個服務會在linux系統裡啟用一個端口來監聽用戶端的請求

随機可用的進階端口:

linux要向某個主機請求服務時,linux主機需要啟用一個端口來對外連接配接linux會随機去用一個未被使用且端口号大于1024的端口進行連接配接

隻有root使用者可以開啟1-1024端口表明擁有root權限

netstat-n 顯示連接配接狀态

netstat-tl 顯示目前正在監聽的服務名稱

linux是一個列出目前系統打開檔案的工具,在linux環境下,任何事物都以檔案的形式存在。

lsof輸出資訊 即可顯示系統打開的檔案預設顯示所有程序打開的所有檔案

lsof filename 顯示打開指定檔案的所有程序

lsof -c string 顯示command列中包含指定字元的程序所有打開的檔案

lsof -u username 顯示所屬user程序打開的檔案

lsof -g gid 顯示歸屬gid的程序情況

lsof -i 顯示符合條件的程序情況

lsof -d 顯示指定檔案描述符的程序

lsof -a 标示兩個參數都必須滿足時才顯示結果

例如: lsof-i:1487

檢視所屬root使用者程序所打開的檔案類型為txt的檔案:

lsof -a -u root -d txt

lsof使用執行個體

1.查找使用檔案系統

解除安裝檔案系統時,如果檔案系統中有任何打開的檔案,就會出錯。可以通過lsof可以找出那些程序在使用目前解除安裝的檔案系統

# lsof /GTES11/

COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

bash 4208 root cwd DIR 3,1 40962 /GTES11/

vim 4230 root cwd DIR 3,1 40962 /GTES11/

2.恢複删除的檔案

當linux計算機受到入侵時,常見的情況是日志檔案被删除,管理錯誤也會導緻意外删除重要的檔案。

當程序打開了某個檔案時,隻要該程序保持打開該檔案時,即使删除,依然存在于磁盤上。這意味着,程序并不知道檔案已被删除,在/proc目錄下,其中包含了反映核心和程序樹的各種檔案。

當系統中的某個檔案被意外地删除了,隻要這個時候系統中還有程序正在通路檔案,可以通過lsof從/proc目錄下恢複該檔案

使用lsof來檢視目前是否有程序打開/var/logmessages檔案

# lsof |grep /var/log/messages syslogd 1283 root 2w REG 3,3 5381017 1773647 /var/log/messages (deleted) 從/proc/1283/fd/2      
對于許多應用程式,尤其是日志檔案和資料庫,這種恢複删除檔案的方法非常有用      

繼續閱讀