在Windows服务器上添加IIS网站并做好防护,核心就三步:装好IIS角色、绑定域名和端口、开启安全策略,整个过程半小时内能完成。这篇文章直接给你一套从零到上线能用的操作流程,顺手把防护网站的常见坑都填上。
准备一台能干活儿的服务器
动手之前,先把底子打好,不管你是用云服务器还是物理机,操作系统建议选 Windows Server 2019或2026,这两个版本的IIS都是10.0,功能上没啥区别,但2026在安全补丁上更省心。
登录服务器后,第一件事是检查系统盘剩余空间,网站文件、日志、缓存都得占地方,C盘至少留出20GB空闲,不然跑一阵子磁盘满了,网站直接罢工。
提前把域名解析到服务器公网IP,如果你用的是云厂商的DNS,解析生效通常几分钟;如果是自建DNS,可能得等半小时到几小时,解析没生效前,IIS绑定域名会报错,别急着排查IIS。
iis添加网站步骤:从角色安装到站点上线
第一步:安装IIS角色
打开服务器管理器,点“添加角色和功能”,一路下一步,到“服务器角色”这一步,勾选 Web服务器(IIS),它会自动把管理工具和默认组件带上,你只需要额外确认一下“应用程序开发”里的ASP.NET 4.7或4.8(看系统版本)是否勾选,其他默认就行。
安装过程大概两三分钟,装完不用重启(除非系统提示)。
第二步:添加网站并绑定域名
- 打开IIS管理器(Win+R输入
inetmgr回车),左侧连接树里展开服务器名,右键“网站”选“添加网站”。 - 网站名称填域名或项目名,比如
example.com,这名字只在服务器本地显示,不影响实际访问。 - 物理路径选你存放网站代码的文件夹,比如
D:wwwrootexample,提前建好这个文件夹,把网站文件放进去,别用C盘默认路径。 - 绑定类型选
http,端口填80,主机名填你的域名,比如www.example.com,如果想让根域名和www都通,站点添加完后再添加一条绑定,主机名填example.com。 - 点击确定,站点就建好了。
第三步:配置应用程序池
这一步很多人忽略,但恰恰是网站“莫名奇妙变慢”的根源,右键你的网站,选“管理网站”->“高级设置”,把应用程序池
记下来,然后在左侧“应用程序池”里找到它,右键“高级设置”:
- .NET CLR版本:如果你的代码是PHP或纯静态,选“无托管代码”;是ASP.NET就选对应的v4.0版本,选错会导致页面直接报500错误。
- 启动模式:设为
AlwaysRunning,避免第一次访问时慢半拍。 - 回收时间:默认的1740分钟(29小时)可以不改,但建议把“固定时间间隔”改成
0,然后勾选“特定时间”设为凌晨4点,避开访问高峰。
第四步:验证网站能不能访问
在服务器本机浏览器输入http://localhost,如果看到默认页面或你的网站首页,说明IIS工作正常,再输入http://你的域名,如果也能打开,说明DNS和绑定都没问题。
如果本机能开、外网打不开,重点查云服务商的安全组规则简米云、酷番云、华为云都得在控制台放行80端口,只开服务器防火墙不够。
添加防护网站设置:别让站点裸奔
IIS默认配置只适合开发环境,上线前必须做一轮加固,以下设置按优先级排序,照着做就行。
请求筛选与URL白名单
IIS自带“请求筛选”模块,这是防SQL注入和XSS的第一道闸,在网站主页双击“请求筛选”,右侧点“编辑功能设置”:
- 允许的URL长度上限:默认4096,如果网站有长查询参数,改成8192,别改太大,否则容易被利用做缓冲区攻击。
- 允许的查询字符串长度:建议1024,普通网站绝对够用。
- 允许的未列出的HTTP谓词:把
TRACE、DELETE、PUT设为拒绝,只保留GET和POST,TRACE方法有跨站追踪攻击风险,必须关。
然后切换到“规则”选项卡,点“添加拒绝规则”,把bin、config、Logs这些敏感目录直接拉黑。
URL重写与HTTPS强制跳转
装一个 URL Rewrite模块(微软官方免费,下载后双击安装),装完后在网站主页双击“URL重写”,添加一条规则:
- 模式:
- 条件:
{HTTPS}等于off - 操作:重定向到
https://{HTTP_HOST}/{R:1},状态码301
这样所有http流量都会强制跳到https,用户访问体验更安全,搜索引擎也认这个。
自定义错误页与隐藏版本号
IIS默认的404页面会泄露服务器版本和IIS版本,等于告诉黑客“我用的什么系统,可能有哪个漏洞”,网站主页双击“错误页”,编辑功能设置,把错误响应模式改为“自定义错误页”,然后为404和500分别指定一个静态HTML页面,内容写“页面不存在”或“服务器开小差了”,别用ASPX动态页。
隐藏版本号:在IIS管理器的“服务器节点”而不是网站节点,双击“HTTP响应标头”,移除X-Powered-By和Server标头,这个操作在服务器级别做,对所有站点生效。
日志审计与访问监控
找到“日志”模块,把日志目录从C盘挪到D盘,比如D:iislogs,避免日志撑爆系统盘,格式选W3C,字段至少勾选:日期、时间、客户端IP、方法、URI、状态码、UserAgent,这些字段排错和溯源攻击时都够用。
定期翻日志是判断网站是否被“盯上”的最好办法。如果发现同一个IP在短时间内大量请求一个不存在的文件,比如/wp-login.php或/shell.php,基本可以断定是扫描器在试探,直接加IP拒绝规则。
备份与恢复方案
用IIS管理器的“共享配置”功能,把applicationHost.config导出到独立目录,每周备份一次,网站文件用系统自带的“Windows服务器备份”功能做增量备份,恢复点至少保留7天。
行业共识认为,不备份的服务器等于在裸奔,数据没了再牛的安全配置也白搭。
IIS网站防护的进阶操作
WAF与云防护怎么选
如果网站面向公网且有交互功能(登录、留言、支付),建议接一层云WAF,简米云盾、酷番云WAF对国内站点的防护效果都不错,价格按QPS计费,小流量站点一个月几十块钱,选WAF时重点看它能不能识别Webshell和CC攻击,别只看“防DDoS”这种虚头。
端口与防火墙的微调
改掉RDP默认的3389端口,换成一个五位数高位端口,能挡掉绝大多数暴力破解扫描,防火墙只放行80、443、RDP新端口、FTP端口(如果不用就关掉)。其他端口一律禁止入站,包括SQL Server的1433(如果数据库不在本机)、Redis的6379(如果没设密码)。
性能与安全怎么平衡
开了HTTPS后,启用HTTP/2协议配合TLS 1.2以上版本,页面加载速度会明显提升,在IIS的站点绑定里编辑https条目,勾选“要求SNI”,SSL证书选“ECDSA_RSA”类型(如果申请的是双证书),握手速度比单一RSA快不少。
常见问题排查清单
网站打不开但IIS显示“正在运行”
按顺序查:服务器防火墙是否放行端口 -> 云安全组是否放行 -> 域名解析是否指向本机IP -> 网站绑定里主机名是否对得上。90%的“打不开”都是这四个环节之一出了问题。
添加网站后一直跳转默认页面
物理路径下没有index.html或default.aspx,把网站根目录里的iisstart.htm删掉,放你自己的首页文件,然后在IIS“默认文档”里确认index.html排在第一位。
静态页面能开,PHP页面报500
没装PHP处理器,去Windows平台安装 PHP Manager for IIS,然后下载对应版本的PHP(建议7.4或8.2,非线程安全版),在PHP Manager里注册并设置好php.ini的extension和upload_max_filesize。
网站添加与防护的常见疑问解答
问:IIS添加网站时,端口必须用80吗?
不一定,如果服务器只跑一个网站,用80没问题;如果跑多个网站,可以靠不同主机名共享80端口,也可以让第二个网站用8080或其它端口,但非80端口在地址栏里必须带上端口号,比如http://example.com:8080,对用户不友好,也不利于GEO,建议多站点时优先用不同主机名,共用80/443端口。
问:IIS网站的防护主要包含哪些内容?
最基本的防护有三层:第一层是请求筛选,过滤恶意URL和HTTP方法;第二层是HTTPS强制,加密传输数据;第三层是日志和备份,确保攻击发生后能溯源、能恢复,有条件再接云WAF,针对应用层攻击做拦截,三层都做到位,普通规模的攻击基本能扛住。
问:配置了HTTPS后,HTTP还会被攻击吗?
会,如果你没做301强制跳转,攻击者依然可以直接访问http端口,绕开TLS加密。务必在URL Rewrite里把http流量全部301到https,同时把http绑定的IP限制只允许本机访问,双重保险,做完后用浏览器访问http://你的域名,如果自动跳到https,说明配置生效。
IIS从添加网站到防护配置,本质上是一套“先跑通,再加固”的流程,先把站点稳稳上线,再按上面的清单逐项做安全设置,你的服务器就能在公网上长期稳定运行了。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/571682.html



