mosh đường hầm thông qua proxy


16

Tôi là một fan hâm mộ ngày càng tăng của mosh và ngày càng sử dụng nó khi tôi có các liên kết wifi không đáng tin cậy. Những gì tôi đang cố gắng tìm ra là làm thế nào để xây dựng một đường hầm thông qua một máy chủ trong DMZ (kết nối với internet và mạng được tường lửa).

Giải pháp hiện tại của tôi với ssh là chỉnh sửa .ssh / config để bao gồm các dòng như:

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

Tôi cũng đã tìm ra làm thế nào tôi có thể sử dụng ssh để làm một chân và mosh chân kia:

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

Giữa máy chủ trong dmz và máy chủ phía sau tường lửa, tôi có một phiên mosh sử dụng màn hình.

Nhưng những gì tôi thực sự muốn chỉ sử dụng mosh từ đầu đến cuối. Tôi đoán rằng tôi phải điều khiển máy chủ trong máy chủ để nghe máy chủ mosh. Nhưng trang người đàn ông của mosh-server cho biết "Nó sẽ thoát nếu không có khách hàng nào liên lạc với nó trong vòng 60 giây."

Tóm lại, câu hỏi là: làm thế nào để xây dựng một đường hầm mosh với nhiều máy chủ?


Câu trả lời:


5

Bạn có thể muốn thử đá , đó là bộ lặp gói TCP và UDP. Điều này về cơ bản có nghĩa là bạn có thể có cấu hình sau:

Bạn <---> Đá trên máy chủ trong dmz <---> máy chủ phía sau tường lửa

Nói theo thứ tự, yêu cầu máy chủ in-dmz lắng nghe trên cổng X để các gói SSH được chuyển tiếp đến tường lửa phía sau máy chủ và một cổng khác, cổng Y, cho các gói UDP chuyển tiếp tới cổng 60000 trên tường lửa phía sau máy chủ máy chủ mosh.

Bạn sẽ phải kết nối với mosh bằng lệnh sau:

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

3
Một điều thú vị cần lưu ý là việc sử dụng các ứng dụng chặn tcp như tsocks hoặc proxy sẽ không hoạt động. Điều này là do họ chỉ chặn các gói TCP chứ không phải UDP (đó là những gì mosh sử dụng).
Hengjie

Làm cách nào để sử dụng đá với một địa chỉ ipv4 và một địa chỉ ipv6?
Janus Troelsen

0

Thay vì chuyển tiếp lưu lượng trên lớp ứng dụng, như được đề xuất bởi @Hengjie, bạn cũng có thể sử dụng iptables (trên máy chủ-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

Sau đó, bạn kết nối bằng mosh -p 60159 --ssh='ssh -p 11559' server-in-dmz

Ghi chú:

  • Dường như không có cách nào để đưa mosh-port vào tập tin cấu hình. :
  • Tôi chọn các cổng một cách ngẫu nhiên.
  • Bạn có thể muốn một số cấu hình iptables bổ sung nếu bạn thực hiện điều này
  • Chỉnh sửa: Tốt hơn là nên DNAT toàn bộ một loạt các cổng, vì rất có thể bạn vô tình giết chết máy khách mosh mà không lấy máy chủ với nó. Nếu bạn không chuyển tiếp một phạm vi, bạn sẽ phải ssh đến máy chủ của bạn và giết máy chủ mosh đang chạy. Có thể hơi khó chịu nếu bạn có một kết nối xấu ở nơi đầu tiên.
  • Trường hợp sử dụng của tôi cho điều này là mosh thông qua iốt.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.