วิธีการปิดหรือ (ยกเลิกการผูก) พอร์ตที่เปิดทิ้งไว้โดยแอปพลิเคชันหลอกลวง?


19

ฉันกำลังใช้งาน Fedora 13 64 บิต โปรแกรม eclipse ของฉันเริ่มต้นเซิร์ฟเวอร์ที่พอร์ต 9050 แต่ฉันปิดโปรแกรม eclipse ล้มเหลวในการปิดเซิร์ฟเวอร์อย่างถูกต้อง การรีสตาร์ท eclipse ไม่มีผลกระทบ

ฉันจะปิดหรือยกเลิกการผูกพอร์ตโดยใช้กำลังจากบรรทัดคำสั่งได้อย่างไร

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

คำตอบ:


10

วิธีเดียวที่จะปิดพอร์ตการฟังอย่างตั้งใจคือการฆ่ากระบวนการที่กำลังฟังอยู่ การใช้งานlsof, netstat, fuser- เป็นราก - ที่จะหากระบวนการ ID เมื่อกระบวนการออกจาก (โดยตัวมันเองหรือถูกฆ่า) เคอร์เนลจะทำความสะอาดซ็อกเก็ตทั้งหมดที่เปิดอยู่โดยอัตโนมัติ (อย่างไรก็ตามอาจมีบางกรณีที่โปรแกรมจะถูกปฏิเสธการฟังบนพอร์ตเดียวกันสักสองสามนาทีในกรณีนี้สิ่งที่คุณทำได้คือรอ)


19
lsof -n -i

ค้นหากระบวนการที่คุณกำลังมองหาและฆ่ามัน

จากlsofคู่มือ :

-nตัวเลือกนี้ยับยั้งการแปลงหมายเลขเครือข่ายเป็นชื่อโฮสต์สำหรับไฟล์เครือข่าย การยับยั้งการแปลงอาจทำให้ lsof ทำงานได้เร็วขึ้น นอกจากนี้ยังมีประโยชน์เมื่อการค้นหาชื่อโฮสต์ทำงานไม่ถูกต้อง

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

ฉันคิดว่าคำตอบเดียวกันกับคำถามนี้


7
เปิด| grep ":9050"(หรือหมายเลขพอร์ตอะไรก็ได้) เพื่อกรองเอาท์พุทได้อย่างง่ายดาย
isaacparrot

9

คุณสามารถใช้fuserคำสั่งด้วย-kสวิตช์

ตัวอย่างเช่นเมื่อต้องการปิดพอร์ต 111 คุณสามารถทำสิ่งต่อไปนี้: fuser -k 111/tcp (สิ่งนี้จะช่วยให้คุณไม่ต้องวุ่นวายกับการหา ID ของกระบวนการที่จะฆ่ามันเมื่อฟิวเซอร์ทำโดยปริยาย)

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


-3

ฉันมีปัญหาเดียวกันเพียงแค่มองหากระบวนการที่กำลังฟังพอร์ตที่ใช้คำสั่ง cmd บน windows

netstat -a -b

จากนั้นคุณสามารถปิดมันด้วยตัวจัดการงาน


2
ขออภัยฉันลงคะแนนแล้ว คุณพูดถึง "บน Windows" พารามิเตอร์ "-b" ถึง netstat ซึ่งแสดงชื่อที่สามารถใช้งานได้นั้นเฉพาะกับ Microsoft Windows (รูปแบบ Unix netstat อาจมีฟังก์ชั่นที่คล้ายกัน แต่โดยทั่วไปไม่ได้ใช้พารามิเตอร์เดียวกัน) อย่างไรก็ตามคำถามที่ถามว่า "Fedora" ดังนั้นผู้ถามคำถามนี้จึงหาข้อมูลเกี่ยวกับ Fedora 13 64 บิตซึ่งเป็นระบบปฏิบัติการที่แตกต่างกัน หน้า man ของ netstat สำหรับ Fedoraระบุว่าการใช้-pแสดง PID (ซึ่งสามารถใช้เพื่อระบุชื่อของไฟล์เรียกทำงาน)
TOOGAM

1
คำตอบนี้มีข้อผิดพลาดหลายประการ คำตอบมีข้อผิดพลาดทางไวยากรณ์ซึ่งสามารถหลีกเลี่ยงได้ คำตอบนั้นไม่สามารถใช้ได้กับ Fedora ที่กล่าวถึงอย่างชัดเจนในประโยคแรกของคำถาม ไม่เหมือนกับคำถามที่ไม่มีข้อมูลนี้เมื่อคำตอบนี้ถูกส่งเมื่อ 30 นาทีที่แล้วคำถามยังไม่ได้รับการแก้ไขตั้งแต่เดือนกรกฎาคม 2554 ซึ่งเกือบ 5 ปีที่แล้ว ดังนั้นฉันจึงใช้คำตอบนี้สำหรับสิ่งที่เป็นคำตอบ "ฉันด้วย" ซึ่งไม่ค่อยมีประโยชน์จริง ๆ
Ramhound
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.