ssh pili ana ua pau ka manawa, no ke aha ʻo sudo service sshd restart hoʻonā iā ia?

He ʻano paʻakikī kaʻu i hiki ʻole ke wehewehe.He mīkini kamepiula kaʻu e holo nei Ubuntu 20.04 , docker 19.03.6 a me kahi redis ipu. Hoʻokipa ʻia ma kahi Windows 2019` Mīkini Hyper-V.

Aia ka lua o ka mīkini uila (pūnaewele like akā kikowaena pūnaewele ʻokoʻa) e holo nei W2k19 a me kahi redis-client e pili ana i ka redis laʻana.

Ma muli o ka hoʻonohonoho maikaʻi ʻole ʻana i kēlā me kēia manawa redis hoʻopiha i ka mīkini Ubuntu, me ka hoʻohana ʻana i ka nui o ka hoʻomanaʻo, a me ka hana ʻana i mau kaukani * ua hoʻopau ka pilina * ʻokoʻa i ka redis-client .

Ke kū kēia, kū nā pilina āpau ma waena o nā mīkini i ka hana. Inā hoʻāʻo wau e pili ma o ssh mai ka mīkini W2k19 a i Ubuntu a i ʻole ka hoʻohana ʻana i ka telnet telnet mai ka mīkini like ma kekahi awa, loaʻa iaʻu kahi * ua hoʻopau ʻia ka pili * .

E like inā hana kekahi mea ma ka mīkini Linux i ka pāpā auto o ka IP address o ka w2k19 mīkini. Mai nā mīkini ʻē aʻe hiki iaʻu ke hoʻohui ma o ssh , telnet a pēlā aku.

  • Ufw pio ʻia
  • ʻAʻole mākou fail2ban hoʻouka ʻia
  • iptables hoʻonohonoho ʻia me nā awa āpau i hāmama

Akā ʻaʻole hiki iā mākou ke hoʻohui aku. Ua hana hou mākou i ka hana ma kekahi mīkini ʻē aʻe, kahi VM lua me W2k19 a me ka mea like redis-client .

ʻO ka mea a mākou i ʻike ai e kūkulu hou i nā pilina ma waena o kēlā mīkini me ka hoʻomaka hou ʻana o ka lawelawe ssh ma ka mīkini Ubuntu i hoʻohui pū ʻia me ka reboot o ka mīkini W2k19 .

ʻAʻole i lawa ka mea hoʻokahi sudo service sshd restart , a pololei he hou hou o ka mīkini W2k19 ʻaʻole lawa ka mīkini. ʻAʻole hiki iaʻu ke noʻonoʻo i nā mea e hana nei, a ʻaʻole hiki iā mākou ke ʻae ma ke ʻano he hana maʻamau i kēia mau hihia e hoʻomaka hou i ka lawelawe ssh a hoʻi hou i ka mīkini.

Akā i kēia manawa ʻaʻole mākou hiki iā ke koho i ke kānāwai / hoʻonohonoho i kēlā me kēia mea e ālai ana i nā pilina. Pono e hana i kekahi mea me ka lawelawe ssh paha, mai ka hoʻomaka hou ʻana e hāʻawi ia i mea e hoʻihoʻi i nā pilina, akā pehea?

A no ke aha e hoʻomaka hou ai i ka ssh lawelawe (a me ka hoʻouka hou ʻana i ka W2k19 mīkini) ke wehe nei i ka pilina i ka redis 6379 awa?

!!! Kiʻi hou !!! Ua hoʻāʻo wau iā tcpdump ma ka mīkini ubuntu a ʻike ʻole i ke kaʻa mai ka VM ʻē aʻe. Ua hoʻonohonoho wau i ke aniani aniani pūnaewele no ka mīkini ubuntu, a kālailai i ke kalepa ʻana me ka wireshark, ʻaʻohe kaʻa mai ka VM ʻē aʻe. Ua kīnā au i nā pale ahi ma nā wahi āpau (ubuntu VM, client VM, host hyper-v) ʻoiai ke kālailai ʻana i ke kaʻa.

0
задан 18 June 2020 в 11:41
1 ответ

Время ожидания соединения истекло означает, что первоначальная TCP SYN не вызвала никакого ответа [в течение времени ожидания соединения]. Клиент не получил ни SYN/ACK, ни RST, ни ICMP-ошибку — ничего.

Это может произойти по многим причинам. Давайте разберем их в общих чертах, по этапам рукопожатия TCP.

Неисправность 1: исходный SYN не был доставлен на сервер.

Неисправность 2: сервер получил SYN, но accept() запрос на подключение занял слишком много времени.

Неисправность 3: ответ SYN/ACK не был доставлен на клиентский компьютер.

Неисправность 4: последний ACK и все его повторные отправки потеряны. (Это может привести к другой ошибке, но я не уверен.)


Эта часть дает мне догадку:

… время от времени Redis перегружает машину Ubuntu, используя слишком много памяти…

Linux OOM killer — это деликатная тема; если вы не настроите из него дерьмо — обычно он предпочитает просто повесить пространство пользователя вместо того, чтобы что-то убивать. (Не спрашивайте меня, почему; я до сих пор не знаю. Легче настроить, чем докопаться до окончательных причин, почему.)

Позвольте предложить вам тест OOM: когда проблема повторится, можете ли вы пропинговать сервер? Вы также можете ssh войти в него? Вероятный результат: да для ping, нет для ssh — будет означать Неисправность 2.

Это типично для машин OOM: ядро ​​все еще живо и счастливо и отвечает на пинги, как будто ничего не происходит. Но обратите внимание: в отличие от ping, для установления TCP требуется серверная программа пользовательского пространства (например, redis или sshd) для активного вызова accept() при готовящемся к открытию соединении. В состоянии OOM это занимает целую вечность, так как программы ждут выполнения своих запросов на выделение памяти.

Результат теста OOM «Нет для ping, нет для ssh» — будет означать, что это не неисправность 2; Я бы предположил, что какой-то связующий элемент виртуализации выходит из строя.

Запуск Redis в докере еще больше усложняет задачу. У Docker есть собственная логика учета памяти (см. -- memory и др.). Он также должен настроить правила iptables для работы контейнерной сети.


Если это не поможет: пожалуйста, дайте более подробную информацию о настройке сети здесь, включая виртуализированные сети. Я чувствую, что мне уже нужна диаграмма, чтобы правильно подсчитать ваши виртуальные машины.

0
ответ дан 16 June 2020 в 14:29

Теги

Похожие вопросы