搞懂网络防火墙出站入站规则,内网穿透不再踩坑

防火墙不是摆设,它真能拦掉你的连接

很多人折腾内网穿透时,发现软件明明配好了,外网还是连不上。第一反应是路由器没设对,或者端口映射写错了。其实问题可能出在更前面——系统自带的防火墙。

Windows 上那个“Windows Defender 防火墙”,macOS 的应用级防护,甚至 Linux 的 iptables 或 ufw,都会默默拦掉你不熟悉的网络请求。关键就在于“出站”和“入站”这两类规则。

入站规则:谁可以连进来

你在家跑了个 Web 服务,想让朋友通过公网 IP 访问。这时候对方的请求就是“进你电脑”的流量,属于入站(Inbound)。

默认情况下,大多数系统的防火墙会阻止所有未经允许的入站连接。哪怕你在路由器上做了端口转发,数据包到了你电脑,防火墙一看:“这谁啊?不认识”,直接丢弃。

解决办法就是添加一条入站规则,比如允许 TCP 8080 端口的连接通过。这样别人访问你的公网IP加端口,才能真正触达本地程序。

netsh advfirewall firewall add rule name="Web Server 8080" dir=in action=allow protocol=TCP localport=8080

出站规则:你能连出去吗

出站(Outbound)是指你电脑主动向外发起的连接。比如你用 frp 客户端去连公网服务器,这就属于出站流量。

大多数人觉得出站不用管,反正我上网都正常。但有些企业或学校网络会限制出站端口,只放行 80 和 443。这时候你跑内网穿透工具,连不上服务器,八成就卡在这儿了。

另外,某些安全软件会弹窗问“是否允许该程序访问网络”,点“否”就等于创建了一条拒绝出站的规则。之后静默拦截,你根本不知道是防火墙干的。

netsh advfirewall firewall add rule name="FRP Client" dir=out action=allow program="C:\frp\frpc.exe" enable=yes

实际场景:家里摄像头推流失败

老王想把自己家的监控画面推到云平台,下载了推流软件配置好地址,一启动,日志显示“连接超时”。他检查了路由器端口映射,也确认了公网IP正确。

问题出在哪儿?他忘了 Windows 防火墙默认禁止陌生程序入站。推流服务监听的是本地 554 端口,但防火墙根本不让外部流量进来。

后来他在高级防火墙里手动加了一条入站规则,允许 554 端口 TCP 流量,立马恢复正常。这种细节,往往就是成败的关键。

别忽略双向控制

做内网穿透时,既要考虑外部能不能打进来(入站),也要确保本地程序能顺利连出去(出站)。尤其是使用反向代理模式的工具,客户端需要主动连接服务器,出站权限必须放开。

建议每次部署新服务前,先查一下系统防火墙的状态。Windows 可以运行 wf.msc 打开高级设置,Linux 用户可以用 ufw statusiptables -L 看规则列表。

有时候一个简单的规则缺失,就能让你折腾半天。把出站入站理清楚,少走很多弯路。