ช่อง mosh ผ่านพร็อกซี


16

ฉันเป็นแฟนตัวยงของmoshและใช้มันมากขึ้นเมื่อฉันมีลิงค์ wifi ที่ไม่น่าเชื่อถือ สิ่งที่ฉันพยายามคิดคือการสร้างอุโมงค์ผ่านเซิร์ฟเวอร์ที่อยู่ใน DMZ (เชื่อมต่อกับอินเทอร์เน็ตและเครือข่ายไฟร์วอลล์)

โซลูชันปัจจุบันของฉันกับ ssh คือการแก้ไข. ssh / configเพื่อรวมบรรทัดต่างๆเช่น:

Host server-behind-firewall
  ProxyCommand ssh server-in-dmz nc %h %p

ฉันยังทราบวิธีที่ฉันสามารถใช้ ssh เพื่อทำขาข้างหนึ่งและ mosh อีกด้าน:

ssh -t server-in-dmz mosh server-behind-firewall

ระหว่าง server-in-dmz และ server-behind-firewall ฉันมีการตั้งค่าเซสชัน mosh โดยใช้หน้าจอ

แต่สิ่งที่ฉันอยากจะใช้จริงๆคือ mosh ตั้งแต่ต้นจนจบ ฉันเดาว่าฉันจะต้องเข้มงวดกับเซิร์ฟเวอร์ -m-dmz เพื่อฟัง mosh-server แต่หน้าคนของ mosh- เซิร์ฟเวอร์บอกว่า "มันจะออกหากไม่มีลูกค้าติดต่อภายใน 60 วินาที"

ในระยะสั้นคำถามคือวิธีการสร้างอุโมงค์ mosh กับโฮสต์หลายคน?


คำตอบ:


5

คุณอาจต้องการลองใช้สโตนซึ่งเป็น repeater แพ็คเก็ต TCP และ UDP สิ่งนี้หมายความว่าคุณอาจมีการกำหนดค่าต่อไปนี้:

คุณ <---> ใช้ Stone ในเซิร์ฟเวอร์ -dmz <---> เซิร์ฟเวอร์-behind-firewall

ตามคำสั่งให้เซิร์ฟเวอร์ฟังในพอร์ต X สำหรับแพ็กเก็ต SSH เพื่อส่งต่อไปยังเซิร์ฟเวอร์หลังไฟร์วอลล์และอีกพอร์ตพอร์ต Y สำหรับแพ็คเก็ต UDP ที่ส่งต่อไปยังพอร์ต 60000 บนเซิร์ฟเวอร์หลังไฟร์วอลล์สำหรับ ร็อกเซิร์ฟเวอร์

คุณจะต้องเชื่อมต่อกับ mosh โดยใช้คำสั่งต่อไปนี้:

mosh -p 60000 --ssh='ssh -p PORT_X' server-in-dmz

3
สิ่งหนึ่งที่น่าสนใจคือการใช้แอปพลิเคชัน tcp interceptors เช่น tsocks หรือ proxychains จะไม่ทำงาน นี่เป็นเพราะพวกเขาดักจับแพ็กเก็ต TCP เท่านั้นไม่ใช่ UDP (ซึ่งเป็นสิ่งที่ mosh ใช้)
Hengjie

ฉันจะใช้ stone กับหนึ่ง ipv4 และที่อยู่ ipv6 ได้อย่างไร
Janus Troelsen

0

แทนที่จะส่งต่อทราฟฟิกบนเลเยอร์ของแอปพลิเคชันตามที่แนะนำโดย @Hengjie คุณสามารถใช้ iptables (บนเซิร์ฟเวอร์ -in-dmz):

iptables -t nat -A PREROUTING -p tcp -m tcp --dport 11559 -j DNAT --to-destination 178.254.55.220:22
iptables -t nat -A PREROUTING -p udp -m udp --dport 60159:60168 -j DNAT --to-destination 178.254.55.220
iptables -t nat -A POSTROUTING -j MASQUERADE
sysctl -w net.ipv4.ip_forward=1

จากนั้นคุณเชื่อมต่อโดยใช้ mosh -p 60159 --ssh='ssh -p 11559' server-in-dmz

บันทึก:

  • ดูเหมือนจะไม่มีทางที่จะนำ mosh-port ไปเป็นไฟล์ปรับแต่ง :(
  • ฉันเลือกพอร์ตแบบสุ่ม
  • คุณอาจต้องการกำหนดค่า iptables เพิ่มเติมหากคุณทำเช่นนี้ ...
  • แก้ไข:เป็นการดีกว่าที่จะ DNAT พอร์ตทั้งหมดเนื่องจากมีโอกาสที่ดีที่คุณจะฆ่า mosh ไคลเอ็นต์โดยไม่ตั้งใจโดยไม่ใช้เซิร์ฟเวอร์กับมัน หากคุณไม่ส่งต่อช่วงคุณจะต้อง ssh ไปยังเซิร์ฟเวอร์ของคุณและฆ่าเซิร์ฟเวอร์ที่ทำงานอยู่ อาจรำคาญเล็กน้อยหากคุณมีการเชื่อมต่อที่ไม่ดีในตอนแรก
  • กรณีใช้งานของฉันคือ mosh ผ่านไอโอดีน
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.