ฉันเคยssh -L 10002:192.168.0.30:10002 192.168.1.135
สร้างการส่งต่อพอร์ต แต่ตอนนี้ฉันต้องลบมันออก
ฉันจะทำสิ่งนี้ได้อย่างไร
ฉันเคยssh -L 10002:192.168.0.30:10002 192.168.1.135
สร้างการส่งต่อพอร์ต แต่ตอนนี้ฉันต้องลบมันออก
ฉันจะทำสิ่งนี้ได้อย่างไร
คำตอบ:
หากคุณใช้ Linux คุณสามารถฆ่ากระบวนการได้โดย:
ps aux | grep ssh
จากนั้นใช้
kill <id>
เพื่อฆ่ากระบวนการ
หากคำสั่ง kill ไม่สำเร็จคุณสามารถลองใช้ได้
kill -9 <id>
kill -9
จนกว่าคุณจะได้ลองkill
แล้ว กระบวนการจำนวนมากจะมีตัวจัดการสัญญาณซึ่งจะทำความสะอาดการใช้ทรัพยากรของพวกเขาปิดการเชื่อมต่อที่สะอาดและงานก่อนปิดอื่น ๆ หากคุณฆ่าด้วย -9 กระบวนการจะตายทันทีโดยไม่ต้องล้างข้อมูล การฆ่าที่ไม่มี -9 จะใช้เวลาส่วนใหญ่
kill -9
ไม่มีเหตุผลเหมือนการใช้ปืนลูกซองเพื่อฆ่ายุง :)
pgrep ssh | xargs kill
ฉันมักจะทำซับหนึ่ง อย่าใช้-9
เพื่ออะไรแน่นอน
ssh
คำสั่งเดียวหรือว่าssh
คำสั่งทั้งหมดที่คุณกำลังใช้อยู่นั้นดีในการฆ่า นี่เป็นข้อสันนิษฐานทั่วไปที่ไม่ค่อยดีนัก
ssh
อินสแตนซ์หลาย ๆ ตัวบนเซิร์ฟเวอร์ระยะไกลหลายตัวตลอดเวลาโดยบางคนไม่มีการมีส่วนร่วมโดยตรงของฉัน ตัวอย่างเช่นโหมด Emacs Tramp เปิดการssh
เชื่อมต่อที่อยู่เบื้องหลังเมื่อฉันไปที่บัฟเฟอร์ระยะไกล บางคนใช้ระบบไฟล์ userspace ซึ่งทำสิ่งที่คล้ายกัน มันไม่ใช่เรื่องแปลกเลย ในความเป็นจริงฉันจะถือว่าผู้ใช้คนเดียวssh
กรณีเดียวที่จะเป็นกรณีการใช้งานของชนกลุ่มน้อย ถ้ามันเหมาะกับคุณก็ดีสำหรับคุณ แต่มันก็ไม่ได้เป็นคำแนะนำทั่วไปที่ดี
เมื่อใช้มัลติ ssh การฆ่ากระบวนการ ssh มักไม่เป็นที่ต้องการ (มันฆ่าการเชื่อมต่อที่เปิดอยู่ทั้งหมดกับโฮสต์นั้น) และคุณไม่สามารถเข้าถึงการหลบหนีได้อย่างง่ายดายเพราะ วิธีการที่เหมาะสมแล้วที่จะเรียกใช้คำสั่งอะนาล็อกของการส่งต่อที่คุณต้องการที่จะยกเลิก -O cancel
แต่เพิ่ม ตัวอย่างเช่น
ssh -O cancel -L 10002:192.168.0.30:10002 192.168.1.135
วิธีนี้จะปิดใช้งานการส่งต่อพอร์ตนี้โดยไม่ยกเลิกเซสชัน อีกครั้งนี้จะทำงานเฉพาะในกรณีที่ SSH มัลติมีการใช้งานสำหรับการเชื่อมต่อ 192.168.1.135
ssh -O exit 192.168.1.135
ที่จะโทฆ่าทำงานเพียง
คุณสามารถใช้ "escape-key" (โดยปกติ ~) ตามด้วย C เพื่อรับ cli กับการเชื่อมต่อของคุณ คุณสามารถลบอุโมงค์ได้โดยไม่ต้องเชื่อมต่อของคุณ
วิธียกเลิกพอร์ตที่ส่งต่อในเซสชัน SSH ที่รันอยู่แล้ว:
-KL port
คุณควรเห็นสิ่งนี้:
ssh> -KL 10002
Canceled forwarding.
คุณสามารถเข้าสู่คอนโซลแบบโต้ตอบได้โดยพิมพ์~C(ตัวใหญ่ "C") สิ่งนี้ช่วยให้คุณสามารถเพิ่มและลบการส่งต่อพอร์ตแบบไดนามิก (ในจำนวนอื่น ๆ )
ลำดับนี้จะต้องมาทันทีหลังจากขึ้นบรรทัดใหม่ / ขึ้นบรรทัดใหม่ ดังนั้นสงสัยเพียงพิมพ์Enter~C(ตามลำดับ)
หากคุณไม่เห็นอักขระปรากฏบนคอนโซลแสดงว่าคุณทำถูกแล้ว :)
ตอนนี้คุณควรเห็นssh>
ข้อความแจ้ง
หากต้องการลบพอร์ตให้ป้อน-KL 10002
ตามด้วยEnter( 10002
พอร์ตที่ส่งต่อของคุณอยู่ที่ไหน)
ตรงกันข้าม - เพิ่มไปข้างหน้าใหม่ - สามารถทำได้เช่นนี้ (ตั้งแต่ต้นจนจบ):
Enter~C
ssh> -L 10002:192.168.0.30:10002
Enter
~C escape not available to multiplexed sessions
หากคุณเป็นคุณจะถูกเด้งด้วย หากเป็นกรณีนี้ดูคำตอบที่ยอดเยี่ยมของ a3nm
Warning: remote port forwarding failed for listen port
ข้อความ