Для чего нужна команда и когда она удобнее окна настроек
Смена DNS через свойства адаптера занимает несколько кликов, но плохо повторяется: на каждом компьютере приходится проходить тот же путь вручную. Командлет Set-DnsClientServerAddress делает то же самое одной строкой, и её можно вставить в инструкцию для домашних или в небольшой скрипт.
Команда меняет DNS у конкретного интерфейса, а не у всей системы сразу. Поэтому сначала нужно узнать имя подключения. Список имён показывает Get-NetAdapter, а текущие значения DNS показывает Get-DnsClientServerAddress.
Для общей справки о том, как это делается мышью в разных версиях Windows, есть отдельные страницы про Windows 10 и Windows 11. Здесь описан только путь через командную строку.
Порядок действий от проверки до результата
Выполняйте шаги последовательно, и ошибиться будет сложно.
- Откройте PowerShell от имени администратора.
- Выполните Get-NetAdapter и найдите имя нужного подключения, например Wi-Fi или Ethernet.
- Запишите текущие DNS-серверы командой Get-DnsClientServerAddress -InterfaceAlias "Wi-Fi", чтобы можно было вернуть всё назад.
- Задайте новые значения: Set-DnsClientServerAddress -InterfaceAlias "Wi-Fi" -ServerAddresses ("адрес1","адрес2").
- Проверьте результат повторным запуском Get-DnsClientServerAddress.
- Очистите DNS-кэш командой Clear-DnsClientCache, чтобы старые ответы не мешали проверке.
В кавычках подставьте реальные адреса серверов, которые вы выбрали осознанно. Первый адрес считается основным, второй — запасным.
Как вернуть автоматическую настройку
Если после эксперимента нужно вернуть значения, полученные от роутера, используйте ключ сброса: Set-DnsClientServerAddress -InterfaceAlias "Wi-Fi" -ResetServerAddresses. После этого адаптер снова будет получать DNS по DHCP, как и раньше.
Это простой откат, потому что не требует помнить старые адреса. Вручную записанные значения полезны, только если вы раньше задавали DNS вручную и хотите восстановить именно их.
Помните, что значения IPv4 и IPv6 хранятся отдельно. Команда по умолчанию меняет те, которые вы передали, поэтому для IPv6 нужно указывать адреса соответствующего формата. Если вы не используете IPv6 осознанно, обычно достаточно настроить IPv4.
Типичные ошибки и их причины
Чаще всего командлет не срабатывает по небольшому набору причин.
| Симптом | Вероятная причина |
|---|---|
| Отказано в доступе | PowerShell запущен без прав администратора |
| Не найден интерфейс | Имя написано неточно, проверьте через Get-NetAdapter |
| Значения не изменились | Заданы для другого адаптера, чем используется сейчас |
| Сайты не открываются после смены | Указан недоступный DNS-сервер, адрес введён с опечаткой |
| Через время вернулись прежние значения | Параметры перезаписаны другой программой или политикой |
Последний случай встречается на рабочих компьютерах с групповыми политиками: администратор организации может принудительно задавать DNS, и ваши изменения не сохранятся. В таком случае обратитесь к тому, кто отвечает за сеть.
Как проверить, что новые серверы действительно работают и что не стоит делать
Простого вывода настроек недостаточно: адрес может быть записан, но сервер при этом не отвечает. Проверьте, что имена разрешаются, командой Resolve-DnsName с любым нужным именем. Для явной проверки конкретного сервера укажите его параметром -Server: Resolve-DnsName имя -Server адрес. Если ответ приходит, сервер доступен и отвечает.
Если ответа нет, вернитесь к автоматическим настройкам и проверьте доступность шлюза. Бывает, что дело вовсе не в DNS, а в потерянной связи с роутером.
Сравнивая скорость ответов разных серверов, не делайте поспешных выводов по одному запросу: результат зависит от кэша, времени суток и маршрута.
Не вписывайте адреса из случайных источников: DNS-сервер видит, какие имена вы запрашиваете, и вы доверяете ему часть сведений о своей работе в сети. Выбирайте серверы провайдера, роутера либо известных публичных сервисов, с условиями которых вы ознакомились.
Не меняйте DNS на рабочем компьютере без согласования с администратором: внутренние имена организации могут перестать открываться. И не забудьте сохранить исходные значения до начала изменений.
Пример для домашнего компьютера и как действует несколько интерфейсов
Предположим, что вы хотите на время задать для Wi-Fi другие DNS-серверы и проверить, как это скажется на открытии сайтов. Сначала запишите текущие значения. Затем задайте новые командой с двумя адресами, очистите кэш и проверьте разрешение нескольких имён через Resolve-DnsName. Если всё в порядке, оставьте как есть. Если появились сбои, выполните сброс ключом -ResetServerAddresses.
Фиксируйте результат, а не впечатления: откройте несколько разных сайтов, сравните время отклика в обоих вариантах. Один неудачный запуск не повод менять настройки навсегда, ведь причиной может быть кэш или временная нагрузка.
Если вы настраиваете сеть для всей семьи, разумнее изменить DNS в роутере: тогда он будет действовать для всех устройств сразу, и на каждом компьютере ничего менять не придётся.
На компьютере может быть сразу несколько активных подключений: проводное и беспроводное, виртуальные адаптеры. Команда меняет DNS только у указанного интерфейса. Если вы настроили Wi-Fi, а система использует Ethernet, видимого эффекта не будет.
Система выбирает интерфейс по метрике, и порядок использования DNS зависит от этого выбора. Проверить, какой из интерфейсов основной, можно по таблице маршрутов или по выводу Get-NetIPConfiguration. Если нужно, чтобы настройки совпадали, примените команду к каждому интерфейсу отдельно.
Виртуальные адаптеры, созданные программами, лучше не трогать: их параметры управляются самим приложением и могут быть перезаписаны при следующем запуске.
Если команда нужна для повторяющейся настройки, сохраните её вместе с комментарием в текстовый файл: какой интерфейс, какие адреса, зачем меняли. Через время пригодится и сама строка, и пометка о причине. Перед массовым применением на нескольких компьютерах проверьте её на одном и убедитесь, что имена интерфейсов совпадают, иначе на части машин команда завершится ошибкой, а настройки останутся прежними.
Если после смены DNS отдельные сайты стали открываться медленнее, не спешите возвращать настройки: первые обращения к новым именам обычно идут дольше, пока кэш пуст. Дайте системе поработать некоторое время и сравните ощущения. Но если сайты не открываются совсем, откат через сброс адресов занимает секунды и не требует перезагрузки.