Làm thế nào để ngăn chặn autossh bị kẹt một lần trong một thời gian?


12

Tôi đang sử dụng autosshđể xây dựng một đường hầm ssh ngược nhưng thỉnh thoảng đường hầm ngừng hoạt động và tôi cần phải tắt autossh và bắt đầu lại.

/etc/cron.d/autossh
@reboot autossh -f -nNT -R 3269:intranet.example.com:3269 public.example.com &

autossh dường như vẫn ở trạng thái lạ, nơi cổng chuyển tiếp vẫn mở nhưng bạn không nhận được phản hồi từ phía bên kia. Bằng cách khởi động lại autossh, điều này được giải quyết.

Làm thế nào tôi có thể ngăn chặn vấn đề này xảy ra?

Câu trả lời:


6

Sử dụng ServerAliveInterval(với giá trị tính bằng giây) khiến ssh máy khách gửi gói null (giữ nguyên) qua kênh được mã hóa thường xuyên để phát hiện kết nối bị hỏng:

/etc/cron.d/autossh
@reboot autossh -f -nNT -R 3269:intranet.example.com:3269 -o ServerAliveInterval=30 public.example.com &

Bạn nên có lẽ cũng đặt tương ứng với ClientAliveIntervalthiết lập trong /etc/ssh/sshd_configtrên của bạn máy chủ để làm cho máy chủ thả các kết nối client chết quá:

# Drop dead client connections after 10 minutes of inactivity
ClientAliveInterval 600
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.