Windows Server 2022 上搭建 IIS 与 DNS 的完整指南

发布时间:2026/10/24 19:38:25
Windows Server 2022 上搭建 IIS 与 DNS 的完整指南 简介这份文档面向IT运维人员与Windows服务器初学者系统讲解Windows Server 2022环境下Web服务器的搭建与配置流程帮助读者从零完成服务器安装到网站对外访问的完整实践。内容涵盖操作系统安装、服务器功能测试、网站目录创建与素材拷贝、端口与域名配置以及DNS服务器安装和域名解析测试等关键环节并附有各步骤要点提示便于对照操作与排查问题。资源包共1个docx文件约1016KB以图文步骤形式组织适合作为实验指导或日常运维参考手册。目前已有2767人学习下载说明其在Windows服务器入门与实操场景中具有较高参考价值读者可据此快速掌握Web站点部署与域名解析的基本方法。1. 从一台刚装完系统的空服务器说起上周帮一个朋友处理他公司内网的一台测试机系统是 Windows Server 2022装完 IIS 之后浏览器访问http://localhost直接 404他以为是 IIS 没装好重装了三次最后发现是默认站点被停用、网站文件也没拷到wwwroot下。这种翻车在 Windows 服务器上太常见了——系统装完不等于 Web 服务能用IIS 角色装完也不等于站点能访问中间还隔着目录权限、端口占用、防火墙入站规则、DNS 解析这几道坎。这篇笔记按我自己的部署习惯把 Windows Server 2022 上搭 Web 服务器IIS DNS的完整链路走一遍装系统、验功能、挂站点、配端口、做域名解析每一步给出可抄的命令和参数最后落到怎么验证真的跑通。适合刚接触 Windows 服务器、需要在内网或测试环境快速起一个站点的开发者也适合想理清 IIS 站点与 DNS 记录对应关系的老手对照版本差异。2. 装系统与选版本Windows Server 2022 的安装介质和分区取舍2.1 版本选择Standard 还是 Datacenter桌面体验还是核心安装Windows Server 2022 的安装镜像里通常同时带 Standard 和 Datacenter 两个版本以及「服务器核心」和「带桌面体验」两种安装选项。做 Web 服务器我一般选Standard 桌面体验Standard 足够跑 IIS 和 DNSDatacenter 的授权成本对一台测试机没必要桌面体验虽然多占几百 MB 内存和磁盘但图形化的服务器管理器、IIS 管理器对排查站点问题太省事纯核心安装只适合已经脚本化运维的场景。安装介质从微软官方渠道获取 ISO校验 SHA256 后再挂载这一步别省——镜像损坏导致的安装中断报错信息往往指向磁盘而不是镜像很容易误判。启动安装程序后按提示选语言、时区、接受许可协议到「选择安装类型」时选「自定义仅安装 Windows高级」因为我们要自己规划分区。2.2 分区规划系统盘和数据盘分开分区这一步是血泪经验系统盘和数据盘一定分开。我见过太多把网站文件直接放 C 盘、结果系统盘写满导致 IIS 日志写不进去、站点假死的案例。常见做法是给系统盘 100120 GB剩下的空间单独划一个数据盘比如 D 盘网站目录、日志、备份都放数据盘。安装程序里新建分区时系统盘留足空间其余未分配空间先不处理进系统后再用磁盘管理初始化成数据盘。格式化选 NTFS这是 IIS 和权限体系的原生文件系统别用 exFAT 或 FAT32——后者不支持大于 4 GB 的单文件和细粒度 ACL 权限。安装过程会重启数次期间不要拔介质。装完后第一次登录要求设置管理员密码密码策略默认较严长度、复杂度、不能含用户名设一个符合策略的强密码并记下来后面远程和 IIS 配置都要用。2.3 装完先做的三件事改名、打补丁、开远程系统装完别急着装 IIS先做三件基础事。第一改计算机名用有意义的名称比如web-test-01改完重启生效# 以管理员身份打开 PowerShell Rename-Computer -NewName web-test-01 -Restart-NewName是新的计算机名-Restart表示改完立即重启。计算机名会影响后面 DNS 记录和证书的规划早改早省事。第二装系统更新。Windows Server 2022 的累积更新里包含 IIS 相关组件的安全修复装完系统先跑一遍更新避免后面站点起来了才发现某个组件版本有已知问题。图形界面走「设置 → 更新和安全」或者用命令# 安装 PSWindowsUpdate 模块后检查并安装更新 Install-Module PSWindowsUpdate -Force Get-WindowsUpdate -Install -AcceptAll -AutoReboot-AcceptAll表示接受所有更新-AutoReboot允许自动重启。生产环境建议先看更新列表再决定测试机可以一把梭。第三按需开启远程桌面方便后续从办公机操作# 开启远程桌面并放行防火墙规则 Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Control\Terminal Server -Name fDenyTSConnections -Value 0 Enable-NetFirewallRule -DisplayGroup 远程桌面第一条把注册表里禁用远程桌面的开关置 0第二条放行「远程桌面」这个防火墙规则组。注意远程桌面默认端口 3389内网测试够用暴露到公网前务必评估。3. 装 IIS 角色用 PowerShell 一次装全 Web 服务器组件3.1 为什么用命令行装而不是点向导服务器管理器里「添加角色和功能」的向导当然能装 IIS但向导的勾选项多、容易漏而且没法复用。我习惯用 PowerShell 的Install-WindowsFeature一次装全命令本身就是文档换台机器复制粘贴就行。IIS 的核心角色名是Web-Server但只装它的话静态页面能跑ASP.NET、管理控制台、常见 HTTP 功能都缺站点一挂就报 500 或 404.3。3.2 一条命令装齐 Web 服务器角色和常用子功能# 安装 IIS 核心角色及常用子功能 Install-WindowsFeature -Name Web-Server, Web-WebServer, Web-Common-Http, Web-Default-Doc, Web-Dir-Browsing, Web-Http-Errors, Web-Static-Content, Web-Http-Redirect, Web-Health, Web-Http-Logging, Web-Performance, Web-Stat-Compression, Web-Security, Web-Filtering, Web-App-Dev, Web-Net-Ext45, Web-Asp-Net45, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Mgmt-Tools, Web-Mgmt-Console -IncludeManagementTools-Name后面跟角色和子功能名反引号是 PowerShell 的续行符。几个关键项说明Web-Default-Doc提供默认文档index.html、default.aspx 等Web-Static-Content处理静态文件Web-Http-Logging开日志排错全靠它Web-Filtering是请求筛选限制文件扩展名和 HTTP 方法Web-Asp-Net45和Web-Net-Ext45是 .NET 4.5 的 ASP.NET 支持Web-Mgmt-Console就是 IIS 管理器图形界面。-IncludeManagementTools确保管理控制台一起装上。装完命令会返回一个结果表看Success列是否为True。如果某个子功能名拼错整条命令会失败并提示找不到功能名这时用Get-WindowsFeature Web-*列出所有可用名称对照。3.3 验证 IIS 是否真的在跑装完别只看向导的「安装成功」要验证服务状态和默认页面# 查看 W3SVC 服务状态和默认站点响应 Get-Service W3SVC Invoke-WebRequest -Uri http://localhost -UseBasicParsing | Select-Object StatusCodeW3SVC是 IIS 的万维网发布服务状态应为Running。Invoke-WebRequest请求本机 80 端口正常返回StatusCode 200并带 IIS 默认欢迎页内容。如果返回 404先别怀疑安装去C:\inetpub\wwwroot看有没有iisstart.htm再看 IIS 管理器里 Default Web Site 是否处于「已启动」状态——这就是开头那个朋友踩的坑默认站点被停用装多少次都没用。提示Invoke-WebRequest在部分老版本 PowerShell 里需要-UseBasicParsing才能在没有 IE 引擎的环境下正常解析加上更稳。4. 挂载站点目录、权限、端口三件事一次配对4.1 建站点目录并拷贝网站素材先在数据盘建站点根目录按站点名分目录方便以后一台服务器挂多个站# 在数据盘创建站点目录 New-Item -ItemType Directory -Path D:\sites\demo -Force # 把网站素材从临时目录拷贝进去示例源路径按实际替换 Copy-Item -Path E:\upload\demo-site\* -Destination D:\sites\demo -Recurse -Force-Force允许覆盖已存在目录-Recurse递归拷贝子目录。素材拷完用Get-ChildItem D:\sites\demo确认首页文件如index.html在根目录下IIS 的默认文档是按名称匹配的首页藏在子目录里就会 404。4.2 用 PowerShell 建站点并指定端口IIS 管理器里「添加网站」能建但命令行建站更利于记录参数。核心是New-WebSite# 新建站点绑定 8080 端口指定物理路径和应用池 New-WebAppPool -Name demo-pool New-WebSite -Name demo -PhysicalPath D:\sites\demo -Port 8080 -ApplicationPool demo-pool -Force-Port 8080是站点监听端口同一台服务器上端口不能重复80 被默认站点占了新站要么换端口要么先停默认站点。-ApplicationPool指定独立应用池站点之间隔离一个池崩了不影响另一个。-Force表示同名站点存在时覆盖重建。端口选择上内网测试用 8080、8081 这类高位端口最省事避开 80、443 和系统保留端口。如果确实要用 80先Stop-WebSite -Name Default Web Site停掉默认站点再建新站绑 80。4.3 目录权限IIS_IUSRS 和应用池身份站点建好但访问 401 或 500.19十有八九是权限问题。IIS 的工作进程身份需要读权限常见做法是给站点目录授予IIS_IUSRS组的读取和执行权限# 授予 IIS_IUSRS 组对站点目录的读取和执行权限 $acl Get-Acl D:\sites\demo $rule New-Object System.Security.AccessControl.FileSystemAccessRule( IIS_IUSRS, ReadAndExecute, ContainerInherit,ObjectInherit, None, Allow) $acl.SetAccessRule($rule) Set-Acl -Path D:\sites\demo -AclObject $aclReadAndExecute是读取和执行权限ContainerInherit,ObjectInherit让权限继承到子目录和文件。如果站点需要写文件上传、日志再单独给应用池身份如IIS AppPool\demo-pool加修改权限别图省事给Everyone完全控制——这是内网测试机最常见的权限滥用。4.4 防火墙放行站点端口本机能访问不代表别的机器能访问Windows 防火墙默认拦入站。给 8080 端口加一条入站规则# 放行 TCP 8080 入站 New-NetFirewallRule -DisplayName IIS Demo 8080 -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow-Direction Inbound是入站-LocalPort 8080对应站点端口-Action Allow放行。改端口时记得同步改这条规则否则会出现「本机通、外部不通」的玄学现象。5. 域名解析装 DNS 服务器并配 A 记录5.1 装 DNS 角色内网环境没有公网 DNS 可用时在服务器上装 DNS 角色把域名解析到本机 IP# 安装 DNS 服务器角色 Install-WindowsFeature -Name DNS -IncludeManagementTools装完 DNS 服务会自动启动用Get-Service DNS确认状态为Running。DNS 角色和 IIS 可以装在同一台机器上测试环境够用生产环境通常分开避免单点。5.2 建正向查找区域和 A 记录假设服务器内网 IP 是192.168.10.20要给站点配域名demo.internal先建正向查找区域再加 A 记录# 建正向查找区域主区域 Add-DnsServerPrimaryZone -Name internal -ZoneFile internal.dns # 添加 A 记录把 demo.internal 解析到服务器 IP Add-DnsServerResourceRecordA -Name demo -ZoneName internal -IPv4Address 192.168.10.20Add-DnsServerPrimaryZone建的是主区域-ZoneFile指定区域文件名。Add-DnsServerResourceRecordA的-Name demo加上区域名就是完整域名demo.internal-IPv4Address指向站点所在服务器。如果站点端口不是 80访问时要带端口比如http://demo.internal:8080——DNS 只负责域名到 IP 的转换不处理端口。5.3 客户端指向这台 DNS 并验证解析在需要访问站点的机器上把 DNS 服务器地址改成192.168.10.20然后验证# 验证域名解析 Resolve-DnsName -Name demo.internal -Server 192.168.10.20-Server指定查询的 DNS 服务器返回结果里IPAddress应为192.168.10.20。解析通了但网页打不开回到第 4 章查端口和防火墙解析不通查 DNS 区域是否建对、客户端 DNS 是否指向正确。6. 避坑与排查五个装 IIS 时最容易翻车的点6.1 现象浏览器 404但 IIS 管理器显示站点已启动原因通常是默认文档没配或首页文件名不在默认列表里。IIS 默认文档列表包含Default.htm、index.html、iisstart.htm等如果你的首页叫home.html访问根路径就会 404。解决在 IIS 管理器站点「默认文档」里加一条或用命令Add-WebConfigurationProperty -PSPath IIS:\Sites\demo -Filter system.webServer/defaultDocument/files -Name . -Value {valuehome.html}追加。6.2 现象访问报 500.19错误码指向配置文件原因是web.config里用了未安装的模块或权限不足。先看错误页里的「配置错误」具体节点常见是 URL 重写模块没装Web-Http-Redirect不含 URL Rewrite需要单独装或者web.config所在目录的 NTFS 权限没给IIS_IUSRS读权限。解决补装对应模块或按 4.3 节重新授目录权限。6.3 现象本机能访问局域网其他机器访问超时原因是防火墙没放行站点端口或者服务器网络配置文件是「公用」导致规则不生效。解决按 4.4 节加New-NetFirewallRule并用Get-NetFirewallProfile确认当前网络配置文件的入站策略。测试机常把网络设为「专用」规则才按预期生效。6.4 现象站点端口改了访问还是旧页面原因是浏览器缓存或 DNS 缓存。先ipconfig /flushdns清 DNS 缓存再用无痕窗口访问如果站点绑定了多个端口确认 IIS 管理器里「绑定」列表只保留了新端口旧端口绑定没删会导致请求落到旧配置。6.5 现象DNS 记录加了客户端解析不到原因是客户端 DNS 没指向这台服务器或者区域名和查询名不匹配。用Resolve-DnsName -Name demo.internal -Server 192.168.10.20直连查询能通、客户端默认查询不通就是客户端 DNS 配置问题直连也不通检查 A 记录的-Name是否多写了区域后缀-Name demo.internal加-ZoneName internal会变成demo.internal.internal。7. 装完怎么验证从本机到跨机的一次完整走查站点和 DNS 都配完后别只在本机浏览器点一下就算完按「本机 → 同网段另一台机器 → 域名访问」三层走一遍才能确认整条链路通。我一般按下面这个顺序验验证层级命令/操作期望结果IIS 服务Get-Service W3SVCRunning本机 IP 访问Invoke-WebRequest http://192.168.10.20:8080200返回站点首页本机域名访问Invoke-WebRequest http://demo.internal:8080200内容同上跨机 IP 访问另一台机器浏览器访问http://192.168.10.20:8080页面正常跨机域名访问另一台机器Resolve-DnsName demo.internal后访问解析到正确 IP页面正常日志确认Get-Content C:\inetpub\logs\LogFiles\W3SVC*\*.log -Tail 5有对应请求记录跨机验证时如果 IP 能通、域名不通问题一定在 DNS 侧域名能解析但页面打不开问题在端口或防火墙。日志是最后的黑匣子W3SVC日志目录下按站点 ID 分文件夹请求的时间、客户端 IP、状态码都在里面404 和 500 一眼能看出来。还有一个容易忽略的点验证完把默认站点停掉或删掉避免 80 端口被占、以后建新站绑 80 时冲突。我习惯在验证通过后执行Stop-WebSite -Name Default Web Site并在文档里记下这台机器上已占用的端口清单下次加站点前先对照。从那以后我每次搭完 IIS都强制走一遍「服务状态 → 本机 IP → 本机域名 → 跨机 IP → 跨机域名 → 日志」这条链任何一环断了就停在那一步查不再靠重启和重装碰运气。希望帮到你。本文还有配套的精品资源点击获取

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询