จะปิดพอร์ตที่เปิดใน Ubuntu ได้อย่างไร


31

ฉันต้องการคำสั่งเพื่อแสดงรายการพอร์ตที่เปิดอยู่ทั้งหมดในพีซีของฉันและอีกคำสั่งหนึ่งเพื่อปิดพอร์ต

ข้อเสนอแนะใด ๆ

ฉันต้องปิดพอร์ตของแอปพลิเคชั่นบางตัว

คำตอบ:


34

netstat สามารถใช้เพื่อดูสถิติพอร์ต

sudo netstat -lnp

รายการทั้งหมดL isteningพอร์ตn umbersกับพี rocessรับผิดชอบในแต่ละ ยุติหรือฆ่ากระบวนการเพื่อปิดพอร์ต ( kill, pkill... )

โดยไม่ต้องยุติกระบวนการมันเป็นไปไม่ได้! . ดูด้วยตนเองปิดพอร์ตจาก commandline วิธีอื่นที่คุณอาจมองหาโซลูชันไฟร์วอลล์ (แยกพอร์ตนั้นออกจากเครือข่าย)


ฉันจำเป็นต้องปิดพอร์ต แต่ไม่ได้ฆ่าแอปพลิเคชัน
nux

เป็นไปได้ที่จะปิดพอร์ตเป็นพอร์ตภายนอก
sergzach


12

สำหรับการปิดพอร์ตที่เปิดอยู่ใน Ubuntu คุณสามารถใช้คำสั่งด้านล่าง

sudo kill $(sudo lsof -t -i:3000)

ในสถานที่ของ3000คุณสามารถระบุหมายเลขพอร์ตของคุณ

lsof คำสั่งจะให้ข้อมูลเกี่ยวกับไฟล์ที่เปิดโดยกระบวนการ

-t : แฟล็กนี้ระบุว่า lsof ควรสร้างเอาต์พุตแบบสั้นด้วยตัวบ่งชี้กระบวนการเท่านั้นและไม่มีส่วนหัว - เช่นเพื่อผลลัพธ์อาจถูกไพพ์ไปที่ kill (1) ตัวเลือกนี้เลือกตัวเลือก -w

-i : แฟล็กนี้เลือกรายการไฟล์ที่มีที่อยู่อินเทอร์เน็ตตรงกับที่อยู่ที่ระบุใน i หากไม่ได้ระบุที่อยู่ตัวเลือกนี้จะเลือกรายชื่อไฟล์เครือข่ายอินเทอร์เน็ตและ x.25 (HP-UX) ทั้งหมด


8

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

ขึ้นอยู่กับแอปพลิเคชั่นบางตัวอนุญาตให้ปิดใช้งานพอร์ตบางตัว (คิดว่า dovecot และ pop3 หรือ imap port) และบางตัวก็ไม่สามารถทำได้ แอปพลิเคชั่นบางตัวยังสามารถกำหนดค่าให้รับฟังได้เฉพาะบน localhost หรือที่อยู่เฉพาะ


6

คุณสามารถใช้netstat -nalpและlsof -i:portเครื่องมือในการระบุกระบวนการ / ไบนารีหลังเปิดพอร์ต

ถ้าคุณต้องการปิดพอร์ตคุณจะต้องฆ่ากระบวนการหรือหยุดบริการที่เกี่ยวข้องหากคุณต้องการใช้บริการเฉพาะกล่องภายในเครื่องของคุณคุณสามารถกำหนดค่าบริการที่เกี่ยวข้องเพื่อฟังบน localhost / 127.0.0.1 ไม่ได้อยู่ในไอพีที่มีอยู่ทั้งหมด (0.0.0.0)


1

หากพอร์ตของคุณเปิดขึ้นเนื่องจากการเรียกใช้บริการเช่น vsftpd สำหรับบริการ ftp คุณสามารถหยุดและปิดใช้งานบริการเพื่อให้ไฟล์ปฏิบัติการที่เกี่ยวข้องกับบริการนั้นถูกฆ่าเช่นกัน ในระบบพื้นฐานเดเบียนคุณสามารถเรียกใช้คำสั่งร้องเพื่อทำลายบริการ:

service SERVICENAME stop
systemctl disable SERVICENAME

โชคดี


ขอขอบคุณ. ฉันตรวจสอบชื่อบริการsudo netstat -lnpแล้วและรันคำสั่งที่แนะนำของคุณเพื่อหยุดพอร์ต 22 :)
Rishabh Agrahari

1

หากต้องการแสดงรายการพอร์ตที่เปิดอยู่ทั้งหมด:

netstat -lnp

วิธีปิดพอร์ตที่เปิดอยู่:

fuser -k port_no/tcp

ตัวอย่าง:

fuser -k 8080/tcp

คุณสามารถใช้ทั้งในsudoกรณีที่จำเป็น

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