恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

Windows Server 2022 Web服务器搭建:IIS、DNS与防火墙完整指南

  • 首页
  • 资讯中心
  • /
  • Windows Server 2022 Web服务器搭建:IIS、DNS与防火墙完整指南

相关资讯

Lingo8.0.zip 解压与建模求解实战:从环境配置到批量参数扫描 2026/10/16 15:43:27
MATLAB车牌识别实战:边缘检测定位与模板匹配字符识别 2026/10/16 15:38:27
DeepSeek-R1本地部署指南:10分钟在笔记本上运行1.5B轻量大模型 2026/10/16 15:38:27

最新资讯

yolo-world开放词汇检测实战:从零样本推理到微调部署
APS高级排产系统落地指南:模型、数据与遗传算法实现
279个Shell脚本合集:开箱即用的运维自动化工具箱
基于MATLAB GUI的音频FIR滤波器设计与实现
Matlab多目标贝叶斯优化实战:高代价黑匣子问题的Pareto前沿高效求解
医疗器械设计控制从碎片化到一体化的数字化转型路径

今日推荐

Java八种基本类型深度解析:从内存布局到实战选型
基础:常用快捷键——IDEA、VS Code、PyCharm 与 Linux 终端效率速查
解决ultraedit下verilog .v文件中文注释乱码:把编码配置改到TaoToken辅助排查

本周热门

UE动画修改实战:从资产编辑到重定向与蒙太奇驱动
统计随机数生成器攻击下的KLJN安全密钥交换协议Matlab仿真
政务API安全治理:资产测绘、低代码编排与行标对标实践

本月精选

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)

Windows Server 2022 Web服务器搭建:IIS、DNS与防火墙完整指南

发布时间:2026/10/16 15:43:27
Windows Server 2022 Web服务器搭建:IIS、DNS与防火墙完整指南 简介这份资源面向IT运维人员、系统管理员及计算机相关专业学生聚焦Windows Server 2022环境下Web服务器的完整搭建与配置流程帮助读者掌握从系统安装到网站上线的关键技能。资源包内含1个docx文档压缩包大小约1016KB以图文步骤说明的形式组织内容便于按章节对照操作。文档围绕服务器安装、服务器功能测试、挂载网站到服务器站点、网址与IP地址的域名解析等模块展开涵盖安装介质准备、语言与时区选择、磁盘分区、网络与硬件测试、网站目录创建、素材拷贝、端口与域名配置、DNS服务器安装及记录配置等具体知识点并附有排错与验证思路。目前已有2765人学习下载适合需要快速上手Windows服务器Web部署、查漏补缺或作为实验参考的读者使用。1. Windows Server 2022 Web 服务器搭建从裸机到能访问的完整路径很多人第一次接触 Windows Server 2022 的 Web 服务器搭建都以为装完 IIS 就完事了结果浏览器一打开就是 404 或者 500回头查半天发现是端口冲突或者 DNS 没配。这套环境在企业内网、实验室演示、小型业务系统里太常见了装不好直接影响后续所有联调。我见过最典型的翻车场景网站素材拷进去了IIS 也显示运行中但外部机器就是访问不了最后发现是 Windows 防火墙把 80 端口拦了而默认规则里根本没有放行。这篇文章面向的是需要从零把 Windows Server 2022 变成一台能对外提供 Web 服务的机器的人不管你是刚入行的运维还是临时被拉来搭环境的后端照着走完就能跑通。2. 安装前的环境确认版本、角色与网络规划2.1 版本选择与硬件底线Windows Server 2022 分 Standard 和 Datacenter 两个主要版本Web 服务器场景下 Standard 完全够用除非你要跑大量虚拟机或容器。安装介质从 Microsoft 官方渠道获取不要用来路不明的镜像否则后续激活和更新都会出玄学问题。硬件方面我一般建议至少 2 核 CPU、4GB 内存、40GB 系统盘如果网站素材多或者要跑数据库内存直接上 8GB 以上。磁盘分区时系统盘留 60GB 以上因为 IIS 日志和 Windows 更新会慢慢吃掉空间。安装类型选「自定义」不要选「升级」除非你明确知道自己在做什么。分区阶段如果服务器只有一块盘直接全部给系统盘如果有数据盘网站目录可以单独挂载方便后续迁移和备份。安装过程中会让你设置 Administrator 密码这个密码必须满足复杂度要求大小写字母、数字、符号至少三类否则装到一半卡住还得重来。2.2 安装完成后的基础检查系统装完第一次进桌面先别急着装 IIS。打开「服务器管理器」确认几个事情网络适配器是否识别、IP 地址是否配置正确、时间时区是否对。我习惯先用ping测一下网关通不通再用nslookup看 DNS 解析是否正常。如果服务器在域环境里还要确认是否已经加域因为后续 DNS 服务器的配置和域环境有耦合。# 查看当前网络配置 ipconfig /all # 测试到网关的连通性假设网关是 192.168.1.1 ping 192.168.1.1 # 测试 DNS 解析假设要解析 www.example.local nslookup www.example.localipconfig /all会列出所有网卡的详细信息重点看 IPv4 地址、子网掩码、默认网关和 DNS 服务器。ping通网关说明二层和三层基本没问题如果 ping 不通先检查网线、交换机端口和 IP 配置。nslookup如果返回非权威应答说明 DNS 配置正确如果超时后面配 DNS 服务器时就要特别注意。2.3 安装 IIS 角色与必要功能IIS 不是默认安装的需要手动添加角色。打开「服务器管理器」→「添加角色和功能」→ 一路下一步到「服务器角色」→ 勾选「Web 服务器 (IIS)」。在弹出的功能列表里我一般会额外勾选这几项ASP.NET 4.8、.NET Extensibility 4.8、ISAPI 扩展、ISAPI 筛选器、请求筛选、HTTP 重定向、静态内容压缩。如果你要跑 PHP 或者 Node.js对应的 CGI 和 FastCGI 也要勾上。# 用 PowerShell 安装 IIS 及常用功能 Install-WindowsFeature -Name Web-Server -IncludeManagementTools Install-WindowsFeature -Name Web-Asp-Net45, Web-Net-Ext45, Web-ISAPI-Ext, Web-ISAPI-Filter, Web-Http-Redirect, Web-Stat-CompressionInstall-WindowsFeature是 Windows Server 上装角色的标准命令-IncludeManagementTools会把 IIS 管理器一起装上省得后面找不到图形界面。第二行把 ASP.NET 4.5、ISAPI 扩展和筛选器、HTTP 重定向、静态压缩都带上这些在部署实际网站时大概率会用到。装完不需要重启但建议重启一次让所有组件加载完整。3. 挂载网站到 IIS目录、端口与应用程序池3.1 创建网站目录与拷贝素材网站目录不要放在C:\inetpub\wwwroot下面那个是默认站点用的混在一起后面排查问题很麻烦。我一般会在数据盘或者系统盘根目录建一个C:\WebSites然后按站点名建子目录比如C:\WebSites\Portal。把网站素材拷进去之后检查一下目录权限IIS 的工作进程账户IIS_IUSRS需要至少「读取和执行」权限如果网站要写文件还得给「修改」权限。# 创建网站目录 New-Item -Path C:\WebSites\Portal -ItemType Directory # 拷贝网站素材假设素材在 D:\Source\Portal Copy-Item -Path D:\Source\Portal\* -Destination C:\WebSites\Portal -Recurse # 授予 IIS_IUSRS 读取权限 icacls C:\WebSites\Portal /grant IIS_IUSRS:(OI)(CI)(RX)New-Item建目录Copy-Item带-Recurse把子目录一起拷过去。icacls是 Windows 上改权限的命令(OI)(CI)表示对象继承和容器继承(RX)是读取和执行。如果网站需要上传文件或者写日志把(RX)换成(M)给修改权限但不要给「完全控制」最小权限原则在 Web 服务器上尤其重要。3.2 在 IIS 中新建站点并绑定端口打开 IIS 管理器右键「网站」→「添加网站」。站点名称填一个能认出来的物理路径选刚才建的目录绑定类型选 httpIP 地址选「全部未分配」或者指定服务器 IP端口默认 80。如果 80 已经被默认站点占了要么先停掉默认站点要么给新站点换端口比如 8080。端口不能重复使用这是硬规则IIS 启动时会直接报错。# 停掉默认站点释放 80 端口 Stop-WebSite -Name Default Web Site # 新建站点绑定 80 端口 New-WebSite -Name Portal -PhysicalPath C:\WebSites\Portal -Port 80 -ForceStop-WebSite停掉默认站点New-WebSite新建站点-Port 80指定端口-Force表示如果同名站点存在就覆盖。如果不想停默认站点把-Port改成 8080 或其他未占用端口但访问时就要带端口号。生产环境里我一般会把默认站点停掉或者删掉避免混淆。3.3 应用程序池配置与 .NET 版本选择应用程序池是 IIS 里隔离不同站点运行环境的关键机制。默认情况下新站点会用一个自动创建的应用程序池但最好手动建一个方便控制 .NET 版本和管道模式。如果网站是 ASP.NET 4.x 写的.NET CLR 版本选 v4.0管道模式选「集成」如果是老旧的 ASP.NET 2.0 或者经典 ASP管道模式要选「经典」。# 新建应用程序池 New-WebAppPool -Name PortalPool # 设置 .NET 版本和管道模式 Set-ItemProperty -Path IIS:\AppPools\PortalPool -Name managedRuntimeVersion -Value v4.0 Set-ItemProperty -Path IIS:\AppPools\PortalPool -Name managedPipelineMode -Value Integrated # 把站点关联到应用程序池 Set-ItemProperty -Path IIS:\Sites\Portal -Name applicationPool -Value PortalPoolNew-WebAppPool建池Set-ItemProperty改配置。managedRuntimeVersion设成v4.0对应 .NET 4.x如果网站是 .NET Core 或 Node.js这个值要设成空字符串因为不走 CLR。managedPipelineMode选Integrated是大多数现代 ASP.NET 应用的推荐值老应用如果报 500 错误可以试试改成Classic。4. DNS 服务器安装与域名解析配置4.1 安装 DNS 服务器角色网站光有 IP 和端口还不够用户记不住 IP得有个域名。Windows Server 2022 自带的 DNS 服务器角色就能干这事。在「服务器管理器」里添加角色勾选「DNS 服务器」一路下一步装完。装完之后 DNS 管理器会自动出现在「工具」菜单里。如果服务器是域控DNS 可能已经装好了不用重复装。# 安装 DNS 服务器角色 Install-WindowsFeature -Name DNS -IncludeManagementToolsInstall-WindowsFeature装 DNS 角色-IncludeManagementTools把 DNS 管理器一起装上。装完不需要重启但 DNS 服务会自动启动。如果提示需要重启重启一次再继续。4.2 创建正向解析区域与 A 记录正向解析就是把域名转成 IP。打开 DNS 管理器右键「正向查找区域」→「新建区域」→ 选「主要区域」→ 区域名称填你的域名比如example.local。创建完之后在区域里右键「新建主机 (A 或 AAAA)」名称填wwwIP 地址填服务器的 IP。这样www.example.local就会解析到服务器 IP。# 新建正向查找区域 Add-DnsServerPrimaryZone -Name example.local -ZoneFile example.local.dns # 新建 A 记录 Add-DnsServerResourceRecordA -Name www -ZoneName example.local -IPv4Address 192.168.1.100Add-DnsServerPrimaryZone建主要区域-ZoneFile指定区域文件名不指定也会自动生成。Add-DnsServerResourceRecordA建 A 记录-Name是主机名-ZoneName是区域名-IPv4Address是服务器 IP。建完之后用nslookup www.example.local验证如果返回 192.168.1.100 就说明解析生效了。4.3 客户端 DNS 指向与解析测试服务器本身的 DNS 配好了但客户端还得把 DNS 指向这台服务器。在客户端的网络适配器设置里把首选 DNS 改成服务器的 IP。如果客户端和服务器在同一个域里域控的 DNS 通常会自动下发不用手动改。改完之后ipconfig /flushdns清一下缓存再ping www.example.local如果能 ping 通并且解析到正确 IP说明整条链路通了。# 客户端清 DNS 缓存 ipconfig /flushdns # 测试域名解析 nslookup www.example.local # 测试 HTTP 访问 curl -I http://www.example.localipconfig /flushdns清掉本地 DNS 缓存避免旧记录干扰。nslookup确认解析结果。curl -I只取 HTTP 响应头如果返回200 OK或者403 Forbidden说明 Web 服务器已经响应了如果返回Could not resolve host说明 DNS 还没生效如果返回Connection refused说明 IIS 没监听或者防火墙拦了。5. 避坑与排查端口、权限、防火墙的常见翻车点5.1 端口冲突导致站点启动失败现象IIS 里新建站点后站点状态显示「已停止」手动启动报错「另一个程序正在使用此文件进程无法访问」。原因80 端口已经被其他程序占用最常见的是默认站点没停或者装了 Apache、Nginx 之类的软件抢了端口。解决先用netstat -ano | findstr :80找到占用端口的进程 PID再用tasklist | findstr PID看是哪个程序。如果是默认站点停掉或者删掉如果是其他软件改它的端口或者卸掉。确认端口释放后再启动站点。# 查看 80 端口占用情况 netstat -ano | findstr :80 # 假设 PID 是 1234查看对应进程 tasklist | findstr 12345.2 防火墙拦截导致外部无法访问现象服务器本机用http://localhost能打开网站但其他机器访问 IP 或域名就是超时。原因Windows 防火墙默认没有放行 80 端口IIS 装完之后也不会自动加规则。解决在「高级安全 Windows Defender 防火墙」里新建入站规则放行 TCP 80 端口。或者用 PowerShell 命令直接加。# 放行 80 端口入站 New-NetFirewallRule -DisplayName HTTP-80 -Direction Inbound -Protocol TCP -LocalPort 80 -Action AllowNew-NetFirewallRule建规则-Direction Inbound是入站-Protocol TCP是 TCP 协议-LocalPort 80是本地端口-Action Allow是允许。如果网站用了 8080 或其他端口把-LocalPort改成对应端口。5.3 应用程序池权限不足导致 500 错误现象网站能打开静态页面但一访问动态页面就报 500 Internal Server Error事件查看器里能看到「访问被拒绝」或「权限不足」。原因应用程序池的账户没有网站目录的读取权限或者没有临时目录的写入权限。解决确认应用程序池用的账户是ApplicationPoolIdentity还是自定义账户。如果是ApplicationPoolIdentity给IIS AppPool\PortalPool这个虚拟账户授权。另外 ASP.NET 临时目录C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files也需要写入权限。# 给应用程序池账户授权 icacls C:\WebSites\Portal /grant IIS AppPool\PortalPool:(OI)(CI)(RX) # 给 ASP.NET 临时目录授权 icacls C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files /grant IIS AppPool\PortalPool:(OI)(CI)(M)5.4 DNS 解析不生效或解析到错误 IP现象nslookup返回的 IP 不对或者直接超时。原因DNS 区域文件没配好A 记录写错了 IP或者客户端 DNS 指向了错误的服务器。解决在 DNS 管理器里检查正向查找区域的 A 记录确认 IP 和服务器实际 IP 一致。客户端用ipconfig /all确认 DNS 服务器地址。如果服务器有多块网卡DNS 可能监听在错误的网卡上在 DNS 管理器属性里把监听 IP 限制为正确的那个。5.5 网站素材路径错误导致 404现象IIS 里站点显示运行中但访问任何页面都是 404 Not Found。原因物理路径填错了或者默认文档没配。IIS 默认会找index.html、default.aspx这些文件如果网站入口文件名不在默认列表里就会 404。解决在 IIS 管理器里双击站点的「默认文档」把网站的实际入口文件加进去比如home.html或者app.aspx。同时确认物理路径指向的目录里确实有这些文件。6. 装完怎么验证从本机到跨机的完整检查清单装完 IIS、挂好站点、配完 DNS 之后别急着交付。我一般会按这个顺序走一遍验证每一步都过了才算真正跑通。第一步服务器本机验证。打开浏览器访问http://localhost如果能看到网站首页说明 IIS 和站点配置没问题。如果本机都打不开先查 IIS 里站点是否启动、应用程序池是否运行、物理路径是否正确。这一步是最基础的本机不通后面都不用试。第二步用 IP 访问。在服务器本机浏览器里访问http://192.168.1.100换成你的服务器 IP如果本机用 IP 能打开但 localhost 打不开说明 IIS 绑定可能只绑了某个特定 IP。如果本机 IP 也打不开检查 IIS 绑定里 IP 地址是不是选了「全部未分配」。第三步跨机访问。找另一台同网段的机器先ping 192.168.1.100确认网络通再用浏览器访问http://192.168.1.100。如果 ping 通但浏览器打不开大概率是防火墙拦了 80 端口回到 5.2 加规则。如果 ping 都不通检查交换机、VLAN 和路由。第四步域名访问。在客户端把 DNS 指向服务器 IPipconfig /flushdns之后nslookup www.example.local确认解析到正确 IP然后浏览器访问http://www.example.local。如果解析对但访问超时还是防火墙问题如果解析不对回 DNS 管理器检查 A 记录。第五步检查 IIS 日志。IIS 默认日志在C:\inetpub\logs\LogFiles下面按站点和日期分目录。如果前面都通了但某些页面报错日志里能看到具体的 HTTP 状态码和请求路径。我习惯用Get-Content直接看最新日志或者用 Excel 打开慢慢分析。# 查看最新 IIS 日志 Get-ChildItem C:\inetpub\logs\LogFiles -Recurse | Sort-Object LastWriteTime -Descending | Select-Object -First 5 # 查看某个日志文件的内容 Get-Content C:\inetpub\logs\LogFiles\W3SVC1\20250101.log -Tail 50Get-ChildItem按修改时间倒序列出日志文件-Recurse递归子目录。Get-Content的-Tail 50只看最后 50 行适合快速定位最近的请求。日志里sc-status字段是 HTTP 状态码cs-uri-stem是请求路径time-taken是处理时间这几个字段排查问题最有用。第六步压力测试。如果网站要对外提供服务用ab或者curl循环请求一下看 IIS 能不能扛住。Windows 上可以用 PowerShell 的Invoke-WebRequest循环跑。# 简单压力测试循环请求 100 次 1..100 | ForEach-Object { $response Invoke-WebRequest -Uri http://www.example.local -UseBasicParsing Write-Output Request $_ : $($response.StatusCode) }Invoke-WebRequest发 HTTP 请求-UseBasicParsing跳过 IE 引擎解析速度更快。循环 100 次看状态码是否都是 200如果有超时或 500说明应用程序池或者后端代码有问题。从那以后我每次搭完 Windows Server 2022 的 Web 服务器都会强制走一遍这六步验证尤其是跨机访问和 DNS 解析这两步最容易在交付后翻车。希望帮到你。本文还有配套的精品资源点击获取

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号