У меня очень странная проблема с некоторыми из моих серверов. Кажется, что пользователи на этих серверах всякий раз, когда они загружают с них большие файлы (более 1 ГБ) через FTP (proftpd) или HTTP (apache2), соединение для загрузки прерывается именно тогда, когда они достигают 1 ГБ загруженных данных.
Проблема не случайна, она возникает каждый раз со всеми учетными записями и ровно на отметке в 1 ГБ. Я не могу понять, что может вызвать это.
Серверы работают под управлением Ubuntu Linux Oneiric Ocelot
Я загружал файлы размером более 1 ГБ (даже> 100 ГБ) через ftp, ssh, http и никогда не сталкивался с такой проблемой в такой последовательности. Но мы наблюдали и устраняли случайные подозрительные пакеты tcp-rst в других ситуациях. Tcp-rst не должен происходить в нормальной ситуации, это почти всегда ненормальное событие, заслуживающее некоторых здоровых подозрений.
Тот факт, что это так стабильно и соединение сброшено, а не закрыто должным образом, указывает на то, что, на мой взгляд, происходит что-то подозрительное. Брандмауэры и маршрутизаторы (плохо настроенные или просто сломанные) могут делать то же самое. Вы можете запустить tcpdump во время такой загрузки и изучить результат.
Я предполагаю, что это может быть вызвано вашим интернет-провайдером, неохотно, возможно, из-за сломанного маршрутизатора или брандмауэра.
Иногда я сам пытался узнать о каких-то загадочных сбросах tcp и использовал для этого tcpdump:
Я бы сказал, что около отметки 980 МБ, tcpdump все в файл:
tcpdump -w name.dump -i any -nnvvXSs 65535 tcp port XXX
Затем используйте tcpdump, чтобы найти пакет (ы) сброса:
tcpdump -nnvvXSs 65535 -r name.dump 'tcp[tcpflags] & tcp-rst != 0 and tcp[tcpflags] & tcp-ack != 0' and tcp port XXX
Затем снова используйте tcpdump и grep, чтобы посмотреть на метку времени, чтобы узнать, что происходит, что может дать ключ к разгадке. Параметры -A и -B выводят 200 строк до и после строки с выделением.
tcpdump -nnvvXSs 65535 -r name.dump | grep -A 200 -B 200 "timestamp of tcp-rst packet"
На серверах, где это происходит, с использованием другого интернет-провайдера? Или отдельный роутер или межсетевой экран? Можете ли вы убедиться, что этого не происходит на других серверах, использующих того же провайдера, маршрутизатор и брандмауэр?
Проверьте брандмауэр. В некоторых случаях проблема заключается в тайм-ауте протокола ....