一、文档前言(结合实际实操问题)
本文基于 Windows Server 2019 真实服务器环境(内网IP:192.168.3.81、公网IP:120.46.xxx.yy、本地服务端口:8008/8009、IIS默认端口:80),从零讲解 IIS站点搭建、本地私有端口服务运行、反向代理配置、内外网访问打通、多站点多服务共存部署 全套实操流程。
同时针对实操中出现的真实报错问题做专项解析:
- 正常现象 :公网访问 http://120.46.xxx.yy 可正常加载诗词系统页面(反向代理生效)
- 报错现象 :公网直接访问http://120.46.xxx.yy:8008 提示「网页解析失败,可能是不支持的网页类型,请检查网页或稍后重试」
文档兼顾实操步骤、底层原理、报错排错、场景规则、误区纠正,可直接用于项目部署、日常运维与问题排查。
二、基础网络核心概念(配置前置认知)
(一)三类IP地址核心特性与使用规则
本次部署涉及三类IP地址,三者分工明确、不可混用,是所有配置的基础:
- 内网IP 192.168.3.81
- 属性:服务器物理网卡真实配置地址,仅局域网内生效
- 权限:支持IIS直接绑定、局域网设备直接访问
- 限制:公网用户无法直接访问该IP
- 公网IP 120.46. xxx.yy
- 属性:网关/云平台对外暴露地址,非服务器本机网卡IP
- 权限:全网可访问,是外网用户唯一入口
- 限制:无法在IIS中直接绑定,必须依靠端口转发映射到内网IP
- 回环地址 localhost/127.0.0.1
- 属性:系统虚拟私有地址,仅用于服务器本机内部通信
- 权限:仅服务器本机可访问,局域网、外网默认完全无法直连
- 用途:运行前端开发调试服务、本地私有接口(8008/8009服务均属于此类)
(二)端口运行底层铁律(无冲突部署核心)
端口是服务的通信出入口,所有部署必须遵守以下两条硬性规则,否则必然报错冲突:
- 规则1:单一「IP+端口」组合,仅允许一个程序占用例如 192.168.3.81:80 被IIS占用后,其他程序无法监听该组合,直接启动失败。
- 规则2:端口号相同、监听IP不同,完全无冲突例如 localhost:8008(本机私有)和192.168.3.81:8008(内网公开),端口一致但监听地址不同,可同时运行、互不干扰。
补充:80、443为系统默认放行通用端口;8008、8009等自定义端口,系统默认拦截外网请求。
三、两类8008/8009服务本质区分(核心报错根源)
实操中存在两个极易混淆的同端口服务,也是 公网8008端口解析报错的核心原因,二者完全独立、用途不同:
|--------|-------------------------------|------------------------------|
| 对比维度 | 脚本启动本地服务(localhost:8008/8009) | IIS托管站点服务(192.168.3.81:8008) |
| 启动方式 | 黑窗口脚本/命令行启动,临时调试服务 | IIS系统托管,可开机自启,正式服务 |
| 监听范围 | 仅本机localhost,私有封闭服务 | 内网192.168.3.81,对外公开服务 |
| 外网访问权限 | 默认完全禁止外网直连,无法直接访问 | 配置转发+防火墙后可外网访问 |
| 页面内容 | 前端开发实时编译动态内容 | 服务器本地静态文件内容 |
| 核心用途 | 本地开发、功能调试 | 线上正式对外访问 |
(三)公网8008端口报错专属解析
报错场景 :访问 120.46.xxx.yy:8008 网页解析失败
根本原因:
- 8008是本地私有服务端口,仅支持本机访问,外网直接请求无法解析私有服务内容;
- 未通过IIS反向代理中转,外网裸连localhost私有服务端口,协议与页面类型不匹配,触发解析失败;
- 80端口可正常访问,是因为经过IIS反向代理中转,并非端口直接打通。
结论 :所有localhost私有服务,必须通过IIS反向代理对外暴露,禁止外网直接访问端口。
四、外网访问完整链路与配置条件
外网成功访问服务器服务,必须同时打通三道关卡,缺一不可,这是所有外网访问配置的核心准则:
完整链路:外网浏览器 → 公网网关端口转发 → Windows防火墙入站放行 → 目标服务正常监听运行
(一)各关卡作用说明
- 网关/云平台端口转发:将公网IP端口请求,转发到服务器内网对应IP和端口,无规则则请求直接丢弃;
- Windows防火墙:系统安全拦截,仅默认放行80/443端口,自定义端口需手动放行;
- 目标服务状态:IIS站点、本地端口服务必须正常启动监听。
(二)80端口正常访问原因(当前可用场景)
- 网关已配置规则:公网80端口 → 内网192.168.3.81:80;
- 防火墙默认放行80标准端口;
- IIS 80端口站点正常运行,且配置了反向代理。
(三)自定义端口外网访问实操步骤(8008/8009通用)
- 步骤1:配置网关端口转发路由器/云平台安全组新增规则:外部端口8008、内部IP192.168.3.81、内部端口8008、协议TCP。
- 步骤2:配置防火墙入站规则Windows Defender防火墙→高级设置→入站规则→新建规则:端口TCP 8008,允许所有网络连接,命名保存。
- 步骤3:通过IIS反向代理间接访问禁止外网直接访问8008端口,通过IIS站点转发,实现外网正常访问私有服务。
五、IIS反向代理核心配置(80端口访问本地服务的关键)
(一)反向代理定义与作用
反向代理是IIS的流量中转功能:IIS不直接读取静态文件,而是接收外网请求后,自动转发给本机localhost私有服务,再将服务返回的页面内容回传给外网用户。
核心价值:对外隐藏私有端口服务、统一80端口访问、解决外网无法直连localhost的问题。
(二)前置依赖组件
IIS必须提前安装两个组件,否则无法使用反向代理:URL重写、应用请求路由(ARR)。
(三)核心配置文件与代码解读
代理规则存储在站点根目录 web.config 文件中,仅对当前站点生效,各站点规则独立互不干扰:
|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| xml <rewrite> <rules> <rule name="反向代理规则" stopProcessing="true"> <match url="(.*)" /> <action type="Rewrite" url="http://localhost:8008/{R:1}" /> </rule> </rules> </rewrite> |
关键逻辑:
- 写 8008 → 转发到localhost:8008服务
- 写 8009 → 转发到localhost:8009服务
- IIS无自动识别功能,写哪个端口就访问哪个端口,不会自动切换、乱匹配
(四)完整访问流转链路
外网访问 120.46.xxx.yy → 网关转发至192.168.3.81:80(IIS) → IIS按配置转发至localhost:8008 → 本地服务返回页面 → IIS回传给外网用户。
(五)修改代理目标端口方法
如需切换8008/8009服务,无需修改IIS绑定,仅需两步:
- 启动对应localhost端口服务(8008/8009可共存);
- 修改web.config中端口号并保存,刷新即可生效。
六、多本地服务+多IIS站点全场景部署规则
通用前置铁律:
- 多IIS站点禁止同IP同端口,必然端口冲突;
- 多localhost不同端口服务(8008/8009)可同时启动,完全无冲突;
- 每个IIS站点代理规则独立,互不影响。
场景1:单IIS站点(80端口)+ 多本地服务
8008、8009同时启动,IIS仅读取配置指定的端口,配置8008则展示8008内容,配置8009则展示8009内容,不会混乱。
场景2:双IIS站点+双本地服务(推荐生产方案)
站点1:192.168.3.81:80 → 代理localhost:8008(主业务)
站点2:192.168.3.81:81 → 代理localhost:8009(测试业务)
效果:两个站点并行运行,外网访问不同端口展示不同服务内容,完全互不干扰。
场景3:多IIS站点代理同一个本地端口
多个不同端口的IIS站点,均可转发至同一个localhost服务,所有站点展示内容完全一致,无冲突。
场景4:禁止部署场景
多个IIS站点绑定同IP同端口,无论代理哪个端口,都会触发端口冲突,仅一个站点可启动。
七、高频部署误区纠正
- 误区 :启动localhost服务后,IIS会自动识别访问
纠正 :IIS无自动扫描功能,必须手动配置代理规则才会转发。
- 误区 :公网IP可以直接绑定在IIS中
纠正 :公网IP属于网关地址,服务器无该网卡IP,只能端口转发映射。
-
误区 :端口相同就会冲突
纠正 :仅IP+端口完全一致才冲突,localhost与内网IP同端口可共存。
-
误区 :外网可直接访问8008/8009端口
纠正 :私有服务禁止外网直连,必须通过IIS反向代理中转,否则解析报错。
-
误区 :多站点可共用80端口
纠正 :80端口唯一,多站点必须分配不同端口,与代理目标无关。
八、最终部署核心规则速记表
1. IP端口规则
内网IP可绑定IIS,公网IP仅转发、localhost仅本机访问;IP+端口一致才冲突,单端口不同IP无冲突。
2. 外网访问规则
外网访问三要素:端口转发+防火墙放行+服务运行;自定义端口必须手动配置放行。
3. 反向代理规则
转发端口由配置写死、可随时修改;仅流量中转,不融合两个服务,服务相互独立。
4. 多服务共存规则
多本地不同端口服务可并行;多IIS站点必须不同端口;各站点代理规则独立互不干扰。
九、本次实操报错最终总结
-
120.46.xxx.yy 正常访问:依托IIS 80端口+反向代理中转,成功读取localhost:8008诗词系统内容;
-
120.46.xxx.yy:8008 解析失败:外网直接访问私有本地端口,无代理中转,协议不匹配,属于正常现象,非故障;
-
正确访问方式:统一通过公网80端口访问,依靠IIS反向代理转发私有服务内容,禁止外网直连8008/8009自定义端口。