У мене ненадійний мережевий зв’язок між двома машинами: іноді активні TCP-з'єднання випадають з причин, що не знаходяться під моїм контролем. Я хочу встановити надійний TCP-зв’язок між двома машинами.
Якби мережа була надійною, я б просто запустив ssh -L 1234:localhost:1234 remotehost
, із прослуховуванням сервера на порту 1234 remotehost
і вкажу клієнта на localhost:1234
. Але якщо ssh-з'єднання вмирає, то і переадресоване з'єднання. Як я можу організувати автоматичне відновлення зв'язку між клієнтом і сервером?
Не рішення:
- Це не для інтерактивних додатків, тому екран не застосовується.
- Йдеться не лише про автоматичне підключення тунелю SSH, la autossh . Я хочу продовжувати використовувати те саме тунельоване TCP-з'єднання, а не запускати нове.
- В принципі, VPN зробив би свою справу. Але це здається непосильним, коли я просто хочу одне TCP-з'єднання, і я хотів би рішення, яке працює, навіть якщо у мене немає дозволів root на будь-якій стороні.
У мене тьмяна пам'ять програми, яка називається rocks
саме це, але вона, схоже, впала з обличчя в Інтернеті. Мене найбільше цікавлять Linux з обох сторін (хоча я б очікував, що програма на цьому рівні переноситься для інших програм), але якщо ви знаєте про програму, яка працює між QNX та VMS, тим краще.
scp
. Я відповідав на w / ssh keepalives на основі прикладу вашого переадресації портів. Re: лускатий хоп вниз за течією, ви не можете багато чого зробити, крім створення сеансу ssh з келепалами, які є більш толерантними (тобто дозволяють отримати більше кинутих кепалів з ServerAliveInterval > 0
і ServerAliveCountMax > 3
). NAT вимагає менших інтервалів зберігання. Ключове питання - визначити, у чому полягає проблема, та адаптувати її відповідно. Введіть варіанти, .ssh/config
щоб вони завжди були для вас
rocks
реалізацію ... хоча це, очевидно, справжня хижака