当你从网上下载了一个安装包。在双击安装之前,它要经历两道关卡。
第一道是防火墙。它只看一眼这个文件是从哪个 IP 来的、走的是哪个端口,然后决定是否放行。防火墙不管文件里藏了什么,它只认「来路」。来路没问题,就过。
第二道是杀毒软件。它会拆开这个文件,逐段扫描里面的代码。如果发现某一段像木马的签名、某一段像勒索病毒的行为特征,立刻拦截。
这就是它们最根本的区别。防火墙管的是「谁能进来」,杀毒软件管的是「进来的东西有没有毒」。一个看门,一个搜身。职责不同,谁也代替不了谁。

防火墙的工作方式其实很像小区的门禁系统
每一条进出你电脑的网络流量,都带着一个门牌号——端口。80 (Http)端口跑网页,443(Https) 端口跑加密网页,22(ssh)端口跑远程登录。防火墙只做一件事:对照规则表,决定这个端口放不放行。如果某个端口没在规则表里打开,外部流量根本敲不开这扇门。这就是为什么装了防火墙之后,黑客扫描你电脑的漏洞时会发现大部分端口都是「隐身」的。
但防火墙也有一个天生的盲区。只要端口是开放的——比如你总要浏览网页,80 和 443 端口就必须开着——防火墙就会对走这些端口的数据包照单全收。至于数据包里是不是夹带了一个病毒文件、一段恶意脚本,防火墙不会去看,也看不懂。它的设计就没打算让它看懂文件内容,它只看数据包的「信封」上写了什么。
还有一点很多人不知道:Windows 自带的防火墙是单向的,它主要管外面进来的流量,不拦你电脑主动往外发的连接。所以如果你电脑已经中了木马,病毒程序悄悄往外发送你的密码和文件,Windows 防火墙大概率毫无反应。

杀毒软件的思路完全不同
它不是站在门口看证件,而是把每一个落到你硬盘上的文件拆开,逐段比对病毒特征库。这个特征库里记录了全世界已知恶意程序的「指纹」——比如某一段十六进制代码只在勒索病毒中出现过、某一个注册表修改行为只有木马会做。杀毒软件做的就是拿着这本通缉令,一个一个文件地排查。
但仅靠特征库速度太慢,而且只能查出「已知」的病毒。所以现在的杀毒软件都有行为监测能力:它不只看文件长什么样,还盯着运行中的程序在干什么。如果一个 PDF 阅读器突然试图加密你所有文档、一个计算器程序突然开始监听键盘输入——这不符合它们的身份,杀毒软件会立刻叫停。
也正是因为杀毒软件深入到了文件内容和程序行为层面,它才能发现防火墙完全无感的威胁。比如你插了一个 U 盘,里面有一个 Word 文档带宏病毒。这个操作全程不经过网络,防火墙从头到尾没有参与,但杀毒软件会在你打开文档的瞬间检测并阻断。

日常使用中,两条原则就够了
第一,Windows 防火墙保持默认开启。除非你在用第三方安全软件自带防火墙(这种情况下 Windows 会自动关闭自己的以免冲突),否则不要去关它。防火墙虽然不杀毒,但它挡住了大量网络层的扫描和渗透攻击,是你电脑最外层的防线。
第二,杀毒软件不要同时装两个。两个杀软会互相把对方的行为当成「可疑动作」,互相查杀、互相拖慢系统。Windows 自带的 Defender 对大多数普通用户已经足够,保持自动更新病毒库、每周至少做一次快速扫描即可。
防火墙和杀毒软件各管一段,管的是完全不同的威胁。指望防火墙拦截病毒,就像指望门卫帮你查快递包裹里有没有炸弹——他能干好他该干的就不错了,剩下的事,得交给专业的人。

夜雨聆风