ssh ไปข้างหน้าหลายพอร์ต


9

ดังนั้นนี่เหมาะสำหรับฉัน:

ssh -v -L 8080:remotewebserver:8080 me@jumphost

ถ้าฉันต้องการเพิ่มพอร์ตด้วยล่ะ

ฉันต้องการที่จะส่งต่อไม่เพียง 8080 แต่ยัง 8443, 8923 และ 8181?

ฉันต้องทำการเชื่อมต่อใหม่สำหรับแต่ละพอร์ตหรือไม่

คำตอบ:


19

ไม่คุณไม่ต้องการการเชื่อมต่อหนึ่งต่อพอร์ตที่ส่งต่อเพียงแค่เพิ่ม-Lข้อความสั่งเพิ่มเติม:

ssh -L LPort1:RHOST1:RPORT1 -L LPORT2:RHOST2:RPORT2 me@ju.mp.ho.st

สิ่งนี้สามารถย่อให้เล็กลงได้ssh jumpโดยใช้ "นามแฝง" jumpหากคุณตั้งค่าส่วนที่ตรงกันใน~/.ssh/configแบบนี้:

Host jump
    User myUserName
    Hostname ju.mp.ho.st
    Port 2345
    LocalForward 8080 remotewebserver:8080
    LocalForward 8443 remotewebserver:8443
    LocalForward 8923 remotewebserver:8923
    LocalForward 8181 remotewebserver:8181

# Eliminates reconnection delay, and does not try to re-forward ports:
Host *
  ControlMaster auto
  ControlPath /tmp/%r@%h:%p

ฉันได้ใช้เทคนิคนี้มานานหลายปีแน่นอนแล้วกับ 10+ พอร์ต -Dแต่เมื่อฉันต้องพอร์ตมากขึ้นส่งผมใช้การสนับสนุนแบบไดนามิกถุงเท้าพร็อกซี่


1
เมื่อเชื่อมต่อฉันจะเห็นข้อความแสดงข้อผิดพลาดเหล่านี้สำหรับแต่ละพอร์ตที่ส่งต่อ: bind: Address already in use channel_setup_fwd_listener_tcpip: cannot listen to port:จากนั้นCould not request local forwarding.ด้วยการตั้งค่าควบคุม * สิ่งเหล่านี้จะหายไปขอบคุณ! PS: ฉันใช้เครื่องหมายความคิดเห็นนั้นใน SE และคุณเป็นคนแรกที่ฉันเคยเห็นด้วย ขอขอบคุณที่ :)
แดนดาสคเลสุ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.