[Mac] 使用 lsof, nettop, Private Eye 觀察 process 開啟的網路連線

[Mac] 使用 lsof, nettop, Private Eye 觀察 process 開啟的網路連線

今天 Mac 上的 Dropbox 不知道為什麼一直出現無法建立安全連線的訊息…

想說來看一下 Dropbox 到底是想要連去哪裡,卻不知從何下手…

 

查了一下,Mac 上是有些工具可以查特定 process 開了哪些連線:

List all Open Internet Connections on a Mac from Terminal to Track Down Bandwidth Issues

Watch Network Traffic in Mac OS X via Command Line with nettop

Monitor Network Connections in Mac OS X for Free with Private Eye

 

1. lsof

lsof 算是功能很多的 command line tool,通常是用來查開了哪些檔案 / lock,

不過也可以用來查網路連線~

舉例來說,下面的指令就是用來查 dropbox 這個 process 開了哪些 TCP/UDP 的連線:

testuser@localhost ~ $ lsof 2>/dev/null | egrep -i "dropbox.*(tcp|udp)"
Dropbox  18649 testuser   19u   IPv4 0x3665d43c437455e1   0t0   TCP localhost:50978->client.v.dropbox.com:https (CLOSED)
Dropbox  18649 testuser   35u   IPv4 0x3665d43c43667ee9   0t0   TCP localhost:52022->server-54-192-111-173.nrt53.r.cloudfront.net:https (CLOSE_WAIT)
Dropbox  18649 testuser   39u   IPv4 0x3665d43c43d32ac9   0t0   TCP localhost:53247->d.v.dropbox.com:https (ESTABLISHED)
Dropbox  18649 testuser   50u   IPv4 0x3665d43c447963d1   0t0   TCP localhost:17600 (LISTEN)
Dropbox  18649 testuser   54u   IPv4 0x3665d43c4366c5e1   0t0   TCP localhost:52986->ec2-52-3-73-107.compute-1.amazonaws.com:https (CLOSE_WAIT)
Dropbox  18649 testuser   58u   IPv4 0x3665d43c3cff77f1   0t0   TCP localhost:52023->server-54-192-111-173.nrt53.r.cloudfront.net:https (CLOSE_WAIT)
Dropbox  18649 testuser   63u   IPv4 0x3665d43c43d2ecd9   0t0   TCP localhost:17603 (LISTEN)
Dropbox  18649 testuser   65u   IPv6 0x3665d43c3707fc89   0t0   TCP *:17500 (LISTEN)
Dropbox  18649 testuser   66u   IPv4 0x3665d43c4372fac9   0t0   TCP *:17500 (LISTEN)
Dropbox  18649 testuser   67u   IPv4 0x3665d43c38d0a189   0t0   UDP *:17500
Dropbox  18649 testuser   68u   IPv4 0x3665d43c437443d1   0t0   TCP localhost:52030->199.47.217.65:https (CLOSE_WAIT)
Dropbox  18649 testuser   69u   IPv4 0x3665d43c3c5925e1   0t0   TCP localhost:53289->162.125.32.129:https (CLOSE_WAIT)

 

2. nettop

nettop 也是 Mac 內建的 command line tool,

它將每個 process 開啟的連線直接列出來,而且也可以即時更新,

不過缺點是沒辦法搜尋 / grep,因此要找到想看的 process 可能有點麻煩…

Screen Shot 2016-03-11 at 4.42.12 PM  

 

3. Private Eye

這是一個免費的 GUI 軟體,可以看 process 開啟連線的過程~

用 Homebrew Cask 就可以安裝:

brew cask install private-eye

 

執行之後,每當有 process 開啟一個新連線時,

Private Eye 就會將時間、process 名稱、和連線的機器顯示出來:

Screen Shot 2016-03-11 at 4.40.48 PM   

 

左下角的 Applications 會把有新增連線的應用程式列出來,

點選特定應用程式的話,就可以單獨看這個應用程式開過的連線:

Screen Shot 2016-03-11 at 4.48.32 PM  

 

Private Eye 的好處是可以將連線開啟的歷程都記錄下來,

不過連線的資訊似乎不算是很清楚,看不到 source/destinatio port…

 

(本頁面已被瀏覽過 1,016 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料