ฉันต้องการคำสั่งเพื่อแสดงรายการพอร์ตที่เปิดอยู่ทั้งหมดในพีซีของฉันและอีกคำสั่งหนึ่งเพื่อปิดพอร์ต
ข้อเสนอแนะใด ๆ
ฉันต้องปิดพอร์ตของแอปพลิเคชั่นบางตัว
ฉันต้องการคำสั่งเพื่อแสดงรายการพอร์ตที่เปิดอยู่ทั้งหมดในพีซีของฉันและอีกคำสั่งหนึ่งเพื่อปิดพอร์ต
ข้อเสนอแนะใด ๆ
ฉันต้องปิดพอร์ตของแอปพลิเคชั่นบางตัว
คำตอบ:
netstat
สามารถใช้เพื่อดูสถิติพอร์ต
sudo netstat -lnp
รายการทั้งหมดL isteningพอร์ตn umbersกับพี rocessรับผิดชอบในแต่ละ ยุติหรือฆ่ากระบวนการเพื่อปิดพอร์ต ( kill
, pkill
... )
โดยไม่ต้องยุติกระบวนการมันเป็นไปไม่ได้! . ดูด้วยตนเองปิดพอร์ตจาก commandline วิธีอื่นที่คุณอาจมองหาโซลูชันไฟร์วอลล์ (แยกพอร์ตนั้นออกจากเครือข่าย)
sudo ufw allow 22
sudo ufw deny 22
สำหรับการปิดพอร์ตที่เปิดอยู่ใน Ubuntu คุณสามารถใช้คำสั่งด้านล่าง
sudo kill $(sudo lsof -t -i:3000)
ในสถานที่ของ3000
คุณสามารถระบุหมายเลขพอร์ตของคุณ
lsof
คำสั่งจะให้ข้อมูลเกี่ยวกับไฟล์ที่เปิดโดยกระบวนการ
-t : แฟล็กนี้ระบุว่า lsof ควรสร้างเอาต์พุตแบบสั้นด้วยตัวบ่งชี้กระบวนการเท่านั้นและไม่มีส่วนหัว - เช่นเพื่อผลลัพธ์อาจถูกไพพ์ไปที่ kill (1) ตัวเลือกนี้เลือกตัวเลือก -w
-i : แฟล็กนี้เลือกรายการไฟล์ที่มีที่อยู่อินเทอร์เน็ตตรงกับที่อยู่ที่ระบุใน i หากไม่ได้ระบุที่อยู่ตัวเลือกนี้จะเลือกรายชื่อไฟล์เครือข่ายอินเทอร์เน็ตและ x.25 (HP-UX) ทั้งหมด
คุณสามารถใช้ iptables เพื่อบล็อกพอร์ตในระดับเครือข่ายโดยไม่ต้องปิดแอปพลิเคชัน พอร์ตจะยังคงเปิดอยู่ แต่จะไม่สามารถเข้าถึงได้
ขึ้นอยู่กับแอปพลิเคชั่นบางตัวอนุญาตให้ปิดใช้งานพอร์ตบางตัว (คิดว่า dovecot และ pop3 หรือ imap port) และบางตัวก็ไม่สามารถทำได้ แอปพลิเคชั่นบางตัวยังสามารถกำหนดค่าให้รับฟังได้เฉพาะบน localhost หรือที่อยู่เฉพาะ
คุณสามารถใช้netstat -nalp
และlsof -i:port
เครื่องมือในการระบุกระบวนการ / ไบนารีหลังเปิดพอร์ต
ถ้าคุณต้องการปิดพอร์ตคุณจะต้องฆ่ากระบวนการหรือหยุดบริการที่เกี่ยวข้องหากคุณต้องการใช้บริการเฉพาะกล่องภายในเครื่องของคุณคุณสามารถกำหนดค่าบริการที่เกี่ยวข้องเพื่อฟังบน localhost / 127.0.0.1 ไม่ได้อยู่ในไอพีที่มีอยู่ทั้งหมด (0.0.0.0)
หากพอร์ตของคุณเปิดขึ้นเนื่องจากการเรียกใช้บริการเช่น vsftpd สำหรับบริการ ftp คุณสามารถหยุดและปิดใช้งานบริการเพื่อให้ไฟล์ปฏิบัติการที่เกี่ยวข้องกับบริการนั้นถูกฆ่าเช่นกัน ในระบบพื้นฐานเดเบียนคุณสามารถเรียกใช้คำสั่งร้องเพื่อทำลายบริการ:
service SERVICENAME stop
systemctl disable SERVICENAME
โชคดี
sudo netstat -lnp
แล้วและรันคำสั่งที่แนะนำของคุณเพื่อหยุดพอร์ต 22 :)
หากต้องการแสดงรายการพอร์ตที่เปิดอยู่ทั้งหมด:
netstat -lnp
วิธีปิดพอร์ตที่เปิดอยู่:
fuser -k port_no/tcp
ตัวอย่าง:
fuser -k 8080/tcp
คุณสามารถใช้ทั้งในsudo
กรณีที่จำเป็น