У меня есть сервер Linux с подключением ADSL, и я просто заметил, что иногда я получаю
Connecting to example.com|xxx.xxx.xxx.122|:80... connected.
HTTP request sent, awaiting response...
когда я использую wget
или например браузер вроде firefox.
В случае wget
нажатие CTRL-C и повторная попытка «решает проблему», а в случае с Firefox перезагрузка страницы также приводит к загрузке страницы.
Когда это происходит, кажется, что все происходит случайно. Я попытался изменить DNS на DNS Google, но у меня все еще возникают те же проблемы.
Вопрос
Как мне отладить что-то подобное, чтобы я мог найти источник проблемы или, возможно, шаблон?
Вы когда-нибудь пробовали ждать, чтобы увидеть, какой код состояния HTTP вернет?
Чтобы отладить этот случай, откройте 2 терминала: в первом подключите ssh к вашему серверу и введите:
# tcpdump -vv -s0 tcp port 80 -w /tmp/example.pcap
(вы также можете добавить and src host <client_IP>
для фильтрации нежелательных запросов)
а во втором используйте wget
чтобы просмотреть свой веб-сайт, воспроизведите эту проблему, переключитесь на первый терминал и нажмите Ctrl+C.
Скопируйте это .pcap
файл клиенту и откройте с помощью Wireshark, чтобы увидеть, что произойдет.
Если ты видишь:
HTTP request sent, awaiting response...
Это означает, что DNS работает нормально, что TCP-соединение находится в установленном состоянии и запрос был отправлен. Я думаю, что причина ваших проблем - удаленный сервер, который может быть занят.
Как сказал @quanta, сетевой захват даст вам более подробную информацию. В Wireshark просто используйте Follow TCP Stream, чтобы увидеть HTTP-диалог. Обратите внимание и на сообщения ICMP.
У меня была очень похожая проблема на свежеприготовленный Экземпляр AWS:
apt install
потерпит неудачу, заявив, что не может получить какой-то пакет. Когда я попытался получить пакет вручную с помощью wget
, иногда он зависал на неопределенное время, а иногда сразу (после зависания на неопределенное время).
Перезагрузка сервера не помогла. Затем я отключил и повторно инициализировал экземпляр, после чего у меня не было проблем с новым экземпляром.
Иди разберись.
Перезагрузите сервер Apache. Это должно решить проблему.