Я подозреваю, что правительство моей страны каким-то образом уничтожает полученный пакет ACK на TCP-соединениях.
Когда я пытаюсь установить TCP-соединение с внешним хостом на портах, отличных от 80, рукопожатие TCP не будет успешным. Я захватил файл pcap (gmail.pcap: http://www.slingfile.com/file/aWXGLLFPwb ), и я обнаружил, что мой компьютер получит ACK после отправки TCP SYN, но вместо ответа SYN ACK он отправит RST.
Я проверил пакет ACK с внешнего хоста, но он кажется полностью законным. Порядковый номер и все известные мне флаги верны. Может ли кто-нибудь сказать мне, почему мой компьютер (Linux-машина) отправляет пакет RST?
Из строки cmd:
openssl s_client -connect serveryourtryingtocontact.com:443
Это должно проверить, можете ли вы подключиться по протоколу SSL к удаленному хосту. Возможно, сделайте из этого трафика Wireshark.
Если у вас нет openssl, вы можете apt-get install openssl
.
Мы должны определить, где создается RST. Это происходит со всеми SSL-сайтами? Есть ли у вас прямое подключение к вашему NAT-шлюзу? Ты используешь прокси?
Использование этого метода исключает любые проблемы с вашим стеком SSL.
Хотя ходят слухи, что правительство Ирана время от времени нарушает HTTPS, из предоставленных вами данных похоже, что отвечающий пакет SYN, ACK от 173.194.32.22 поступает на ваш хост, но никогда не попадает в ваш стек TCP. Стек пытается отправить SYN через секунду, две секунды, четыре секунды и восемь секунд соответственно, но, по-видимому, никогда не видит ответа.
Входящий SYN, ACK кажется отфильтрованным - у вас нет iptables
правило для TCP-трафика в вашей INPUT цепочке, которая имеет REJECT --reject-with tcp-reset
цель случайно?