تغییر DNS در ویندوز ۱۰ و ۱۱ و افزودن آدرس IP به کارت شبکه
برای تغییر DNS در ویندوز ۱۰ و ۱۱ کافی است به مسیر Settings › Network & internet بروید، اتصال فعال خود (Wi-Fi یا Ethernet) را باز کنید، در بخش DNS server assignment روی Edit بزنید، حالت را از Automatic (DHCP) به Manual تغییر دهید و آدرسهای دلخواه را وارد کنید. اگر با خط فرمان راحتترید، همین کار با یک دستور Set-DnsClientServerAddress در PowerShell انجام میشود.
در ادامه هر سه روش (تنظیمات گرافیکی، پنجره کلاسیک کارت شبکه و PowerShell) را میبینید، بهعلاوه نکتهای که خیلیها را سردرگم میکند: تغییر DNS روی کامپیوتر شما دقیقاً چه چیزی را عوض میکند و چه چیزی را عوض نمیکند، و چرا هیچکدام از این روشها جای مدیریت رکوردهای دامنه روی نیمسرور را نمیگیرد. چون همان پنجره کارت شبکه جای افزودن آدرس IP دوم هم هست، آن کار را هم در بخش جداگانهای پوشش دادهایم.
پیش از شروع: نسخه ویندوز خود را بررسی کنید
نسخه اصلی این مقاله برای ویندوز ۷ نوشته شده بود. پشتیبانی ویندوز ۷ در ۱۴ ژانویه ۲۰۲۰ و پشتیبانی عمومی ویندوز ۱۰ در ۱۴ اکتبر ۲۰۲۵ به پایان رسیده است. مایکروسافت برای ویندوز ۱۰ برنامهای به نام Extended Security Updates دارد که فقط وصلههای امنیتی را برای مدتی محدود ادامه میدهد و جایگزین ارتقا نیست. بنابراین اگر هنوز روی یکی از این دو نسخه هستید، مهمترین کاری که باید بکنید تغییر DNS نیست، رفتن به یک نسخه پشتیبانیشده است. با این حال مسیرهای زیر روی ویندوز ۱۰ هم کار میکنند و پنجره کلاسیک کارت شبکه در همه نسخهها تقریباً یکسان است.
روش اول: تغییر DNS از تنظیمات ویندوز
ویندوز ۱۱
- کلید
Win + Iرا بزنید تا Settings باز شود. - به Network & internet بروید و روی اتصال فعال (Wi-Fi یا Ethernet) کلیک کنید. در Wi-Fi ابتدا وارد Hardware properties شوید.
- مقابل DNS server assignment دکمه Edit را بزنید.
- از منوی کشویی
Manualرا انتخاب و کلید IPv4 را روشن کنید. - آدرس سرور اول را در Preferred DNS و آدرس دوم را در Alternate DNS وارد کنید و Save بزنید.
ویندوز ۱۰
در ویندوز ۱۰ همین تنظیم زیر Network & Internet › Wi-Fi/Ethernet، روی نام شبکه و سپس در بخش IP settings با دکمه Edit در دسترس است. اگر گزینه را پیدا نکردید، روش دوم همیشه جواب میدهد.
روش دوم: پنجره کلاسیک کارت شبکه
این مسیر در تمام نسخههای ویندوز کار میکند و سریعترین راه رسیدن به آن، اجرای ncpa.cpl در پنجره Run (با Win + R) است. دیگر لازم نیست از Control Panel و صفحه Network and Sharing Center عبور کنید؛ آن صفحه در ویندوز ۱۱ عملاً کنار گذاشته شده و بخشی از گزینههایش به اپلیکیشن Settings منتقل شده است، اما میانبر ncpa.cpl همچنان مستقیم شما را به فهرست کارتهای شبکه میرساند.

در نسخههای قدیمیتر، همین صفحه از Control Panel و با جستوجوی Network and Sharing Center هم باز میشد.

در آن صفحه، گزینه Change adapter settings در ستون کناری همان چیزی است که دستور ncpa.cpl مستقیم باز میکند.

روی کارت شبکه فعال راستکلیک کنید و Properties را بزنید. اگر چند کارت دارید (مثلاً هم Wi-Fi و هم Ethernet یا یک آداپتور مجازی)، تنظیم را باید روی همان کارتی اعمال کنید که واقعاً اینترنت از آن میآید. همین پنجره روی Windows Server هم دقیقاً به همین شکل وجود دارد؛ اگر با Remote Desktop به یک سرور مجازی ویندوزی در ایران وصل میشوید، میانبر ncpa.cpl همانجا هم جواب میدهد. روی ویندوز سرور، پیش از کار با مرورگر معمولاً باید تنظیمات امنیتی اینترنت اکسپلورر را هم غیرفعال کنید.

در فهرست باز شده، Internet Protocol Version 4 (TCP/IPv4) را انتخاب و روی Properties کلیک کنید. همین پنجره جای افزودن آدرس IP دوم به کارت شبکه هم هست که با دکمه Advanced انجام میشود؛ پایینتر جداگانه توضیحش دادهایم.

گزینه Use the following DNS server addresses را فعال و دو آدرس را وارد کنید.

تیک Validate settings upon exit را بزنید تا ویندوز بلافاصله بعد از OK تنظیمات را تست کند. اگر از IPv6 هم استفاده میکنید، همین کار را جداگانه روی Internet Protocol Version 6 (TCP/IPv6) تکرار کنید؛ در غیر این صورت ممکن است ویندوز همچنان بخشی از پرسوجوها را از مسیر IPv6 و به سرور قبلی بفرستد.
روش سوم: تغییر DNS با PowerShell
PowerShell را با دسترسی Administrator باز کنید. ابتدا نام دقیق کارت شبکه و DNS فعلی را ببینید:
Get-NetAdapter Get-DnsClientServerAddress -AddressFamily IPv4
سپس با نام همان کارت (مقدار InterfaceAlias) آدرسها را ست کنید:
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses ("1.1.1.1","1.0.0.1")
این دستور سرورهای IPv4 را ست میکند. اگر IPv6 هم روی شبکه شما فعال است، همان دستور را یک بار دیگر با آدرسهای نسخه ۶ همان سرویس اجرا کنید؛ وگرنه بخشی از پرسوجوها از مسیر IPv6 و به سرور قبلی میرود:
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ServerAddresses ("2606:4700:4700::1111","2606:4700:4700::1001")
برای بازگشت به حالت خودکار و گرفتن DNS از مودم یا سرور DHCP:
Set-DnsClientServerAddress -InterfaceAlias "Ethernet" -ResetServerAddresses
انتخاب آدرسها به موقعیت شما بستگی دارد. ریزالورهای عمومی شناختهشدهای مثل 1.1.1.1 و 8.8.8.8 در دسترساند، اما اینکه کدامیک برای شما سریعتر جواب میدهد از شبکهای به شبکه دیگر فرق میکند و تنها راه فهمیدنش، تست کردن است. سرویسدهنده اینترنت شما هم ریزالور خودش را دارد که گاهی از همه نزدیکتر است.
افزودن یک آدرس IP دوم به همان کارت شبکه
یک کارت شبکه میتواند همزمان چند آدرس IP داشته باشد و تنظیمش دقیقاً در همان پنجرهای انجام میشود که برای DNS باز کردید. معمولاً وقتی به این کار نیاز پیدا میکنید که روی یک سرور ویندوزی میخواهید سرویسی روی آیپی جداگانه گوش بدهد، آیپی اضافهای از دیتاسنتر گرفتهاید، یا لازم است همان کارت همزمان در دو رنج داخلی دیده شود.
یک نکته پیش از شروع: در اپلیکیشن Settings ویندوز ۱۱ برای هر خانواده آدرس فقط یک IP میشود وارد کرد. آدرس دوم و سوم را باید از پنجره کلاسیک یا با PowerShell اضافه کنید.
از پنجره کلاسیک کارت شبکه
- مثل روش دوم، با
ncpa.cplبه کارت شبکه فعال بروید و از Properties آن، Internet Protocol Version 4 (TCP/IPv4) را انتخاب و دوباره Properties را بزنید. - اگر کارت روی Obtain an IP address automatically است، اول باید به حالت دستی بروید. در حالت DHCP، تب Advanced فقط عبارت
DHCP Enabledرا نشان میدهد و دکمه Add غیرفعال است. مقادیر فعلی (IPv4 Address و Subnet Mask و Default Gateway) را با دستورipconfig /allبردارید و همانها را در Use the following IP address وارد کنید تا اتصال قطع نشود. - سرورهای DNS را هم از خروجی همان
ipconfig /allبردارید و در Use the following DNS server addresses بنویسید. وقتی کارت از DHCP خارج شود دیگر DNS هم از DHCP نمیگیرد؛ اگر بخش DNS را روی حالت خودکار رها کنید فهرست سرورها خالی میماند و با اینکه شبکه برقرار است، هیچ نامی ریزالو نمیشود. - روی Advanced کلیک کنید و در تب IP Settings، زیر بخش IP addresses، دکمه Add را بزنید.
- آدرس IP و Subnet mask را وارد و دوباره Add را بزنید. برای هر آدرس اضافه همین کار را تکرار کنید و در پایان با OK از هر سه پنجره خارج شوید.
در نسخههای خیلی قدیمی ویندوز همین مسیر از Control Panel › Network Connections و روی کارتی به نام Local Area Connection باز میشد و نام پروتکل هم فقط «Internet Protocol (TCP/IP)» بود. آن مسیر منسوخ شده است: امروز کارتهای شبکه نام واقعی خودشان (مثل Ethernet یا Wi-Fi) را دارند، پروتکل به دو نسخه مجزای IPv4 و IPv6 تفکیک شده و میانبر ncpa.cpl جای آن مسیر طولانی را گرفته است. مراحل داخل پنجره Advanced اما همان است که بود.
با PowerShell
PowerShell را با دسترسی Administrator باز کنید. اول آدرسهای فعلی کارت را ببینید:
Get-NetIPAddress -InterfaceAlias "Ethernet" -AddressFamily IPv4
در خروجی این دستور ستون PrefixOrigin را نگاه کنید: اگر مقدارش Dhcp باشد یعنی آدرس فعلی از سرور DHCP آمده و اگر Manual باشد یعنی دستی ست شده است. این تفاوت مهم است، چون طبق مستندات مایکروسافت اجرای New-NetIPAddress روی کارتی که DHCP روی آن فعال است، همان لحظه DHCP را غیرفعال میکند. آدرس، گیتوی و DNS ای که از DHCP گرفته شده بود از بین میرود و کارت فقط با همان آدرسی میماند که تازه نوشتهاید؛ روی یک سرور راه دور این یعنی قطع شدن فوری Remote Desktop. پس اگر PrefixOrigin برابر Dhcp بود، اول مقادیر فعلی را با ipconfig /all بردارید و آنها را (شامل DNS) دستی ست کنید، بعد سراغ آدرس دوم بروید.
حالا آدرس جدید را اضافه کنید. مقدار PrefixLength همان Subnet mask است به شکل عددی؛ ۲۴ معادل 255.255.255.0 است:
New-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 192.168.1.50 -PrefixLength 24
اگر میخواهید ویندوز این آدرس را فقط برای دریافت ترافیک نگه دارد و برای اتصالهای خروجی از آن استفاده نکند، پارامتر -SkipAsSource $true را هم اضافه کنید؛ چنین آدرسی در DNS هم ثبت نمیشود. برای حذف یک آدرس اضافه:
Remove-NetIPAddress -InterfaceAlias "Ethernet" -IPAddress 192.168.1.50
چند نکته که نادیده گرفتنشان معمولاً به قطعی سرویس ختم میشود:
- روی هر کارت شبکه فقط یک default gateway بگذارید. برای آدرس دوم گیتوی جدا تعریف نکنید؛ چند گیتوی همزمان مسیریابی را غیرقابل پیشبینی میکند.
- روی سرور مجازی یا اختصاصی، آدرس اضافه را دیتاسنتر به شما اعلام میکند. Subnet mask و گیتوی باید دقیقاً همانی باشد که ارائهدهنده داده است، وگرنه آدرس در ویندوز بالا میآید ولی از بیرون به آن پاسخی داده نمیشود.
- اگر با Remote Desktop وصل هستید، دست بردن در آدرس اصلی کارت اتصال شما را قطع میکند. آدرس اصلی را دست نزنید و فقط آدرس جدید را اضافه کنید؛ پیش از هر تغییری هم دسترسی جایگزین (کنسول یا KVM ارائهدهنده) را آماده داشته باشید تا اگر اتصال قطع شد راه برگشت داشته باشید.
- در شبکه داخلی، آدرسی را انتخاب کنید که خارج از محدوده توزیع DHCP باشد؛ وگرنه ممکن است همان آدرس بعداً به دستگاه دیگری هم داده شود و تداخل IP بگیرید. اگر کارت را از DHCP به حالت دستی بردهاید، همین نکته درباره آدرس اصلی هم صدق میکند: آن آدرس را روی سرور DHCP رزرو کنید یا از بازه توزیع بیرون بیاورید.
تغییر DNS کلاینت چه کاری میکند و چه کاری نمیکند
این تفکیک مهمترین بخش این مقاله است. وقتی DNS ویندوز را عوض میکنید، فقط تعیین میکنید که کامپیوتر شما سؤالش را از کدام سرور بپرسد. این کار:
- روی رکوردهای دامنه شما اثری ندارد. رکوردهای A، AAAA، CNAME، MX و TXT دامنه روی نیمسرورهای آن دامنه نگهداری میشوند، نه روی کلاینت. برای عوض کردن آنها باید از ناحیه کاربری سرویس میزبانی DNS خود اقدام کنید؛ آنجاست که تغییر برای همه کاربران دنیا اعمال میشود.
- مشکل شبکه را حل نمیکند. اگر بستهها اصلاً به مقصد نمیرسند، عوض کردن ریزالور کمکی نمیکند.
- میتواند در دیدن تغییرات جدید کمک کند. اگر رکوردی را تازه عوض کردهاید و ریزالور فعلی هنوز نسخه قدیمی را در کش دارد، پرسیدن از ریزالور دیگری که آن رکورد را کش نکرده، پاسخ تازه را زودتر نشان میدهد. این یعنی «انتشار» تمام نشده، فقط شما از مسیر دیگری نگاه کردهاید.
- فقط روی همین دستگاه اثر دارد. برای اعمال روی کل خانه یا دفتر باید DNS را در مودم یا روتر تنظیم کنید.
اگر هدفتان این است که کاربران هر منطقه به نزدیکترین سرور شما هدایت شوند، این هم کار کلاینت نیست و در سمت نیمسرور با مسیریابی جغرافیایی رکوردها انجام میشود.
پاک کردن کش DNS ویندوز
ویندوز پاسخها را برای مدتی در حافظه نگه میدارد. بعد از هر تغییری، کش را خالی کنید:
ipconfig /flushdns
معادل PowerShell آن:
Clear-DnsClientCache
برای دیدن محتویات فعلی کش:
ipconfig /displaydns
مرورگرها کش جداگانه خودشان را دارند؛ اگر نتیجه هنوز قدیمی است، یک پنجره ناشناس (Incognito) باز کنید یا مرورگر را کامل ببندید و باز کنید.
چطور مطمئن شویم تغییر اعمال شده است
اول تأیید کنید ویندوز واقعاً سرورهای جدید را قبول کرده:
Get-DnsClientServerAddress -AddressFamily IPv4
سپس یک نام را تست کنید و ببینید پاسخ از کدام سرور آمده است:
Resolve-DnsName onlineserver.ir
و برای مقایسه، همان پرسوجو را مستقیم از یک سرور مشخص بپرسید:
Resolve-DnsName onlineserver.ir -Server 1.1.1.1
ابزار قدیمی nslookup هم هنوز کار میکند، ولی خروجی Resolve-DnsName خواناتر است و نوع رکورد و TTL را شفاف نشان میدهد. اگر پاسخها با هم فرق داشتند، معمولاً یعنی یکی از دو ریزالور هنوز نسخه قدیمی رکورد را در کش دارد و باید تا پایان TTL صبر کنید. برای بررسی کلی وضعیت یک دامنه از بیرون هم میتوانید از ابزار بررسی سلامت سایت استفاده کنید.
DNS رمزنگاریشده در ویندوز ۱۱
ویندوز ۱۱ از DNS over HTTPS پشتیبانی میکند و با آن، پرسوجوهای DNS بهجای متن ساده روی HTTPS منتقل میشوند. در همان پنجره Edit DNS settings که در روش اول باز کردید، اگر آدرسی که وارد کردهاید جزو ریزالورهایی باشد که ویندوز الگوی DoH آن را از پیش میشناسد، یک منوی DNS over HTTPS زیر همان فیلد ظاهر میشود و میتوانید آن را روی حالت خودکار بگذارید. اگر این منو را نمیبینید، معنایش این است که ویندوز برای آن آدرس الگویی ندارد؛ نه اینکه کاری اشتباه کرده باشید. فهرست آدرسهایی که میشناسد را با این دستور ببینید:
Get-DnsClientDohServerAddress
اگر ریزالور شما در این فهرست نبود ولی خودش از DoH پشتیبانی میکند، الگویش را دستی اضافه کنید تا در همان منو قابل انتخاب شود (آدرس و الگوی نمونه زیر را با مقادیر واقعی سرویس خودتان عوض کنید):
Add-DnsClientDohServerAddress -ServerAddress "203.0.113.10" -DohTemplate "https://example.net/dns-query" -AllowFallbackToUdp $false -AutoUpgrade $true
اشتباههای رایج
- تنظیم DNS روی کارت شبکهای که اصلاً استفاده نمیشود. با
Get-NetAdapterکارت فعال را پیدا کنید. - وارد کردن آدرس نیمسرور دامنه (مثل
ns1.example.com) در تنظیمات کلاینت. این فیلد فقط آدرس IP یک ریزالور را قبول میکند و نیمسرور دامنه نقش کاملاً متفاوتی دارد. - برداشتن آدرس دوم از یک سرویسدهنده دیگر به این تصور که «پشتیبان» است. ویندوز وقتی سرور اول پاسخ ندهد سراغ سرور دوم میرود؛ اگر آن دو ریزالور سیاست فیلترینگ متفاوتی داشته باشند یا کششان همزمان نباشد، پاسخی که میگیرید بین دو اجرا فرق میکند و عیبیابی سخت میشود. آدرس اول و دوم را از یک سرویس بگیرید؛ ریزالورهای عمومی معمولاً خودشان یک زوج افزونه معرفی میکنند، مثل
1.1.1.1و1.0.0.1یا8.8.8.8و8.8.4.4. - فراموش کردن IPv6 و بعد تعجب از اینکه تغییر اثر نکرده است.
- جابهجا گرفتن دو کار متفاوت: فیلد DNS آدرس ریزالور را میگیرد و فیلدهای بالای همان پنجره آدرس خودِ کارت شبکه را. اگر آدرس اضافهای که از دیتاسنتر گرفتهاید را اشتباهاً در فیلد DNS بنویسید، نه IP اضافه میشود و نه نامها ریزالو میشوند.
- باقی ماندن رکوردهای دستی در فایل
C:WindowsSystem32driversetchostsکه بر هر تنظیم DNS اولویت دارند. اگر نتیجه منطقی نیست، اول این فایل را ببینید. از همین فایل برای دیدن سایت روی هاست جدید پیش از تغییر DNS هم استفاده میشود.
جمعبندی
تغییر DNS در ویندوز کاری چنددقیقهای است: از Settings یا ncpa.cpl یا یک دستور PowerShell، بعد ipconfig /flushdns و در نهایت تأیید با Resolve-DnsName. افزودن آدرس IP دوم هم از همان پنجره و از دکمه Advanced (یا با New-NetIPAddress) انجام میشود. فقط یادتان باشد این تنظیمها فقط رفتار همین کامپیوتر را عوض میکنند. اگر هدفتان مدیریت واقعی رکوردهای یک دامنه است، آن کار در سمت نیمسرورهای همان دامنه انجام میشود، نه در پنجره کارت شبکه ویندوز.