限时指定中國香港伺服器優惠: 输入 MOONPROMO 享首兩個月半價,或輸入 SEPPROMO 享首月半價。
Varidata 新聞資訊
知識庫 | 問答 | 最新技術 | IDC 行業新聞
Varidata 知識文檔

如何使用 tcpdump 發現伺服器上的異常流量

發布日期:2026-09-29
tcpdump顯示伺服器異常流量

你的伺服器變慢了。你執行 tcpdump,看到大量 SYN 封包湧入。這就是異常現象。Tcpdump 是一款命令列抓包分析工具,可讓你擷取網路流量。接著,你可以分析抓包結果,尋找危險訊號。異常行為通常表現為不尋常的 TCP 旗標組合、過高的封包速率,或出乎意料的流量來源。危險訊號包括用戶端無法連線、重複的連線嘗試,或異常的旗標組合。Tcpdump 有助於故障排除。你可以依特定旗標進行過濾,進而理解流量模式。本文將介紹關鍵指令、過濾器以及解讀技巧,幫助你及早發現問題。先擷取一部分封包樣本,然後開始識別異常模式。

關鍵重點

  • 先擷取正常流量,建立基準,便於後續比對。

  • 使用 tcpdump 過濾器發現 SYN 洪泛、連接埠掃描以及 UDP/ICMP 異常。

  • 透過解讀旗標、TTL 和封包速率來識別危險訊號。

  • 將抓包結果儲存為 pcap 檔案,以便使用 Wireshark 進行更深入的分析。

  • 經常練習,逐步建立識別異常流量的信心。

使用 tcpdump 擷取基準網路流量

在你著手排查異常模式之前,需要先有一個參考點。你必須了解伺服器上的正常網路流量是什麼樣子。研究人員早已將這個思路系統化。Qayyum 等人提出了一種基於統計分析的異常偵測技術,其核心在於建立正常流量模型。他們先設定正常基準,任何偏離該基準的行為都被視為異常流量。這個過程會增強你的判斷信心。你會知道伺服器在健康運作時應該呈現怎樣的狀態。

Qayyum 等人提出了一種基於統計分析的網路異常流量偵測技術,其重點在於建立正常流量模型並設定正常基準。在進行異常流量偵測時,任何偏離該基準的行為都會被視為異常流量。

你也可以用 tcpdump 採用相同的思路。先在正常運作期間擷取流量。Tcpdump 為此提供了一個輕量級工具。你從日常業務時段開始抓包,再透過分析這些抓包結果,學習典型流量模式。

為介面抓包設定 Tcpdump

第一步是選擇正確的網路介面。執行 tcpdump -D 列出可用介面。找到你的外部網路介面,通常名稱類似 eth0。回送介面處理的是內部流量,而你需要的是連接伺服器與外部網路的那個介面。

如果系統中尚未安裝 tcpdump,請使用套件管理器安裝。在 Debian 系統上,執行 apt-get install tcpdump。在 CentOS 系統上,執行 yum install tcpdump。

接著測試環境是否設定正確。執行 tcpdump -i eth0 -c 100。此指令會記錄 100 個封包。Tcpdump 會立即顯示每個封包的旗標與位址資訊,你可以即時看到輸出。

觀察正常網路流量模式

現在開始蒐集基準流量。選擇一個業務正常、負載平穩的時段,避免尖峰期。執行 tcpdump -i eth0 -c 1000 -w baseline.pcap。此指令會靜默擷取 1000 個封包,並將其儲存到檔案中。這些資料將構成你的基準,稍後你可以藉助 tcpdump 過濾器進行分析。

請仔細研究這份基準資料。觀察流量組成。Web 伺服器通常會看到大量帶有 SYN 和 ACK 旗標的封包,而且大多數連線都能完成三向交握。封包速率會保持平穩,來源位址也會以可預測的方式重複出現。這些網路流量揭示了典型模式。特別要注意封包速率,正常伺服器通常表現為穩定速率,而突然增加則可能意味著問題。同時記錄正常時段常見的來源 IP 位址。

這份基準將有助於後續故障排除。將新的抓包結果與基準比對,任何差異都可能是危險訊號。大量 SYN 封包會非常顯眼,ICMP 回應風暴也會一目了然。這些過濾器可以幫助你快速隔離特定模式。你的抓包技能會讓你更早發現問題。

使用 tcpdump 擷取並分析流量模式

現在,你要從建立基準轉向實際偵測。你將使用 tcpdump 來擷取並分析伺服器上的網路流量。關鍵技能在於編寫正確的過濾器。Tcpdump 可以讓你精準擷取並篩選網路封包,這些過濾器能夠將特定異常從正常網路流量中分離出來。你可以搭配 -l 參數進行即時監控,該參數會啟用行緩衝,讓輸出在封包到達時立即顯示。將過濾器與即時輸出結合使用,能夠快速發現異常。

過濾 SYN 洪泛與連接埠掃描

SYN 洪泛會留下非常清楚的跡象。你會看到大量 SYN 封包,卻幾乎沒有後續 ACK。你需要一個只擷取這些初始交握請求的過濾器。Berkeley Packet Filter 語法,也稱 berkeley packet filter syntax,允許你基於協定標頭中的位元組偏移編寫過濾條件。這種方法能對封包選擇進行精細控制。

先從即時過濾開始。執行 tcpdump -i eth0 -l "tcp[13] == 0x02"。你會看到所有進入伺服器的 SYN 封包。正常伺服器通常會有穩定的 SYN 流量,而在遭遇洪泛時,你會看到短時間內出現大量 SYN,卻沒有對應連線完成後的 ACK。若某一來源每秒發出數百個以上 SYN 封包,就可能意味著攻擊。你要持續觀察速率變化,並與之前建立的基準對照。差異通常會立刻顯現出來。

連接埠掃描的表現則不同。掃描器會依序向不同連接埠分別送出 SYN 封包。你會在短時間內看到某一來源位址存取許多不同的目標連接埠。執行 tcpdump -i eth0 -l -nn "tcp[13] == 0x02"。參數 -nn 會阻止 DNS 解析,這樣你就能清楚看到原始 IP 位址和連接埠號碼。如果一個 IP 在短時間內探測大量連接埠,通常表示它正在進行偵察。你可以藉助 tcpdump 依連接埠過濾,從而更清楚地看到這一模式。

你還可以依主機過濾,單獨鎖定一個可疑來源。在過濾條件中加入 and src host X.X.X.X。Tcpdump 就會將視野縮小到這一個攻擊者。這樣你便能更細緻地分析其行為模式、掃描方式和目標選擇。

識別 UDP 和 ICMP 異常

UDP 異常需要不同的過濾器。DNS 放大攻擊大量依賴 UDP。攻擊者會向 DNS 伺服器送出一個很小的查詢請求,並偽造來源 IP 位址,接著該伺服器會將一個更大的回應發給受害者。執行 tcpdump -i eth0 -l "udp dst port 53"。你會看到大量發往 53 連接埠的 UDP 封包,且大小各不相同。正常查詢通常會產生小於 512 位元組的回應,而更大的回應則可能意味著放大攻擊。你可以統計回應大小,以確認這種異常。

ICMP 異常則包括 ping 洪泛。攻擊者會以極高頻率送出 ICMP 回應請求。伺服器每次都回應,因而消耗頻寬。執行 tcpdump -i eth0 -l "icmp and icmp[icmptype] == 8"。此過濾器只擷取回應請求。正常伺服器通常只會偶爾收到來自監控工具的 ping,而洪泛攻擊則會表現為某一來源每秒送出數百個請求,這種流量模式會非常明顯。

在擷取並分析網路流量時,你還應關注 TTL 值。正常 ICMP 封包的 TTL 通常會因來源不同而保持一定規律。如果同一個來源 IP 的 TTL 突然發生變化,就可能意味著來源位址被偽造。Tcpdump 可以幫助你識別這種不一致。

這些過濾器構成了你的偵測工具箱。你需要反覆練習,熟悉每一種過濾方式,並根據自身環境進行調整。這個過程離不開持續抓包。你會逐漸掌握如何有效地擷取並分析流量,學會為發現模式而分析網路流量,也學會為事後復盤而保留抓包資料。你要把 tcpdump 當作主要工具,認真分析每一份抓包結果,定期重複這些擷取和分析過程。持續練習會不斷增強你的判斷能力。

解讀 Tcpdump 輸出中的危險訊號

如果不會正確解讀,原始輸出本身意義並不大。你必須逐項分析每個欄位,並將其與基準進行比對。只有這樣,大片的文字才會轉化為清楚的診斷結論。

解碼旗標、TTL 和封包速率

TCP 旗標欄位講述了每一條連線的故事。一個健康的交握過程應當依序出現 SYN、SYN-ACK、ACK。你需要在 tcpdump 輸出中觀察這一序列。如果看到一連串 SYN 卻沒有回應,就可能表示遭遇了洪泛攻擊,或者目標連接埠被阻斷。RST 旗標表示連線被拒絕。如果某一主機發出大量 RST,則往往意味著有掃描器正在探測關閉的連接埠。

TTL 值可以反映封包的大致來源。不同作業系統會設定各自預設的 TTL。在正常情況下,同一來源發出的封包 TTL 往往較為一致。如果某個位址的 TTL 突然變化,就可能暗示存在偽裝或欺騙。攻擊者很少能精確模擬被冒充主機原本的 TTL。

封包速率通常是最清楚的異常訊號。Tcpdump 會在每一行輸出時間戳記。你可以據此統計每秒到達的封包數量。基準通常會呈現穩定節奏,而一旦出現三倍以上的突增,就值得警惕。你可以使用帶有 -tttt 參數的 tcpdump 來顯示完整時間戳記,從而更準確地衡量封包之間的時間間隔。如果你看到成千上萬的封包之間間隔極短,那往往意味著它們來自自動化工具,而非真實使用者行為。

識別重複連線與異常來源

重複行為會暴露意圖。一個正常用戶端會建立一條連線,完成操作後結束;而攻擊者可能會在幾秒鐘內建立數百條連線。你可以對單一來源位址進行過濾,然後統計其出現次數。Tcpdump 藉助主機過濾器就能輕鬆做到這一點。接著,你再結合連接埠和旗標模式進行分析。

異常來源通常會以多種方式暴露出來。你可能會看到來自你並無使用者分布地區的位址;也可能看到內部位址突然與從未聯繫過的外部主機通訊;還可能看到某一位址依序存取大量連接埠。不同模式反映不同威脅。一個位址依次探測所有連接埠,通常是偵察行為;一個位址反覆送出相同載荷,則可能是暴力嘗試。

你還應關注半開連線。這類連線表現為只看到 SYN,卻沒有完成最終 ACK。當伺服器資源耗盡時,這類連線會不斷堆積。Tcpdump 會在旗標欄中清楚地顯示它們。你可以使用過濾器將這些封包單獨提取出來,並測量它們的數量。如果計數持續上升,那就表示問題正在惡化。

你的目標是診斷,而不是猜測。要將每一個危險訊號都與基準進行比對,再透過第二次抓包加以確認,隨後基於充分證據採取行動。

抓包中的真實攻擊模式

偵測 UDP 異常(DNS 放大、Ping 洪泛)

你可以使用 tcpdump 識別 DNS 放大攻擊。攻擊者會向開放解析器送出一個很小的查詢請求,並偽造來源 IP 位址,而解析器會將更大的回應發回你的伺服器。你可以透過過濾 UDP 53 連接埠流量來偵測這一現象,重點關注超過 512 位元組的回應。正常 DNS 回應通常低於這一門檻,而超大回應則可能意味著濫用。Tcpdump 會顯示每個超大回應的來源位址。如果你看到同一個解析器持續向同一目標送出大量大封包回應,就可以確認攻擊正在進行。你還可以追蹤封包速率,以衡量攻擊強度。

Ping 洪泛會表現為 ICMP 回應請求的密集突發。使用 tcpdump 搭配 ICMP type 8 回應請求過濾器執行,就能將回應請求從其他資料中分離出來。接著查看介面上的到達速率。健康伺服器通常只會收到來自監控工具的零星 ping,而洪泛攻擊則會在幾秒內讓某個來源發來數百個回應請求。Tcpdump 會擷取所有這些資料。你還可以檢查 TTL 值以判斷是否存在偽造,不同 TTL 出現在同一個來源 IP 上,通常表示位址是假的。

緩慢連線嘗試(低視窗大小 SYN 封包)

有些攻擊者會採用更隱蔽的掃描技術。他們送出視窗大小很低的 SYN 封包,故意放慢連線建立過程。標準掃描器通常使用預設視窗值,而異常偏低的視窗值往往意味著這是經過精心構造的封包。攻擊者試圖透過更接近正常流量的方式來規避偵測。正常連線通常會針對特定作業系統呈現較穩定的視窗大小,而 tcpdump 可以幫助你識別這些異常嘗試。

Tcpdump 讓這類分析變得相對直接。視窗大小位於 TCP 標頭的第 14-15 位元組。你可以執行一個過濾器,專門篩選視窗值低於 1024 的 SYN 段。Tcpdump 會顯示每個可疑封包的來源位址和目標位址。再將其出現頻率與基準比較。合法用戶端很少會送出如此小視窗的封包。如果同一個來源突然大量送出這類封包,就可能意味著緩慢掃描。你可以記錄該來源位址並進行封鎖,同時保存抓包資料留待後續分析。Tcpdump 為你提供了採取行動所需的證據。

儲存抓包以用於事後流量分析

即時監控可以幫助你第一時間發現問題,但當封包高速飛過時,你無法在當下研究每一個細節。將抓包結果儲存下來,便意味著你還有第二次分析機會。Tcpdump 透過檔案輸出支援這種工作方式,能夠為鑑識分析保留原始證據。這種做法將即時偵測與深入調查分離開來。

將抓包結果寫入檔案

Tcpdump 會將封包儲存為 pcap 格式。這一標準格式會保留原始標頭和載荷,其他分析工具也可以直接讀取,無需轉換。你可以使用 -w 參數建立 pcap 檔案。例如,tcpdump -i eth0 -w incident.pcap 會將所有傳入資料寫入檔案。Tcpdump 會直接寫入磁碟,而不是將結果輸出到螢幕,這樣可以在高封包速率下降低系統負擔,並幫助你的伺服器持續擷取流量而不輕易遺失封包。

你還可以使用 -C 參數控制檔案大小。Tcpdump 會在檔案達到指定 MB 大小時自動建立新檔案,這樣可以避免單一 pcap 資料集過大而難以管理。你也可以用 -c 參數限制抓包總數,到達指定數量後 tcpdump 會自動停止。請為抓包檔案使用有意義的命名方式,例如包含日期、時間和事件類型。這樣 tcpdump 儲存下來的證據會更有條理,後續在與其他日誌進行關聯分析時,也能更快定位到特定抓包。這一習慣在事後報告中尤其有價值。

為 Wireshark 審查準備抓包檔案

命令列分析適合快速檢查,而複雜流量則需要更豐富的視覺化視角。為此,你可以在 Wireshark 中開啟儲存好的 pcap 檔案。Wireshark 會自動解碼協定,並提供協定解碼器與流向圖等工具,讓你能更清楚地看到連線建立與通訊順序,從而了解一台主機如何隨時間與另一台主機互動。

TLS 交握細節也會更加清楚。Wireshark 可以解碼版本、密碼套件和警示訊息,而 tcpdump 無法以易讀方式呈現這些內容。這樣你就能獲得更完整的網路流量全貌。匯入 pcap 檔案也很簡單,只需點選 File > Open。隨後套用顯示過濾器,即可隔離特定工作階段。儲存與讀取抓包檔案同樣有助於長期保留。你可以基於合規或團隊訓練需求保留 pcap 檔案,讓事件回應團隊在之後基於同一份證據進行復盤。這種方法能夠確保組織內部分析口徑一致。請經常練習使用 tcpdump,以不斷提升技能。

Tcpdump 本身非常輕量。一旦你知道該重點關注什麼——旗標、速率和來源——它就能幫助你發現異常行為。建議先在測試環境中練習。先建立基準,再將新的抓包結果與之比較。這樣的習慣會不斷提升你排查真實問題時的敏銳度。

然後繼續深入。你可以透過指令碼實現自動蒐集,把這些檔案送到 SIEM,或者嘗試使用 Bro 與 Zeek 做更深層的偵測。每前進一步,都是在把原始封包轉化為可執行的答案。今天就開始抓包吧——你的網路日誌裡,也許已經藏著故障的第一道徵兆。

常見問題

我怎麼判斷伺服器是否正在遭受 SYN 洪泛攻擊?

你會看到大量 SYN 封包快速湧入,卻沒有對應的 ACK 回應。執行 tcpdump -i eth0 -l "tcp[13] == 0x02" 並觀察速率。如果某一來源每秒達到數百個,就可能是在攻擊。將這種表現與你的基準抓包結果進行比較。

Tcpdump 能顯示 DNS 放大攻擊是否正在發生嗎?

可以。過濾 UDP 53 連接埠流量,並關注回應大小。正常回應通常較小,而某個解析器持續向單一目標送出超大回應,則表示存在濫用行為。Tcpdump 會顯示每個大回應的來源位址。

為什麼 pcap 檔案在事後分析中很有用?

Pcap 檔案保留了原始標頭和載荷。你之後可以在 Wireshark 中開啟它,查看協定解碼結果和流向圖。團隊成員也能基於同一份證據進行復盤。建議按照日期和事件類型對 pcap 檔案進行分類整理,以便日後快速檢索。

為什麼攻擊者會送出低視窗大小的 SYN 封包?

較低的視窗大小會故意拖慢連線交握過程。標準掃描器通常使用預設值,因此這類異常偏低的視窗值往往代表更隱蔽的掃描行為。如果同一個來源突然大量送出這種構造過的封包,就很可能是一次隱蔽掃描。你可以透過過濾較小視窗的 SYN 段來發現它們。

我應該多久抓一次流量,才能建立可靠的基準?

應當在日常業務正常運作期間,連續數天進行抓包。第一次採樣時盡量避開尖峰期。穩定的封包速率和可預測的來源位址會構成你的參考基準。之後任何偏離該模式的現象,都值得你進一步調查。

您的免費試用從這裡開始!
聯繫我們的團隊申請實體主機服務!
註冊成為會員,尊享專屬禮遇!
您的免費試用從這裡開始!
聯繫我們的團隊申請實體主機服務!
註冊成為會員,尊享專屬禮遇!
Telegram Teams