2011-12-15 31 views
5

Tôi đang cố gắng thiết lập một số đường hầm ssh ngược để tôi có thể truy cập mạng gia đình của mình bằng cách bật tắt một số máy chủ với một IP công cộng.Biết một cổng từ xa có thành công không?

Khi tôi chạy lệnh này: ssh -R: [port_XX]: localhost: 22 some_user @ my_server

Thậm chí nếu "port_XX" được sử dụng, nó sẽ vẫn thực hiện một kết nối ssh thành công để "my_server" .

Nếu tôi chạy lệnh này trực tiếp, tôi có thể thấy vấn đề khi nó mang lại cho tôi một lời cảnh báo: "Cảnh báo: cổng từ xa chuyển tiếp thất bại cho nghe cổng [port_XX]"

Tuy nhiên, tôi đang bắt đầu ssh này phiên bên trong phiên màn hình bằng cách sử dụng lệnh cron.

Làm cách nào tôi có thể kiểm tra theo chương trình nếu chuyển tiếp cổng từ xa thành công?

Phiên màn hình có thể được kiểm tra bằng "màn hình-lls", phiên ssh cũng dễ dàng được kiểm tra, nhưng cổng chuyển tiếp từ xa ...?

(Xin vui lòng cho tôi biết nếu câu hỏi này là không đủ rõ ràng! Tôi đã thực hiện nghiên cứu của tôi, nhưng đã không tìm thấy một giải pháp đơn giản.)

Trả lời

8

Hãy thử thêm -o ExitOnForwardFailure=yes

Lệnh đầy đủ sẽ là một cái gì đó như:

ssh -N -R [port_XX]:localhost:22 -o ExitOnForwardFailure=yes [email protected] 

(-N rất hữu ích để chỉ về phía trước cổng, mà không cần mở vỏ từ xa, bạn cũng có thể thêm -f để gửi quá trình ở chế độ nền, không cần nếu bạn đang chạy dưới màn hình, mặc dù ..)

+0

Ah hah! Tôi biết có một cách đơn giản để làm điều đó. Tôi đã xem xét các tùy chọn nhưng không thể tìm thấy một ví dụ tốt về cách thực hiện. Cảm ơn! – Oarcinae

+0

Làm việc cho tôi. Câu hỏi: Nếu không có tùy chọn này, là đường hầm bị bỏ lại sau khi lỗi chuyển tiếp hữu ích cho bất cứ điều gì, hoặc là nó chỉ chết? – Eki

Các vấn đề liên quan