ฉันจะแสดงรายการพอร์ตที่เปิดอยู่บน Debian ได้อย่างไร


58

คำสั่งให้แสดงรายการพอร์ตที่เปิดอยู่บนเซิร์ฟเวอร์ Debian คืออะไร

ฉันพยายามnetstat -a | egrep 'Proto|LISTEN'แต่ฉันต้องการบางสิ่งที่เฉพาะเจาะจงยิ่งขึ้นซึ่งแสดงหมายเลขพอร์ตจริง

คำตอบ:


86
 netstat -pln

-lจะแสดงรายการพอร์ตที่รับฟัง-pจะแสดงกระบวนการ-nจะแสดงหมายเลขพอร์ตแทนชื่อ เพิ่ม-tเพื่อแสดงพอร์ต TCP เท่านั้น


12
เพื่อให้การ-pทำงานอย่างถูกต้องคุณจำเป็นต้องเรียกใช้ในฐานะรูทดังนั้นsudo netstat -tplnมิฉะนั้นคอลัมน์กระบวนการจะไม่เป็นประโยชน์อย่างยิ่งเว้นแต่คุณเป็นผู้ใช้ที่กระบวนการรับฟังพอร์ตที่กำหนด
cjc

21

lsof -i -P

ตรวจสอบ man page เพื่อดูlsofว่าไม่มีปัญหาการขาดแคลนตัวเลือก -Pแสดงหมายเลขพอร์ตแทนที่จะเป็นชื่อที่มาจาก/etc/servicesRun as root แต่จะให้รายการการเชื่อมต่อเครือข่ายที่ใช้งานและสถานะของพวกเขา (การฟัง, การจัดตั้งเป็นต้น)


นี่ควรเป็นคำตอบที่ถูกต้อง netstat ไม่ได้ติดตั้งโดยค่าเริ่มต้น
José

10

สิ่งที่เกือบทุกคนต้องการ (TCP และ UDP) netstat -tunlpคือ

ฉันใช้มันทุกวันอาจจะทุกชั่วโมง แฮ็ค 'lsof' นั้นพกพาได้มากกว่า (ทำงานบน Solaris ด้วย) แต่สำหรับ Debian มันไม่ใช่แพ็คเกจที่จำเป็นคุณต้องติดตั้งมัน


sudoใช่และเรียกใช้งานผ่านทาง
Martijn Heemels

1
เพื่อนของฉันสอนให้ฉันจำคำสั่งนี้ด้วยชื่อดอกไม้netstat -tulpenFlag eให้ข้อมูลเพิ่มเติม
Deele

1
และตอนนี้ในปี 2018 กล่อง Debian ฉันสดไม่ได้แต่มีnetstat lsof:)
Jason

10

ฉันเป็นแฟนตัวยงnetstat -ntlpและlsof -iทั้งคู่พูดถึงแล้ว

ใหม่ (ER) คำสั่งให้ฉันเป็นเอสเอส

ภาวนาเป็นเช่น:

ss -l

เป็นการดีที่มีตัวเลือกในแง่ของคำสั่งและแฟล็ก


1
ตัวเลือกที่ดีโดยเฉพาะอย่างยิ่งตั้งแต่ภาชนะ Mongo นักเทียบท่า (และอื่น ๆ อีกมากมายสมมุติ) มี ss แต่ไม่ netstat หรือ lsof
Foon

ฉันเริ่มใช้สิ่งนี้เป็นคำถามสัมภาษณ์ อาจถาม 40 คนที่แตกต่างกัน จนถึงขณะนี้ยังไม่มีใครได้พูดถึงเอสเอส ฉันถามเหมือน OP แล้วถ้าพวกเขาตอบฉันพูดว่า "โอเคฉันไป X ตอนนี้คุณจะทำอย่างไร" จนกว่าจะหมดความคิด
dmourati

6

คุณทำได้:

netstat -an | egrep 'Proto|LISTEN'

หรือเพียงแค่:

netstat -anl

ซึ่งจะทำให้คุณฟังซ็อกเก็ตทั้งหมดในระบบ


2
นี่จะเป็นทางออกที่ดีที่สุด (โดยที่ "ดีที่สุด" ถูกกำหนดให้เป็น "ทำงานในช่วงกว้างที่สุดของระบบ" (BSD, Linux, AIX, Solaris, ฉันเชื่อว่า HP-UX))
voretaq7

0

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


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

8
ฉันไม่ได้ลงคะแนนเลย แต่บน serverfault เหมือนกับ stack-exchange โดยทั่วไปเราคาดหวังให้คุณใส่คำตอบที่นี่ไม่ใช่แค่ลิงค์ไปยังที่อื่น ลิงก์หายไปตามกาลเวลา แต่เราต้องการให้เนื้อหาใน SF ยังคงมีคุณค่าเมื่อลิงก์ตาย
Zoredache

บรรทัดเดียวของรหัสที่ลิงค์ด้านบนมีsudo nmap -T4 -A -v 192.168.1.1/24ทุกอย่างที่เป็นไป - ทำอย่างนั้นโดยไม่มีรายละเอียดใด ๆ ... มันเหมือนกับการอ่านปกหลังของหนังสือ - คำมากมายที่ไม่มีเนื้อสัตว์
KingsInnerSoul

0

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


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.