ปิดการเชื่อมต่อ TCP บน Mac ใน Terminal


9

ฉันต้องการฆ่าการเชื่อมต่อ tcp เฉพาะบน mac ของฉัน (คล้ายกับ tcpkill บน linux) โดยพอร์ตหรือ ip พอร์ตเด่นกว่า แต่ฉันจะชำระ ฉันไม่ต้องการจ่ายค่าบริการหรือดาวน์โหลดซอฟต์แวร์อื่นฉันต้องการคำสั่งเทอร์มินัลอย่างง่ายที่จะอนุญาตให้ฉันทำสิ่งนี้เช่น tcpkill

ฉันพยายามแก้ไขกฎบนไฟร์วอลล์ของฉันและพยายามสร้างสคริปต์ทุบตีดังนั้นมันจะทำงานได้ แต่ไม่ประสบความสำเร็จเพราะการกวดวิชาที่ฉันพบนั้นเก่ามาก

เหตุใดจึงเป็นเรื่องยากที่จะค้นหาข้อมูลหรือทำเช่นนั้น

คำตอบ:


5

ตัวเลือกที่ 1

คุณสามารถติดตั้ง tcpkill มันเป็นส่วนหนึ่งของแพคเกจ dsniff ซึ่งอยู่ในMacPorts คุณบอกว่าคุณไม่ต้องการติดตั้งซอฟต์แวร์อื่น อย่างไรก็ตาม MacPorts มีประโยชน์จริง ๆ ถ้าคุณทำงานจากบรรทัดคำสั่ง ฉันขอแนะนำให้คุณตรวจสอบ

ตัวเลือก 2

ใน StackOverflow มีการโพสต์ที่เกี่ยวข้อง: การค้นหา (และฆ่า) พอร์ตกระบวนการล็อค 3000 บน Mac วิธีแก้ปัญหาที่แนะนำคือการสร้างฟังก์ชั่นที่ฆ่าการเชื่อมต่อทั้งหมดบนพอร์ตเฉพาะ:

function killport() { lsof -i TCP:$1 | awk '/LISTEN/ {print $2}' | xargs kill -9 }

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

function killport() { lsof -i TCP | awk '/LISTEN/ {print $2}' | xargs kill -9 }

ข้อจำกัดความรับผิดชอบ: ฉันยังไม่ได้ทดสอบสิ่งนี้

ข้อสงวนสิทธิ์ 2: เป็นวิธีที่ดุร้ายและอาจมีผลข้างเคียงที่รุนแรง ฉันอยากจะแนะนำกับวิธีนี้


ฉันพบไบนารี OS X สำหรับ dsniff ที่นี่ (ในกรณีที่คุณไม่ใช่ผู้ใช้ MacPorts) ที่นี่: FWIW packages.macports.org/dsniff (ดูเหมือนว่า homebrew ไม่มีสูตรสำหรับมันอีกต่อไป ณ วันนี้)
rogerdpack

มีสูตรโฮมบรูมันสำหรับมันในการhomebrew/boneyardแตะ
D_4_ni

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