Рейтинг:0

SSH-туннель HTTP/S, клиентские соединения зависли в состоянии FIN_WAIT2

флаг jp

Я успешно настроил туннель между двумя серверами, так что входящие соединения через порт 80/443 перенаправляются на другой сервер, на котором фактически работает веб-сервер. Кроме того, я использовал autossh для поддержания соединения.

Это прекрасно работает, за исключением того, что вместо полного закрытия многие входящие соединения заканчиваются в состоянии FIN_WAIT2:

пример вывода netstat

... и поскольку они связаны с запущенным процессом, они никогда не очищаются системой. В конце концов, я достиг предела открытых файлов, в результате чего клиент SSH не принимал новые подключения. Проблема в том, что я не могу понять, почему это происходит. Многие из входящих соединений закрываются без проблем, но другие просто сохраняются бесконечно.

Что я пробовал:

  1. Отключение ServerAliveInterval/CountMax, ClientAliveInterval/CountMax и TCPkeepAlive

  2. Перезапуск службы (работает, но не является решением)

Исследование, которое я провел в этом, привело меня к очень небольшому количеству источников информации, таких как этот вопрос о сбое сервера, которые не предложили никакого решения.

Я не понимаю, как соединения, которые не поддерживаются и от которых отключился клиент, остаются активными. Кто-нибудь может пролить свет?

djdomi avatar
флаг za
автосш для http/https? Почему бы не использовать обратный прокси, такой как nginx? Всегда используйте K.I.S. - Будь проще

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.