วิธีใช้คำสั่ง Netstat บน Mac

สารบัญ:

วิธีใช้คำสั่ง Netstat บน Mac
วิธีใช้คำสั่ง Netstat บน Mac
Anonim

ต้องรู้

  • ในการเรียกใช้ netstat และดูรายละเอียดข้อมูลเครือข่าย Mac ของคุณ ให้เปิดหน้าต่าง Terminal ใหม่ พิมพ์ netstat แล้วกดEnter.
  • จำกัดเอาต์พุตของ netstat ด้วยแฟล็กและตัวเลือก หากต้องการดูตัวเลือกที่ใช้ได้ของ netstat ให้พิมพ์ man netstat ที่พร้อมท์คำสั่ง
  • ใช้คำสั่ง lsof เพื่อชดเชยฟังก์ชันที่ขาดหายไปหรือจำกัดของ netstat ซึ่งรวมถึงการแสดงไฟล์ที่เปิดอยู่ในแอปต่างๆ ในปัจจุบัน

บทความนี้อธิบายวิธีเรียกใช้คำสั่ง netstat Terminal ใน macOS เพื่อให้คุณสามารถดูข้อมูลโดยละเอียดเกี่ยวกับการสื่อสารเครือข่ายของ Mac ของคุณ รวมถึงวิธีที่ Mac ของคุณพูดคุยกับโลกภายนอก ในทุกพอร์ตและทุกแอปพลิเคชัน

วิธีรัน Netstat

การเรียนรู้วิธีใช้ netstat สามารถช่วยให้คุณเข้าใจการเชื่อมต่อที่คอมพิวเตอร์ของคุณสร้างขึ้นและทำไม คำสั่ง netstat พร้อมใช้งานบน Mac โดยค่าเริ่มต้น คุณไม่จำเป็นต้องดาวน์โหลดหรือติดตั้ง

การรัน netstat:

  1. ไปที่ Finder > Go > ยูทิลิตี้.

    Image
    Image
  2. ดับเบิ้ลคลิก Terminal.

    Image
    Image
  3. ในหน้าต่างเทอร์มินัลใหม่ พิมพ์ netstat แล้วกด Return (หรือ Enter) เพื่อรันคำสั่ง

    Image
    Image
  4. ข้อความจำนวนมากจะเริ่มเลื่อนบนหน้าจอของคุณ หากคุณไม่ได้ใช้แฟล็กที่มีอยู่ (ดูด้านล่าง) netstat จะรายงานการเชื่อมต่อเครือข่ายที่ใช้งานบน Mac ของคุณเมื่อพิจารณาจากจำนวนฟังก์ชันที่อุปกรณ์เครือข่ายสมัยใหม่ทำงาน คุณจึงคาดว่ารายการจะมีความยาว รายงานมาตรฐานสามารถเรียกใช้ได้มากกว่า 1, 000 บรรทัด

    Image
    Image

ธงและตัวเลือกของ Netstat

การกรองเอาต์พุตของ netstat เป็นสิ่งจำเป็นในการทำความเข้าใจว่าเกิดอะไรขึ้นกับพอร์ตที่ใช้งานของ Mac ของคุณ แฟล็กในตัวของ Netstat ให้คุณตั้งค่าตัวเลือก โดยจำกัดขอบเขตของคำสั่ง

หากต้องการดูตัวเลือกที่มีอยู่ทั้งหมดของ netstat ให้พิมพ์ man netstat ที่หน้าจอพร้อมรับคำสั่งเพื่อแสดงหน้า man ของ netstat (ย่อมาจาก "manual") คุณยังสามารถดู man page ของ netstat เวอร์ชันออนไลน์ได้

ไวยากรณ์

โปรดทราบว่า netstat บน macOS ไม่ทำงานแบบเดียวกับ netstat บน Windows และ Linux การใช้แฟล็กหรือไวยากรณ์จากการใช้งาน netstat อาจไม่ส่งผลให้เกิดการทำงานที่คาดไว้

ในการเพิ่มแฟล็กและตัวเลือกให้กับ netstat บน macOS ให้ใช้ไวยากรณ์ต่อไปนี้:

netstat [-AabdgiLlmnqrRsSvWx] [-c queue] [-f address_family] [-I interface] [-p protocol] [-w wait]

หากการจดชวเลขด้านบนดูไม่เข้าใจโดยสิ้นเชิง ให้เรียนรู้วิธีอ่านไวยากรณ์คำสั่ง

ธงที่มีประโยชน์

นี่คือธงที่ใช้บ่อยที่สุด:

  • -a รวมพอร์ตเซิร์ฟเวอร์ในเอาต์พุตของ netstat ซึ่งไม่รวมอยู่ในเอาต์พุตเริ่มต้น
  • - g แสดงข้อมูลที่เกี่ยวข้องกับการเชื่อมต่อแบบหลายผู้รับ
  • อินเทอร์เฟซ

  • -I ให้ข้อมูลแพ็คเก็ตสำหรับอินเทอร์เฟซที่ระบุ อินเทอร์เฟซที่มีอยู่ทั้งหมดสามารถดูได้ด้วยแฟล็ก -i แต่โดยทั่วไปแล้ว en0 จะเป็นอินเทอร์เฟซเครือข่ายขาออกเริ่มต้น (หมายเหตุตัวพิมพ์เล็ก)
  • -n ระงับป้ายชื่อที่อยู่ระยะไกล สิ่งนี้จะเพิ่มความเร็วเอาต์พุตของ netstat ในขณะที่กำจัดข้อมูลที่จำกัดเท่านั้น
  • โปรโตคอล

  • -p แสดงรายการการรับส่งข้อมูลที่เชื่อมโยงกับโปรโตคอลเครือข่ายเฉพาะ รายการโปรโตคอลทั้งหมดมีอยู่ที่ /etc/protocols แต่สิ่งที่สำคัญที่สุดคือ udp และ tcp.
  • - r แสดงตารางการเราต์ แสดงว่าแพ็กเก็ตถูกส่งผ่านเครือข่ายอย่างไร
  • - s แสดงสถิติเครือข่ายสำหรับโปรโตคอลทั้งหมด ไม่ว่าโปรโตคอลจะทำงานอยู่หรือไม่
  • -v เพิ่มความฟุ่มเฟือย โดยเฉพาะอย่างยิ่งโดยการเพิ่มคอลัมน์ที่แสดง ID กระบวนการ (PID) ที่เกี่ยวข้องกับแต่ละพอร์ตที่เปิดอยู่

ตัวอย่าง Netstat

ลองพิจารณาตัวอย่างเหล่านี้:

netstat -apv TCP

คำสั่งนี้จะส่งคืนเฉพาะการเชื่อมต่อ TCP บน Mac ของคุณ รวมถึงพอร์ตที่เปิดอยู่และพอร์ตที่ใช้งานอยู่ นอกจากนี้ยังใช้เอาต์พุตแบบละเอียด โดยแสดงรายการ PID ที่เชื่อมโยงกับแต่ละการเชื่อมต่อ

netstat -a | grep -i "ฟัง"

การรวมกันของ netstat และ grep เผยให้เห็นพอร์ตที่เปิดอยู่ ซึ่งเป็นพอร์ตที่กำลังฟังข้อความอยู่ อักขระไปป์ | ส่งเอาต์พุตของคำสั่งหนึ่งไปยังคำสั่งอื่นที่นี่ ผลลัพธ์ของ netstat ไปป์ไปยัง grep ให้คุณค้นหาด้วยคำหลัก "ฟัง" และพบผลลัพธ์

การเข้าถึง Netstat ผ่านยูทิลิตี้เครือข่าย

คุณยังสามารถเข้าถึงฟังก์ชันบางอย่างของ netstat ได้ผ่านแอป Network Utility ซึ่งรวมอยู่ในเวอร์ชัน macOS จนถึง Catalina (ไม่รวมอยู่ใน Big Sur)

ในการไปที่ Network Utility ให้พิมพ์ Network Utility ใน Spotlight Search เพื่อเปิดแอป จากนั้นเลือกแท็บ Netstat เพื่อเข้าถึง อินเทอร์เฟซแบบกราฟิก

Image
Image

ตัวเลือกในยูทิลิตี้เครือข่ายนั้นจำกัดมากกว่าตัวเลือกที่มีให้ผ่านทางบรรทัดคำสั่ง การเลือกปุ่มตัวเลือกทั้งสี่ปุ่มจะรันคำสั่ง netstat ที่ตั้งไว้ล่วงหน้าและแสดงเอาต์พุต

คำสั่ง netstat สำหรับแต่ละปุ่มตัวเลือกมีดังนี้:

  • แสดงข้อมูลตารางเส้นทาง วิ่ง netstat -r.
  • แสดงสถิติเครือข่ายที่ครอบคลุมสำหรับแต่ละโปรโตคอล ทำงาน netstat -s.
  • แสดงข้อมูลมัลติคาสต์ วิ่ง netstat -g.
  • แสดงสถานะของการเชื่อมต่อซ็อกเก็ตปัจจุบันทั้งหมด ทำงาน netstat.
Image
Image

เสริม Netstat ด้วย Lsof

การใช้งาน macOS ของ netstat ไม่ได้รวมฟังก์ชันการทำงานที่ผู้ใช้คาดหวังและต้องการมากนัก แม้ว่าจะมีการใช้งาน แต่ netstat ก็ไม่มีประโยชน์ใน macOS เช่นเดียวกับใน Windows คำสั่งอื่น lsof แทนที่ฟังก์ชันการทำงานที่ขาดหายไปส่วนใหญ่

Lsof แสดงไฟล์ที่เปิดอยู่ในแอพ คุณยังใช้เพื่อตรวจสอบพอร์ตที่เปิดที่เกี่ยวข้องกับแอปได้อีกด้วย เรียกใช้ lsof -i เพื่อดูรายการแอปพลิเคชันที่สื่อสารผ่านอินเทอร์เน็ต โดยทั่วไปแล้วจะเป็นเป้าหมายเมื่อใช้ netstat บนเครื่อง Windows อย่างไรก็ตาม วิธีเดียวที่มีความหมายในการทำงานให้สำเร็จบน macOS ไม่ใช่กับ netstat แต่ใช้กับ lsof

Image
Image

Lsof ธงและตัวเลือก

การแสดงทุกไฟล์ที่เปิดอยู่หรือการเชื่อมต่ออินเทอร์เน็ตนั้นมักจะใช้คำฟุ่มเฟือย นั่นคือเหตุผลที่ lsof มาพร้อมกับแฟล็กเพื่อจำกัดผลลัพธ์ด้วยเกณฑ์เฉพาะ สิ่งที่สำคัญที่สุดอยู่ด้านล่าง

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับธงและคำอธิบายทางเทคนิคเพิ่มเติม โปรดดูที่หน้า man ของ lsof หรือเรียกใช้ man lsof ที่ข้อความแจ้งเทอร์มินัล

  • -i แสดงการเชื่อมต่อเครือข่ายแบบเปิดและชื่อของกระบวนการที่ใช้การเชื่อมต่อ การเพิ่ม 4 ใน -i4 แสดงเฉพาะการเชื่อมต่อ IPv4 การเพิ่ม 6 แทน (-i6 ) จะแสดงเฉพาะการเชื่อมต่อ IPv6
  • ธง - i สามารถขยายเพื่อระบุรายละเอียดเพิ่มเติมได้ -iTCP หรือ -iUDP ส่งกลับเฉพาะการเชื่อมต่อ TCP และ UDP -iTCP:25 ส่งคืนเฉพาะการเชื่อมต่อ TCP บนพอร์ต 25 ช่วงของพอร์ตสามารถระบุได้ด้วยเครื่องหมายขีด เช่น -iTCP:25-50
  • Using [email protected] ส่งคืนเฉพาะการเชื่อมต่อไปยังที่อยู่ IPv4 1.2.3.4 สามารถระบุที่อยู่ IPv6 ในลักษณะเดียวกันได้ พรีเคอร์เซอร์ @ ยังสามารถใช้เพื่อระบุชื่อโฮสต์ในลักษณะเดียวกัน แต่ทั้งที่อยู่ IP ระยะไกลและชื่อโฮสต์ไม่สามารถใช้พร้อมกันได้
  • - s โดยทั่วไปจะบังคับให้ lsof แสดงขนาดไฟล์ แต่เมื่อจับคู่กับแฟล็ก - i - s จะทำงานต่างออกไป แต่จะอนุญาตให้ผู้ใช้ระบุโปรโตคอลและสถานะสำหรับคำสั่งที่จะส่งคืนแทน
  • - p จำกัด lsof เฉพาะ ID กระบวนการ (PID) สามารถตั้งค่า PID ได้หลายรายการโดยใช้คอมมอนส์ เช่น -p 123, 456, 789 นอกจากนี้ Process ID ยังสามารถยกเว้นด้วย ^ เช่น 123, ^456 ซึ่งจะไม่รวม PID 456 โดยเฉพาะ
  • - P ปิดการใช้งานการแปลงหมายเลขพอร์ตเป็นชื่อพอร์ต เร่งการส่งออก
  • -n ปิดการใช้งานการแปลงหมายเลขเครือข่ายเป็นชื่อโฮสต์ เมื่อใช้กับ -P ด้านบน จะช่วยเพิ่มความเร็วในการส่งออกของ lsof
  • - u ผู้ใช้ส่งคืนคำสั่งที่เป็นของผู้ใช้ที่มีชื่อเท่านั้น

ตัวอย่าง

ต่อไปนี้คือวิธีใช้ lsof

lsof -nP [email protected]:513

คำสั่งที่ดูซับซ้อนนี้แสดงรายการการเชื่อมต่อ TCP ที่มีชื่อโฮสต์ lsof.itap และพอร์ต 513. นอกจากนี้ยังรัน lsof โดยไม่มี การเชื่อมต่อชื่อกับที่อยู่ IP และพอร์ต ทำให้คำสั่งทำงานเร็วขึ้นอย่างเห็นได้ชัด

lsof -iTCP -sTCP:LISTEN

คำสั่งนี้ส่งคืนทุกการเชื่อมต่อ TCP พร้อมสถานะ LISTEN เผยให้เห็นพอร์ต TCP ที่เปิดอยู่บน Mac นอกจากนี้ยังแสดงรายการกระบวนการที่เกี่ยวข้องกับพอร์ตที่เปิดเหล่านั้น นี่คือการอัปเกรดที่สำคัญของ netstat ซึ่งแสดงรายการ PID มากที่สุด

Image
Image

sudo lsof -i -u^$(whoami)

Image
Image

คำสั่งเครือข่ายอื่นๆ

คำสั่งเครือข่ายเทอร์มินัลอื่นๆ ที่อาจสนใจในการตรวจสอบเครือข่ายของคุณ ได้แก่ arp, ping และ ipconfig

แนะนำ: