Tôi có một kết nối mạng không đáng tin cậy giữa hai máy: đôi khi các kết nối TCP hoạt động bị hủy vì những lý do ngoài tầm kiểm soát của tôi. Tôi muốn thiết lập kết nối TCP đáng tin cậy giữa hai máy.
Nếu mạng đáng tin cậy, tôi chỉ cần chạy ssh -L 1234:localhost:1234 remotehost
, với máy chủ lắng nghe trên cổng 1234 remotehost
và hướng máy khách vào localhost:1234
. Nhưng nếu kết nối ssh chết, kết nối chuyển tiếp cũng vậy. Làm cách nào tôi có thể sắp xếp để tự động khôi phục kết nối giữa máy khách và máy chủ?
Phi giải pháp:
- Điều này không dành cho các ứng dụng tương tác, vì vậy màn hình không được áp dụng.
- Đây không chỉ là về việc kết nối lại một đường hầm SSH tự động, la la autossh . Tôi muốn tiếp tục sử dụng cùng một kết nối TCP được tạo đường hầm, không bắt đầu một kết nối mới.
- Về nguyên tắc, một VPN sẽ thực hiện các mẹo. Nhưng có vẻ như quá mức khi tôi chỉ muốn một kết nối TCP và tôi muốn một giải pháp hoạt động ngay cả khi tôi không có quyền root ở hai bên.
Tôi có một ký ức mờ nhạt về một chương trình được gọi là rocks
đã làm điều đó, nhưng dường như nó đã rơi ra khỏi khuôn mặt của web. Tôi hầu như quan tâm đến Linux ở cả hai phía (mặc dù tôi mong muốn một chương trình ở cấp độ này có thể được chuyển sang các đơn vị khác), nhưng nếu bạn biết về một chương trình hoạt động giữa QNX và VMS, thì tốt hơn hết.
scp
. Tôi đã trả lời các thủ tục w / ssh dựa trên ví dụ chuyển tiếp cổng của bạn. Re: flakes hạ lưu hop, không có nhiều thứ bạn có thể làm, ngoài việc tạo một phiên ssh với các thủ tục có khả năng chịu đựng tốt hơn (nghĩa là cho phép nhiều người bỏ rơi hơn ServerAliveInterval > 0
và ServerAliveCountMax > 3
). NAT yêu cầu khoảng thời gian bảo trì thấp hơn. Vấn đề chính là xác định vấn đề là gì và điều chỉnh cho phù hợp. Đặt các tùy chọn .ssh/config
để chúng luôn ở đó cho bạn
rocks
việc thực hiện khác ... mặc dù đây rõ ràng là một loại bùn thực sự