Windows Server 2022 Web服务器搭建:IIS站点挂载与DNS解析实战
发布时间:2026/10/17 0:47:37 锦皓数字建站

简介这份资源面向IT运维人员、系统管理员及计算机相关专业学生聚焦Windows Server 2022环境下Web服务器的完整搭建与配置流程帮助读者掌握从系统安装到网站上线的关键技能。资源包内含1个docx文档压缩包大小约1016KB以图文步骤形式组织内容便于按章节对照操作。文档围绕服务器安装、功能测试、网站挂载与域名解析四大模块展开具体涵盖安装介质准备、语言与时区选择、磁盘分区、网络与硬件测试、网站目录创建与素材拷贝、端口与域名配置以及DNS服务器安装、记录配置和解析测试等环节并特别提示网站端口不可重复使用等实操细节。目前已有2765人学习下载适合需要快速上手Windows服务器Web部署、查漏补缺或作为教学参考的读者使用。1. 从一台裸机到能访问的站点Windows Server 2022 Web 服务器搭建到底在做什么手里拿到一台刚装好 Windows Server 2022 的机器浏览器里敲http://localhost却只看到 IIS 默认欢迎页或者干脆连不上——这是很多人第一次接触 windows 服务器 时的真实起点。这套搭建流程要解决的核心问题其实就四件事把操作系统装利索、确认网络和硬件没毛病、把网站文件挂到 IIS 站点上、再让域名能正确指到这台机器的 IP。听起来像流水账但每一步都有能让人卡半天的细节比如端口冲突、默认文档顺序、DNS 正向区域配错导致域名解析到别的机器。这份资源适合两类人一是刚接手 windows 服务器、需要从零把 Web 服务跑起来的运维新手二是已经会装系统但没系统梳理过 IIS 站点挂载和 DNS 解析链路的从业者。它不涉及高可用集群或负载均衡就是单机 Web 服务器的完整落地路径。下面按实际动手顺序拆开讲每一步都落到具体操作和参数上。2. 系统安装与初始化别在分区和授权模式上翻车2.1 安装介质准备与启动顺序Windows Server 2022 的安装介质常见做法是从官方渠道获取 ISO然后用 Rufus 或系统自带工具写入 U 盘。如果服务器支持 IPMI 或 iDRAC 远程管理也可以直接挂载 ISO 到虚拟光驱省去物理介质。启动时进 BIOS 或 UEFI 把启动项调到对应介质注意 UEFI 和 Legacy 模式要跟分区表格式匹配——UEFI 对应 GPTLegacy 对应 MBR混了会报“无法安装到这个磁盘”。安装类型选“自定义”因为“升级”选项只在已有旧系统时才有意义。分区阶段如果是一块全新盘直接选未分配空间点“下一步”安装程序会自动创建恢复分区、EFI 分区和主分区。如果手动分区系统分区建议不低于 60GBIIS 日志和网站文件会持续占空间C 盘留太小后面迁移站点很麻烦。2.2 版本选择与初始配置安装向导里会让你选 Datacenter 或 Standard以及带不带桌面体验。带桌面体验的版本有完整 GUI对新手友好不带桌面的 Server Core 版本资源占用低、攻击面小但配置基本靠 PowerShell 和 sconfig。如果只是搭个 Web 服务器Server Core 完全够用但后面配 IIS 和 DNS 时得习惯命令行。装完首次登录会强制改 Administrator 密码密码策略默认要求大小写字母、数字和符号组合。改完密码后建议立刻做三件事设静态 IP、改计算机名、开远程桌面。静态 IP 用ncpa.cpl打开网卡属性IPv4 里手动填地址、子网掩码、网关和 DNS。计算机名在“系统属性”里改改完要重启。远程桌面在“系统属性-远程”里勾选允许防火墙规则会自动放行。# 查看当前网络配置确认 IP 是否已生效 Get-NetIPAddress -AddressFamily IPv4 | Format-Table InterfaceAlias, IPAddress, PrefixLength # 设置静态 IP示例网卡名 Ethernet地址 192.168.1.10网关 192.168.1.1 New-NetIPAddress -InterfaceAlias Ethernet -IPAddress 192.168.1.10 -PrefixLength 24 -DefaultGateway 192.168.1.1 # 设置 DNS 指向本机后面装 DNS 服务器后会用到 Set-DnsClientServerAddress -InterfaceAlias Ethernet -ServerAddresses 127.0.0.1上面命令里-InterfaceAlias要换成实际网卡名用Get-NetAdapter能看到。-PrefixLength 24对应 255.255.255.0 掩码。DNS 先指向 127.0.0.1 是为了后面装完 DNS 服务器后本机能解析自己的区域如果暂时不装 DNS先填网关或公共 DNS 也行。2.3 功能测试网络、硬件、系统三件事系统装完别急着装 IIS先确认基础环境没问题。网络测试用ping网关和外部地址如果 ping 不通网关检查网线、交换机端口和 IP 配置。硬件测试重点看磁盘和内存Get-PhysicalDisk看磁盘健康状态Get-CimInstance Win32_PhysicalMemory看内存条识别容量。操作系统测试主要看事件查看器里有没有严重错误特别是磁盘和网络相关的告警。# 测试到网关的连通性 Test-Connection -ComputerName 192.168.1.1 -Count 4 # 查看磁盘健康状态 Get-PhysicalDisk | Select-Object FriendlyName, MediaType, HealthStatus, OperationalStatus # 查看系统日志中的错误级别事件最近 20 条 Get-EventLog -LogName System -EntryType Error -Newest 20 | Format-Table TimeGenerated, Source, Message -AutoSizeTest-Connection的-Count参数指定 ping 次数默认 4 次够用。Get-PhysicalDisk的HealthStatus显示 Healthy 才正常如果显示 Warning 或 Unhealthy先别往下走磁盘有问题后面装 IIS 可能中途失败。事件日志里如果大量出现 disk 或 ntfs 错误优先排查硬盘。3. IIS 角色安装与站点挂载端口、目录和默认文档的实操细节3.1 安装 IIS 角色并验证IIS 在 Windows Server 2022 里是“Web 服务器(IIS)”角色通过服务器管理器或 PowerShell 安装。服务器管理器里走“添加角色和功能”勾选“Web 服务器(IIS)”功能列表里建议把“HTTP 重定向”“静态内容压缩”“日志”都带上。如果后面要跑 ASP.NET 或 PHP还得额外勾选对应的 CGI 或 ASP.NET 模块。# 通过 PowerShell 安装 IIS 角色及常用功能 Install-WindowsFeature -Name Web-Server -IncludeManagementTools Install-WindowsFeature -Name Web-Http-Redirect, Web-Stat-Compression, Web-Dyn-Compression, Web-Log-Libraries # 验证 IIS 服务状态 Get-Service W3SVC | Select-Object Name, Status, StartTypeInstall-WindowsFeature是 Server 2022 里装角色的标准命令-IncludeManagementTools会一并装上 IIS 管理器。装完W3SVC服务应该是 Running 状态启动类型 Automatic。如果服务没起来看事件查看器里 IIS 相关错误常见原因是 80 端口被占用或配置文件损坏。装完后浏览器访问http://localhost看到 IIS 默认页说明角色装好了。如果访问不了先检查防火墙有没有放行 80 端口Get-NetFirewallRule -DisplayName World Wide Web Services*能看到相关规则是否启用。3.2 创建站点目录与拷贝网站素材IIS 默认站点根目录在C:\inetpub\wwwroot但生产环境一般不会把网站文件放系统盘。常见做法是在数据盘建目录比如D:\WebSites\MySite然后把网站素材拷进去。拷贝方式看素材来源如果是压缩包解压后直接拖如果是 Git 仓库装 Git 后git clone如果是共享目录用robocopy同步。# 创建站点目录 New-Item -Path D:\WebSites\MySite -ItemType Directory -Force # 从共享目录拷贝网站文件示例源 \\192.168.1.20\share\site目标 D:\WebSites\MySite robocopy \\192.168.1.20\share\site D:\WebSites\MySite /E /COPYALL /R:2 /W:5 # 查看目录内容确认文件已到位 Get-ChildItem D:\WebSites\MySite | Select-Object Name, Length, LastWriteTimerobocopy的/E表示包含子目录含空目录/COPYALL复制所有文件属性/R:2失败重试 2 次/W:5重试间隔 5 秒。如果源是 Linux 共享注意文件名大小写和权限继承问题Windows 不区分大小写但 Linux 区分拷贝后可能有些文件引用路径对不上。3.3 在 IIS 里新建站点并绑定端口IIS 管理器里右键“网站”选“添加网站”填站点名称、物理路径、绑定类型和端口。端口不能和已有站点重复默认站点占了 80新站点可以用 8080 或其他空闲端口。如果要用域名区分同一端口上的多个站点在绑定里填主机名这就是“主机头”绑定。# 用 PowerShell 新建 IIS 站点端口 8080物理路径 D:\WebSites\MySite New-WebSite -Name MySite -Port 8080 -PhysicalPath D:\WebSites\MySite -Force # 查看站点状态和绑定信息 Get-WebSite -Name MySite | Select-Object Name, State, PhysicalPath, Bindings # 如果 80 端口被默认站点占用可以停掉默认站点 Stop-WebSite -Name Default Web SiteNew-WebSite的-Port参数指定监听端口-Force表示如果同名站点已存在就覆盖。Get-WebSite能看到站点运行状态State 为 Started 才正常。停掉默认站点是为了释放 80 端口如果新站点想直接用 80先把默认站点停了再建。3.4 默认文档与目录浏览配置网站文件拷进去后访问可能报 403 或 404常见原因是默认文档没配。IIS 默认文档列表里有Default.htm、Default.asp、index.htm、index.html等如果你的首页文件名不在列表里要么改文件名要么在 IIS 里加默认文档。目录浏览默认关闭如果网站没有首页文件、想直接列出目录内容得手动开启。# 添加自定义默认文档示例home.html Add-WebConfigurationProperty -PSPath IIS:\Sites\MySite -Filter system.webServer/defaultDocument -Name files -Value {valuehome.html} # 查看当前默认文档列表 Get-WebConfigurationProperty -PSPath IIS:\Sites\MySite -Filter system.webServer/defaultDocument/files -Name . # 开启目录浏览谨慎使用生产环境不建议 Set-WebConfigurationProperty -PSPath IIS:\Sites\MySite -Filter system.webServer/directoryBrowse -Name enabled -Value TrueAdd-WebConfigurationProperty往默认文档列表里追加条目-Value {valuehome.html}是 IIS 配置项的写法。目录浏览开启后任何人能看到目录下所有文件名除非是内部文件服务器否则别开。4. DNS 服务器安装与域名解析让域名正确指向站点4.1 安装 DNS 角色并创建正向区域域名解析的本质是把域名翻译成 IPWindows Server 里靠 DNS 角色实现。装 DNS 角色和装 IIS 类似服务器管理器里勾“DNS 服务器”角色或者 PowerShell 一条命令。装完后打开 DNS 管理器右键“正向查找区域”新建区域区域类型选“主要区域”名称填你的域名比如example.local。# 安装 DNS 角色 Install-WindowsFeature -Name DNS -IncludeManagementTools # 创建正向查找区域示例域名 example.local Add-DnsServerPrimaryZone -Name example.local -ZoneFile example.local.dns -DynamicUpdate None # 在区域内添加 A 记录把 www.example.local 指向 192.168.1.10 Add-DnsServerResourceRecordA -Name www -ZoneName example.local -IPv4Address 192.168.1.10 -CreatePtr # 查看区域内的记录 Get-DnsServerResourceRecord -ZoneName example.local -RRType AAdd-DnsServerPrimaryZone的-DynamicUpdate None表示不允许动态更新生产环境如果没配安全动态更新建议设 None 避免记录被随意篡改。Add-DnsServerResourceRecordA的-CreatePtr会同时创建反向解析记录方便用 IP 反查域名。Get-DnsServerResourceRecord能列出区域内所有 A 记录确认记录有没有生效。4.2 配置客户端 DNS 指向与解析测试DNS 服务器配好后客户端要把 DNS 指向这台服务器。如果客户端就是本机前面设的127.0.0.1已经生效。如果是其他机器在网络设置里把 DNS 改成 DNS 服务器的 IP。改完后用nslookup测试解析nslookup www.example.local应该返回 192.168.1.10。# 在本机测试域名解析 Resolve-DnsName -Name www.example.local -Server 127.0.0.1 # 用 nslookup 交互式测试 nslookup www.example.local 127.0.0.1 # 清除本机 DNS 缓存改完记录后如果解析没更新先清缓存 Clear-DnsClientCacheResolve-DnsName的-Server参数指定用哪台 DNS 服务器解析不指定就用本机配置的 DNS。nslookup是经典工具输出里能看到解析结果和响应时间。Clear-DnsClientCache在改完 DNS 记录后常用否则本机可能还缓存着旧记录导致以为配置没生效。4.3 把 IIS 站点绑定到域名DNS 解析通了之后IIS 站点绑定里要加上域名。在 IIS 管理器里选中站点右侧“绑定”里添加一条类型选 http端口 80主机名填www.example.local。这样访问http://www.example.local时请求会先经 DNS 解析到 192.168.1.10再到 IIS 里根据主机名匹配到对应站点。# 给站点添加域名绑定 New-WebBinding -Name MySite -Protocol http -Port 80 -HostHeader www.example.local # 查看站点所有绑定 Get-WebBinding -Name MySite | Select-Object protocol, bindingInformationNew-WebBinding的-HostHeader就是主机名同一端口上多个站点靠这个区分。Get-WebBinding能看到绑定信息bindingInformation格式是IP:端口:主机名如果 IP 部分是*表示监听所有 IP。5. 避坑与排查端口冲突、权限和解析失败的血泪经验5.1 端口被占用导致站点起不来现象新建站点后启动报错事件日志里提示“无法绑定到端口 80”或“地址已在使用”。原因80 端口被其他进程占用常见的是默认站点没停、Skype 或某些服务抢了 80、或者之前装的 Apache/Nginx 还在跑。解决netstat -ano | findstr :80找到占用进程的 PIDtasklist | findstr PID看是哪个程序确认不需要就停掉或改端口。IIS 里可以用Stop-WebSite停掉默认站点或者把新站点绑到其他端口。5.2 网站文件权限不足报 401 或 403现象访问站点返回 401.3 或 403.14提示无权访问或目录列表被拒绝。原因IIS 的工作进程账户IIS_IUSRS或IUSR对网站目录没有读取权限尤其是从其他机器拷贝过来的文件权限继承可能断了。解决右键网站目录属性-安全-编辑添加IIS_IUSRS并给读取和执行权限。如果目录在非系统盘还要确认盘符根目录的权限没有阻断继承。# 给网站目录添加 IIS_IUSRS 读取权限 icacls D:\WebSites\MySite /grant IIS_IUSRS:(OI)(CI)(RX) /T # 查看当前目录权限 icacls D:\WebSites\MySiteicacls的/grant参数给指定用户授权(OI)(CI)表示对象继承和容器继承(RX)是读取和执行权限/T递归到子目录。这条命令跑完IIS 就能正常读取网站文件了。5.3 DNS 解析到错误 IP 或解析超时现象nslookup域名返回的 IP 不对或者直接超时。原因DNS 服务器上 A 记录填错了 IP或者客户端 DNS 指向了错误的服务器或者区域文件没加载。解决先在 DNS 服务器上用Get-DnsServerResourceRecord确认记录值再在客户端用Resolve-DnsName -Server DNS服务器IP指定服务器测试。如果指定服务器能解析、不指定就不行说明客户端 DNS 配置有问题。解析超时还要检查 DNS 服务器防火墙有没有放行 53 端口TCP 和 UDP 都要。5.4 默认文档不生效导致 404现象网站文件明明在目录里访问域名却返回 404。原因首页文件名不在 IIS 默认文档列表里比如首页叫home.html但列表里只有index.html。解决在 IIS 里把实际首页文件名加到默认文档列表顶部或者把首页文件重命名为列表里已有的名称。加完后iisreset重启 IIS 让配置生效。5.5 防火墙拦截导致外部访问不了现象服务器本机访问http://localhost正常但其他机器访问不了。原因Windows 防火墙没放行 80 端口或者只放行了本机回环。解决New-NetFirewallRule -DisplayName HTTP-In -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow放行入站 80 端口。如果用了其他端口把-LocalPort改成对应端口。DNS 的 53 端口同理TCP 和 UDP 都要放。6. 进阶技巧用 PowerShell 批量管理站点与解析验证站点多了以后一个个在 IIS 管理器里点效率太低。我一般会把站点信息写成一个 CSV然后用 PowerShell 批量建站和加绑定。CSV 里列站点名、物理路径、端口、主机名脚本读一行建一个建完统一iisreset。这样迁移或重建环境时几分钟就能搞定比手点靠谱得多。# 批量建站脚本读取 sites.csv每行一个站点 # CSV 格式Name,Path,Port,HostHeader $sites Import-Csv -Path C:\sites.csv foreach ($site in $sites) { # 建站点 New-WebSite -Name $site.Name -Port $site.Port -PhysicalPath $site.Path -Force # 如果有主机名加绑定 if ($site.HostHeader) { New-WebBinding -Name $site.Name -Protocol http -Port $site.Port -HostHeader $site.HostHeader } # 给目录加 IIS_IUSRS 权限 icacls $site.Path /grant IIS_IUSRS:(OI)(CI)(RX) /T | Out-Null Write-Host 站点 $($site.Name) 已创建端口 $($site.Port) } # 重启 IIS 让所有配置生效 iisreset这个脚本里Import-Csv读配置文件foreach逐行处理New-WebSite和New-WebBinding分别建站和加绑定icacls统一授权。iisreset放最后避免每建一个站就重启一次。CSV 里端口别重复主机名如果为空就只按端口区分。验证解析链路是否完整我习惯用一条组合命令先Resolve-DnsName确认域名解析到正确 IP再Test-NetConnection确认端口通最后Invoke-WebRequest拉一下首页看返回状态码。三步都过说明从域名到站点的链路没问题。# 三步验证解析、端口、HTTP 响应 $domain www.example.local $ip (Resolve-DnsName -Name $domain -Server 127.0.0.1 -Type A).IPAddress Write-Host 解析结果$domain - $ip Test-NetConnection -ComputerName $ip -Port 80 | Select-Object ComputerName, RemotePort, TcpTestSucceeded $response Invoke-WebRequest -Uri http://$domain -UseBasicParsing Write-Host HTTP 状态码$($response.StatusCode)Resolve-DnsName的-Type A只查 A 记录返回的IPAddress就是解析结果。Test-NetConnection的TcpTestSucceeded为 True 表示端口通。Invoke-WebRequest的-UseBasicParsing在 Server Core 上必须加否则会报依赖 IE 引擎的错误。状态码 200 说明首页正常返回301 或 302 说明有跳转404 说明默认文档还是没配对。从那以后我每次配完 DNS 和 IIS 绑定都强制走一遍这三步验证不再靠“浏览器能打开”这种模糊判断。希望帮到你。本文还有配套的精品资源点击获取
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。