
在輸出中
netstat -a | grep LISTEN
通常有很多流程。我如何(在哪裡)找到有關它們的信息,它們在系統中的目的是什麼以及我是否可以殺死它們?其中哪些是不安全的,哪些是安全的?
答案1
我如何(在哪裡)可以找到有關他們的信息,
首先您必須找出每個連接埠綁定了哪個程式。不幸的是,沒有一種標準方法可以在所有 *ix 類型系統上運作,而且您的問題沒有指定一種方法。
某些版本netstat
有一個標誌,其中在每個輸出行上包含關聯的程式名稱。例如,--program
在 Linux 或-b
Windows 上。
如果您netstat
沒有這樣的標誌(例如 OS X),您將必須找到另一種適用於您的系統的方法。lsof -i
、/proc
洞穴探險等
他們在系統中的目的是什麼
一旦您掌握了程式名稱,man progname
通常會給您足夠的資訊來自己回答該問題。
[我可以]殺掉他們嗎?
一旦您知道每個伺服器在做什麼,您就會明白這一點。
這裡的單一答案不適合列出所有你可以殺死的東西。可能性實在太多了。如果您在閱讀其文件後對給定程式不確定,您可以在此處發布另一個問題來詢問該程式。有些事情相當明顯(例如sshd
),有些則比較模糊(例如avahi
)。
其中哪些是不安全的,哪些是安全的?
程式很少會預設運行在絕對不安全的新 *ix 系統上。
(在過去糟糕的日子裡,情況並非如此。您經常會看到系統運行telnetd
非 chroot 的ftpd
命令r*
...)
任何非預設後台 TCP 偵聽器都應該是您或其他受信任的管理員安裝的,因此您可能已經解決了任何安全性問題。
這裡存在著灰色地帶。您運行的伺服器可能不是絕對不安全,而是有條件地不安全。也許它沒有正確鎖定,也許它有未修補的錯誤,等等。如果缺乏這種經驗,谷歌可能是你最好的首選。如果您在那裡找不到所需的內容,您可以在此處發布有關特定伺服器的新問題。
答案2
命令
netstat -a | grep LISTEN
列出偵聽各種類型套接字的所有流程。這些套接字可以是任何位址系列,例如 ipv4(udp 或 tcp)、ipv6(udp6 或 tcp6)、unix。
條目如下:
tcp 0 0 *:webmin *:* LISTEN
tcp 0 0 *:ftp *:* LISTEN
意味著tcp
使用了協定並且某些伺服器正在您的電腦上運行,就像我的例子中 webmin 和 ftp 伺服器正在運行一樣。
條目如下:
tcp6 0 0 [::]:8484 [::]:* LISTEN
tcp6 0 0 [::]:netbios-ssn [::]:* LISTEN
表示使用ipv6的tcp6協定。
條目如下:
unix 2 [ ACC ] STREAM LISTENING 13297 /tmp/orbit-pradeep/linc-76d-0-53b2963d93f75
unix 2 [ ACC ] STREAM LISTENING 13305 /tmp/orbit-pradeep/linc-775-0-5ddd91eb9510b
由 ORBit CORBA 建立。這種公共物件請求代理體系結構(CORBA)是由物件管理群組(OMG)定義的標準,它使得用多種電腦語言編寫並在多台電腦上運行的軟體元件能夠協同工作,即它支援多種平台。
1. 我如何(在哪裡)可以找到有關他們的資訊?
假設我想查找有關/tmp/orbit-pradeep/linc-775-0-5ddd91eb9510b
.我可以透過執行以下命令來了解詳細資訊:
$ lsof -Pwn | grep /tmp/orbit-pradeep/linc-775-0-5ddd91eb9510b
該命令給出了輸出:
indicator 1909 pradeep 10u unix 0xf6bd8900 0t0 13305 /tmp/orbit-pradeep/linc-775-0-5ddd91eb9510b
indicator 1909 pradeep 12u unix 0xf6b1f600 0t0 13314 /tmp/orbit-pradeep/linc-775-0-5ddd91eb9510b
這裡:
indicator
是與進程關聯的 unix 指令的名稱。
1909
是進程的PID indicator
。
2. 它們在系統中的用途是什麼?
有些過程像
tcp 0 0 *:ftp *:* LISTEN
用於監聽 FTP 伺服器。
其他人喜歡:
unix 2 [ ACC ] STREAM LISTENING 13297 /tmp/orbit-pradeep/linc-76d-0-53b2963d93f75
用於 CORBA 使用的不同進程之間的進程間通訊。
3.我可以殺掉他們嗎?
這取決於過程的關鍵程度。假設如果您終止任何正在偵聽的伺服器,那麼它將停止與該伺服器相關的所有通訊。
4. 其中哪些是不安全的,哪些是安全的?
所有都是安全的過程。
答案3
netstat -nap | grep LISTEN
將給出以下輸出,其中包括姓名和PID的傾聽流程:
unix 2 [ ACC ] STREAM LISTENING 20763 2333/gnome-terminal /tmp/orbit-eugene/linc-91d-0-2dbe139bd35e3
unix 2 [ ACC ] STREAM LISTENING 17900 2014/bonobo-activat /tmp/orbit-eugene/linc-7de-0-2b0c0606f265
unix 2 [ ACC ] STREAM LISTENING 18325 2274/gnome-screensa /tmp/orbit-eugene/linc-7ef-0-59f130216cc19
-n
- 顯示數字位址,而不是嘗試確定符號主機、連接埠或使用者名稱。
-a
- 顯示偵聽和非偵聽套接字。
-p
顯示每個套接字所屬程式的 PID 和名稱。