- Как сбросить стек TCP/IP в Windows 10
- Что такое протокол TCP/IP?
- Когда и почему следует сбрасывать стек TCP/IP
- Как сбросить стек TCP/IP в Windows 10
- Устранение неполадок подключения TCP/IP
- Капли пакетов
- Неправильный параметр в загонке TCP
- Сброс сторон приложения
- Устранение проблем нехватки портов
- Динамический диапазон порта по умолчанию для TCP/IP
- Устранение неполадок в истощении порта
- Метод 1
- Метод 2
- Метод 3
Как сбросить стек TCP/IP в Windows 10
Интернет работает по протоколу TCP/IP. Если стек протокола TCP/IP не работает правильно в Windows 10 или любой другой операционной системе, такой как Linux или MacOS, у вас возникнут проблемы с подключением к Интернету. Лучший способ решить проблемы с Интернетом — сбросить настройки стека TCP/IP.
Это повреждение в стеке служб TCP/IP может быть вызвано различными факторами, такими как установка программного обеспечения, изменяющего сетевые настройки в Windows, вирусы и вредоносное ПО, повреждение реестра Windows и т. д.
Нет прямого способа сбросить интернет-протоколы в Windows 10. Интернет-протокол TCP/IP хранит некоторые сетевые данные локально, которые могут быть повреждены.
Если ваше Интернет-соединение не работает должным образом и вы получаете сообщение «Этот сайт недоступен», хотя Windows показывает, что вы подключены к Интернету.
Сброс стека TCP/IP возможен с помощью командной строки в Windows. Давайте пройдемся по процессу и избавим наше интернет-соединение от ошибок.
Что такое протокол TCP/IP?
Протокол управления передачей/Интернет-протокол отвечает за перенос пакетов от одного источника к месту назначения. Этот протокол включает трехстороннее рукопожатие, что означает, что перед обменом фактической информацией происходит обмен тремя пакетами между источником и целью. Это рукопожатие предназначено для установления доверия между двумя устройствами.
Многократное повторение этих рукопожатий значительно увеличит трафик в сети. Следовательно, данные кэшируются и хранятся локально, чтобы избежать ненужной транспортировки пакетов.
Более того, протокол TCP/IP работает аналогично эталонной модели OSI. Это означает, что у него есть собственный набор правил и положений, которые он устанавливает для связи между устройствами. Это называется стеком. Кэш TCP/IP относится к хранимым в устройстве данным, которые он использует для маршрутизации пакетов.
Когда и почему следует сбрасывать стек TCP/IP
Со временем Windows сохраняет кэш сетевых данных, включая IP-адреса. В системном реестре также есть параметры, которые напрямую связаны с интернет-протоколом. В любой момент они могут быть повреждены, что приведет к невозможности подключения к Интернету, даже если все остальные настройки выполнены правильно.
Повреждение стека может даже быть причиной того, что трафик вашего компьютера направляется на старый IP-адрес и не может обновить новый в кеше.
Иногда недостаточно изменить IP-адрес вашего компьютера или просто перезапустить его. Именно тогда пользователь должен прибегнуть к этому решению и сбросить свои настройки TCP / IP.
Как сбросить стек TCP/IP в Windows 10
Как мы упоминали ранее, Microsoft не предоставила простой способ сбросить интернет-протокол. Однако мы все еще можем сделать это с помощью команды netsh в командной строке.
Команду netsh можно использовать для просмотра или настройки сетевых параметров в среде Windows, указав правильные параметры.
Обратите внимание, что этот процесс удалит все текущие конфигурации всех сетевых портов на вашем устройстве, включая все неактивные, а также виртуальные сетевые адаптеры. Следовательно, их нужно будет перенастроить после завершения процесса. Более того, операция также требует перезагрузки системы, поэтому рекомендуется сохранить ваши данные, прежде чем продолжить.
- Откройте командную строку с правами администратора.
- Введите ipconfig /release , чтобы удалить текущие настройки IP.
- Введите ipconfig /flushdns , чтобы удалить кеш DNS.
- Введите netsh winsock reset для сброса кеша Windows Sockets API.
- Введите netsh int ip reset , чтобы сбросить кеш стека TCP/IP. Пока не перезагружайте компьютер.
- Введите ipconfig /renew , чтобы запросить новые параметры IP с сервера.
- Перезагрузите компьютер.
Если вы хотите автоматизировать процесс, просто скопируйте и вставьте вышеупомянутую команду в текстовый документ и сохраните ее с любым именем по вашему выбору, заканчивающимся на .bat . Это создаст командный файл, который выполнит все команды внутри, когда вы дважды щелкните его.
Например, скрипт может выглядеть так:
Если вы по-прежнему не можете получить доступ к Интернету, вы можете полностью сбросить настройки сети Windows.
TCP/IP — это душа компьютерных сетей; без него доступ в Интернет был бы невозможен. Рекомендуется поддерживать сетевой кэш вашей системы и оптимизировать его для повышения производительности.
Инструкция по сбросу протокола актуальна для всех версий Windows. На видео заснят процесс сброса на Windows 7.
Источник
Устранение неполадок подключения TCP/IP
Вы можете встретить ошибки подключения в конце приложения или ошибках времени. Наиболее распространенные сценарии:
- Подключение приложения к серверу базы данных
- SQL времени.
- Ошибки timeout приложения BizTalk
- Сбои протокола удаленного рабочего стола (RDP)
- Сбои в доступе к файлам
- Общие возможности подключения
Если вы подозреваете, что проблема находится в сети, вы собираете сетевой след. Затем трассировка сети будет отфильтрованной. При устранении ошибок подключения может возникнуть сброс TCP в сетевом захвате, который может указывать на проблему сети.
TCP определяется как протокол, ориентированный на подключение и надежный. Одним из способов обеспечения надежности TCP является процесс рукопожатия. Создание сеанса TCP начнется с трехначерного рукопожатия, а затем с передачи данных, а затем с четырехнабного закрытия. Четырех способ закрытия, в котором отправитель и приемник соглашаются на закрытие сеанса, является изящным закрытием. После закрытия в 4-м режиме на сервере будет 4 минуты времени (по умолчанию), в течение которых будут обрабатываться все ожидающих пакеты в сети, это TIME_WAIT состояние. После завершения TIME_WAIT состояния все ресурсы, выделенные для этого подключения, будут освобождены.
Сброс TCP — это резкое закрытие сеанса; это приводит к немедленному отпусту ресурсов, выделенных для подключения, и стирается вся другая информация о подключении.
Сброс TCP идентифицирован флагом RESET в заглавной загонке 1 TCP.
Трассировка сети в источнике и пункте назначения позволяет определить поток трафика и узнать, в какой момент наблюдается сбой.
В следующих разделах описаны некоторые сценарии, когда вы увидите сброс.
Капли пакетов
Когда один одноранговой TCP отправляет пакеты TCP, для которых нет ответа, полученного с другого конца, одноранговая служба TCP в конечном итоге перенаправляет данные, а когда ответа не получено, сеанс завершится отправкой сброса ACK (это означает, что приложение признает все данные, которые обмениваются до сих пор, но из-за сброса пакета подключение закрывается).
Одновременные сетевые трассировки источника и назначения помогут вам проверить это поведение, если на стороне источника вы увидите, что пакеты перенаправлены, а в пункте назначения ни один из этих пакетов не будет замечен. Это означает, что сетевое устройство между источником и пунктом назначения сбрасывает пакеты.
Если начальное рукопожатие TCP не удается из-за перепадов пакетов, вы увидите, что пакет TCP SYN переназначяется только три раза.
Источник, подключающийся к порту 445:
Сторона назначения: применяя тот же фильтр, пакеты не видятся.
Для остальных данных TCP повторно передает пакеты пять раз.
След сторон 192.168.1.62:
Боковой след назначения 192.168.1.2:
Вы не увидите ни одного из вышеуказанных пакетов. Вовлеките свою команду в сеть, чтобы исследовать различные хмеля и узнать, являются ли какие-либо из них потенциально причиной падений в сети.
Если вы видите, что пакеты SYN достигают пункта назначения, но пункт назначения по-прежнему не отвечает, убедитесь, что порт, к который вы пытаетесь подключиться, находится в состоянии прослушивания. (Выход Netstat поможет). Если порт прослушивается, а ответа нет, может произойть падение WFP.
Неправильный параметр в загонке TCP
Вы видите такое поведение, когда пакеты изменяются в сети средними устройствами, а TCP на приемном конце не может принять пакет, например измененный номер последовательности, или пакеты, повторяющиеся средним устройством путем изменения номера последовательности. Опять же, одновременный сетевой след в источнике и пункте назначения сможет сообщить, изменен ли какой-либо из заглавных пунктов TCP. Начните с сравнения трассировки источника и трассировки назначения, вы сможете заметить, есть ли изменения в самом пакете или новые пакеты достигают пункта назначения от имени источника.
В этом случае вам снова потребуется помощь сетевой группы, чтобы определить любое устройство, которое изменит пакеты или переиграет пакеты в пункт назначения. Наиболее распространенными являются устройства RiverBed или ускорители WAN.
Сброс сторон приложения
Если вы определили, что сбросы не вызваны переназначением или неправильным параметром или пакетами, которые будут изменены с помощью сетевого следа, сузить его до сброса уровня приложения.
Сброс приложения — это те, где вы видите флаг подтверждения, установленный вместе с 1 флагом сброса. Это означает, что сервер признает получение пакета, но по каким-либо причинам он не принимает подключение. Это когда приложение, которое получило пакет, не понравилось то, что он получил.
На приведенных ниже скриншотах видно, что пакеты, которые видны в источнике и пункте назначения, одинаковы без каких-либо изменений или капель, но вы видите явный сброс, отправленный пунктом назначения в источник.
Сторона источника
На трассировку в сторону назначения
Вы также видите пакет флага ACK+RST в случае, если syn пакета создания TCP отправляется. Пакет TCP SYN отправляется, когда клиент хочет подключиться к определенному порту, но если пункт назначения/сервера по какой-либо причине не хочет принимать пакет, он отправляет пакет ACK+RST.
Приложение, вызываее сброс (идентифицированное по номерам портов), должно быть исследовано, чтобы понять, что вызывает его для сброса подключения.
Вышеуказанная информация о сбросах с точки зрения TCP, а не UDP. UDP — это протокол без подключения, и пакеты отправляются ненадежно. При использовании UDP в качестве транспортного протокола повторной передачи или сброса не будет. Однако UDP использует ICMP в качестве протокола отчетов об ошибках. Когда пакет UDP отправляется в порт, а пункт назначения не указан в списке, вы увидите недостижимый пункт назначения, отправляемый из хоста назначения ICMP: сообщение порт недостижимое сразу после пакета UDP.
Во время устранения неполадок с подключением можно также увидеть в сетевом следе, на который машина получает пакеты, но не реагирует. В таких случаях может произойть снижение уровня сервера. Чтобы понять, сбрасывает ли локальный брандмауэр пакет, введи аудит брандмауэра на компьютере.
Затем можно просмотреть журналы событий безопасности, чтобы просмотреть падение пакета на определенном порт-IP и связанный с ним фильтровый ID.
Источник
Устранение проблем нехватки портов
Протоколы TCP и UDP работают на основе номеров портов, используемых для установления подключения. Любому приложению или службе, необходимой для установления подключения TCP/UDP, потребуется порт на его стороне.
Существует два типа портов:
- Эфемерныепорты, которые обычно являются динамическими портами, являются набором портов, которые по умолчанию будут иметь каждый компьютер, чтобы сделать исходящие подключения.
- Известные порты — это определенный порт для конкретного приложения или службы. Например, служба файловой серверной службы находится в порту 445, HTTPS — 443, HTTP — 80, RPC — 135. Настраиваемые приложения также будут иметь определенные номера портов.
Клиенты при подключении к приложению или службе будут использовать эфемерный порт из его машины для подключения к известному порту, определенному для этого приложения или службы. Браузер на клиентской машине будет использовать эфемерный порт для подключения к https://www.microsoft.com порту 443.
В сценарии, в котором один и тот же браузер создает много подключений к нескольким веб-сайтам, для любого нового подключения, которое пытается использовать браузер, используется эфемерный порт. Через некоторое время вы заметите, что подключения начнут сбой и одна высокая возможность для этого будет потому, что браузер использовал все доступные порты для подключения за пределами и любые новые попытки установить подключение не удастся, так как нет более доступных портов. Когда все порты на компьютере используются, мы используем его как истощение порта.
Динамический диапазон порта по умолчанию для TCP/IP
Чтобы соответствовать рекомендациям управления номерами, заданными в Интернете, Корпорация Майкрософт увеличила динамический диапазон клиентских портов для исходяющих подключений. Новый порт запуска по умолчанию — 49152, а конечный порт по умолчанию — 65535. Это изменение конфигурации более ранних версий Windows, которые использовали диапазон портов по умолчанию от 1025 до 5000.
Динамический диапазон порта можно просмотреть на компьютере с помощью следующих команд сетки:
- netsh int ipv4 show dynamicport tcp
- netsh int ipv4 show dynamicport udp
- netsh int ipv6 show dynamicport tcp
- netsh int ipv6 show dynamicport udp
Диапазон устанавливается отдельно для каждого транспорта (TCP или UDP). Диапазон порта теперь — это диапазон, который имеет отправную точку и конечную точку. Клиенты Корпорации Майкрософт, развертывавшие серверы, работающие Windows Server, могут иметь проблемы, влияющие на связь RPC между серверами, если брандмауэры используются во внутренней сети. В этих ситуациях рекомендуется перенастроить брандмауэры, чтобы разрешить трафик между серверами в динамическом диапазоне портов от 49152 до 65535. Этот диапазон помимо известных портов, используемых службами и приложениями. Или диапазон портов, используемый серверами, может быть изменен на каждом сервере. Этот диапазон можно настроить с помощью команды netsh следующим образом. Вышеуказанная команда задает динамический диапазон порта для TCP.
Порт запуска — это число, а общее число портов — диапазон. Ниже приводится пример команд:
- netsh int ipv4 set dynamicport tcp start=10000 num=1000
- netsh int ipv4 set dynamicport udp start=10000 num=1000
- netsh int ipv6 set dynamicport tcp start=10000 num=1000
- netsh int ipv6 set dynamicport udp start=10000 num=1000
Эти примерные команды устанавливают динамический диапазон портов для запуска в порте 10000 и окончания в порте 10999 (1000 портов). Минимальный диапазон портов, который можно установить, — 255. Минимальный порт запуска, который можно установить, — 1025. Максимальный конечный порт (в зависимости от настраиваемого диапазона) не может превышать 65535. Чтобы повторить поведение Windows Server 2003, используйте 1025 в качестве порта запуска, а затем используйте 3976 в качестве диапазона для TCP и UDP. Это приводит к запуску порта 1025 и конечного порта 5000.
В частности, для исходящие подключения в качестве входящих подключений не потребуется эфемерный порт для приемки подключений.
Так как исходящие подключения начинают сбой, вы увидите много ниже поведения:
Не удается войти в машину с учетными данными домена, однако вход с локальной учетной записью работает. Для регистрации домена потребуется связаться с dc для проверки подлинности, которая снова является исходящие подключения. Если у вас есть набор учетных данных кэша, вход в домен может по-прежнему работать.
Сбои обновления групповой политики:
Недоступными являются файлы:
RDP с пострадавшего сервера не удается:
Любое другое приложение, запущенное на компьютере, начнет выдать ошибки
Перезагрузка сервера позволит решить проблему временно, но все симптомы будут возвращаться через некоторое время.
Если вы подозреваете, что машина находится в состоянии истощения порта:
Попробуйте сделать исходящие подключения. На сервере/компьютере можно получить доступ к удаленной совместной информации или попробовать RDP на другом сервере или telnet на сервере в порту. Если исходящие подключения не удается для всех этих, перейдите к следующему шагу.
Откройте для просмотра событий и в системных журналах и посмотрите события, которые четко указывают текущее состояние:
Event ID 4227
ID события 4231
Сбор netstat -anob выходных данных с сервера. Вывод netstat покажет вам огромное количество записей для TIME_WAIT для одного piD.
После изящного закрытия сеанса или внезапного закрытия сеанса через 4 минуты (по умолчанию) порт, используемый для этого процесса или приложения, будет выпущен обратно в доступный пул. В течение 4 минут состояние подключения TCP будет TIME_WAIT состояние. В ситуации, когда вы подозреваете истощение порта, приложение или процесс не смогут освободить все потребляемые порты и останутся в TIME_WAIT состоянии.
Вы также можете CLOSE_WAIT подключений состояния в одном и том же выходе, однако CLOSE_WAIT состояние — это состояние, когда одна сторона одноранговой сети TCP не имеет больше данных для отправки (fin sent), но может получать данные с другого конца. Это состояние не обязательно указывает на исчерпание порта.
Наличие огромных подключений в TIME_WAIT состоянии не всегда указывает на то, что сервер в настоящее время находится вне портов, если первые две точки не будут проверены. Наличие многких подключений TIME_WAIT указывает на то, что процесс создает большое количество подключений TCP и в конечном итоге может привести к исчерпанию порта.
Netstat был обновлен в Windows 10 с добавлением переключателя -Q, чтобы показать порты, которые перешли из времени ожидания, как в состоянии BOUND. Выпущено обновление Windows 8.1 и Windows Server 2012 R2, которое содержит эту функцию. В cmdlet PowerShell Get-NetTCPConnection в Windows 10 также показаны эти порты BOUND.
До 10/2016 netstat был неточным. Исправления для netstat, от порта до 2012 R2, позволили Netstat.exe и Get-NetTcpConnection правильно сообщать об использовании порта TCP или UDP в Windows Server 2012 R2. Дополнительные Windows Server 2012 см. в Windows Server 2012 R2: hotfixes ephemeral ports.
Откройте командную подсказку в режиме администрирования и запустите приведенную ниже команду
Откройте файл server.etl с помощью сетевого монитора и в разделе фильтра применяйте фильтр Wscore_MicrosoftWindowsWinsockAFD.AFD_EVENT_BIND. Status.LENTStatus.Code == 0x209. Вы должны увидеть записи, которые говорят STATUS_TOO_MANY_ADDRESSES. Если вы не найдете записей, сервер по-прежнему не выходит из портов. Если их найти, можно подтвердить, что сервер находится под истощением порта.
Устранение неполадок в истощении порта
Главное — определить, какой процесс или приложение использует все порты. Ниже приведены некоторые средства, которые можно использовать для изоляции одного процесса
Метод 1
Начните с вывода netstat. Если вы используете Windows 10 или Windows Server 2016, вы можете выполнить команду и проверить для процесса ID, который имеет максимальное количество записей netstat -anobq как BOUND. Кроме того, вы также можете запустить команду PowerShell ниже, чтобы определить процесс:
Большинство утечек портов вызваны процессами пользовательского режима, которые неправильно закрывают порты, когда произошла ошибка. В портах уровня пользователя (на самом деле розетки) обрабатываются. И TaskManager, и ProcessExplorer могут отображать подсчеты обработки, что позволяет определить, какой процесс потребляет все порты.
Для Windows 7 и Windows Server 2008 R2 можно обновить версию PowerShell, чтобы включить вышеуказанный список.
Метод 2
Если метод 1 не помогает определить процесс (до Windows 10 и Windows Server 2012 R2), то посмотрите на диспетчер задач:
Добавьте столбец под названием «ручки» под сведениями и процессами.
Сортировать ручки столбца, чтобы определить процесс с самым большим числом рули. Обычно виновником может быть процесс с ручками более 3000, за исключением таких процессов, как System, lsass.exe, store.exe, sqlsvr.exe.
Если какой-либо другой процесс имеет более высокое число, остановите этот процесс, а затем попробуйте войти с помощью учетных данных домена и узнайте, удастся ли ему это сделать.
Метод 3
Если диспетчер задач не помог вам определить процесс, используйте Обозреватель процессов для изучения проблемы.
Действия по использованию проводника процесса:
Скачайте Explorer процесса и запустите его с повышенными уровнями.
Alt + щелкните заглавную колонку, выберите Выберите столбцыи на вкладке Производительность процесса добавьте количество обработок.
Выберите Представление \ Показать нижнюю области.
Выберите Представление \ Представление нижней области \ Ручки.
Щелкните столбец Ручки для сортировки по этому значению.
Изучите процессы с более высоким количеством обрабатываемой обработки, чем остальные (если вы не можете сделать исходящие подключения более 10 000).
Щелкните, чтобы выделить один из процессов с высоким количеством обработки.
В нижней области окантовки, указанные ниже, являются розетками. (Sockets — это технически обработки файлов).
Некоторые из них являются нормальными, но большое число из них не являются (от сотен до тысяч). Закрой процесс, о чем идет речь. Если это восстанавливает исходящие подключения, то вы еще раз доказали, что это приложение является причиной. Свяжитесь с поставщиком этого приложения.
Наконец, если вышеперечисленные методы не помогли изолировать процесс, предлагаем собрать полную свалку памяти машины в состоянии проблемы. При сбросе будет посвеяно, какой процесс имеет максимальные ручки.
В качестве обходного решения перезагрузка компьютера возвращает его в нормальное состояние и поможет вам решить проблему в настоящее время. Однако при нецелесообразной перезагрузке можно также рассмотреть возможность увеличения количества портов на машине с помощью нижеупомяг.
В этом случае динамический диапазон портов будет начинаться в порту 10000 и заканчивается в порте 10999 (1000 портов). Минимальный диапазон портов, который можно установить, — 255. Минимальный порт запуска, который можно установить, — 1025. Максимальный конечный порт (в зависимости от настраиваемого диапазона) не может превышать 65535.
Обратите внимание, что увеличение динамического диапазона портов является не постоянным решением, а временным. Вам потребуется отслеживать, какие процессы и процессоры потребляют максимальное количество портов и устраняют неполадки с точки зрения этого процесса, чтобы понять, почему он потребляет такое большое количество портов.
Для Windows 7 и Windows Server 2008 R2 можно использовать ниже скрипт для сбора вывода netstat с определенной частотой. Из выходных данных можно увидеть тенденцию использования порта.
Источник