端口转发和DMZ到底有啥区别?为了在外网连家里NAS,我把两个都试了一遍

上个月我在公司想看家里NAS上的照片,死活连不上。查了一圈才明白:路由器默认把所有外网来的连接都挡在门外,想从外面访问家里设备,要么做端口转发,要么开DMZ。这两个词搜出来一堆教程,但说实话大部分没讲清楚区别,我照着抄还翻过车——DMZ一开,家里那台老摄像头第二天就被扫出弱密码。这篇文章就把这两个东西掰开说透,都是我拿自己家网络实测出来的。嫌长的直接翻到中间看对照表,软路由玩家和装监控的朋友建议从头看,坑都在前面。
先说清楚:外网为啥默认连不进你家
你家路由器干的其实是「翻译+门卫」两件事。内网设备用的都是私有地址,比如192.168.31.0这种,全世界几亿个家庭都在用同一套,出了你家门就不认。真正代表你家上网的是运营商给你分配的那个公网IP(如果有的话)。
问题来了:外网一个数据包敲你家公网IP的5000端口,路由器怎么知道该转给NAS、监控还是电脑?它不知道。所以默认策略是全部拒绝——这就是你在外网连不上家里设备的根本原因。注意这个「默认拒绝」是好事,不是路由器偷懒,你家几十台设备里只要有一台密码是admin123,敞开了就是给人扫的。
端口转发和DMZ,就是在这个「默认拒绝」上开口子的两种不同开法。一个用钥匙精准开一道门,一个直接把整面墙拆了。
端口转发:只留一道门,贴上设备名牌
端口转发的逻辑很简单:告诉路由器「凡是外网来敲公网IP某个端口的,一律转给内网某台设备的某个端口」。我在小米路由器后台(高级设置→端口转发)加了一条:外部端口5000,内部IP 192.168.31.20(我家飞牛NAS的固定地址),内部端口5000。保存之后,在外网用「公网IP:5000」就能直接访问NAS的管理页了。
这就像小区门禁只放行报「找3栋502」的访客,其他一律拦下。开口范围小,风险就可控——NAS只暴露了一个Web端口,SSH、SMB这些服务外面根本看不见。
几个我踩过的实操细节:
- 内网设备必须先固定IP,不然DHCP一换地址,转发规则就成了摆设。NAS我是在后台绑定MAC地址,路由器别开AP模式否则没有转发功能,这个后面细说
- 外部端口别用默认的。NAS的Web默认是5000,我在外网实际敲的是公网IP:53211,转发到内网5000——改个不常见的对外端口,被自动化扫描命中的次数肉眼可见地少了
- 协议选TCP还是TCP/UDP要看服务,NAS网页用TCP,有些游戏联机要UDP,拿不准就选both
DMZ:整台设备裸奔到公网,方便但要想清楚
DMZ更粗暴。在路由器后台开DMZ主机,填一个内网IP(比如192.168.31.30),路由器就把所有外网来的、你没主动发起的连接,全部扔给这台机器。等于这台设备的1到65535所有端口都对外敞开。
什么时候方便?我给爸妈家装的监控主机,厂商App要做P2P直连,文档里压根不告诉你它用哪个端口,端口转发根本没法配。这种「不知道开哪个端口」的场景,DMZ一把梭最省事。我家那台老网络摄像头也是,说明书丢了,最后DMZ解决的。
但我开头说的翻车就翻在这。那台老摄像头默认密码是admin,DMZ开了不到一天,我翻连接记录发现有境外IP登进去过。所以DMZ有三条铁律:
第一条,进DMZ的设备必须先改掉默认密码、升级固件。第二条,尽量选本身安全做得还行的设备(监控选大厂,别买白牌)。第三条,能用端口转发就别用DMZ,DMZ是「实在不知道开哪个端口」时的兜底,不是首选。
两者对照:一张表看明白怎么选
| 对比项 | 端口转发 | DMZ |
| 暴露范围 | 指定的单个端口 | 全部65535个端口 |
| 配置难度 | 要知道服务用什么端口 | 填一个内网IP就完事 |
| 安全风险 | 小,攻击面就一个口 | 大,设备有任何漏洞都直接见面 |
| 适合设备 | NAS、自建网站、需要远程SSH的机器 | P2P监控主机、端口不明的厂商设备 |
| 能不能多台设备同时用 | 能,不同端口转发给不同设备 | 不能,DMZ主机只能填一个 |
顺带说一句,两者是互斥思路不是互斥功能,但实际配置时DMZ会「吞掉」端口转发的效果——流量优先走DMZ。所以别两个一起开,选一个。
最大的坑不在路由器:光猫和公网IP
我第一晚配置全对,外网就是连不上,最后发现问题根本不在路由器,而是我家光猫。现在的光猫基本都是路由模式,公网IP其实是给光猫的,你的路由器拿到的只是光猫分配的私有地址。你在路由器上做的端口转发,开的是「光猫内网」的门,外网的包到光猫就被拦了。
解法有两条路。一条是光猫改桥接,让路由器直接拨号拿公网IP,一劳永逸,动手能力强的可以看我之前写的光猫改桥接那篇。另一条是光猫不改,在光猫后台把自己路由器的地址也配一条端口转发(或DMZ),变成「双层转发」,能用但以后每加一条规则都得改两处,烦。
第二个坑更无解:现在很多运营商默认不给你公网IP了,家里拿到的是100.64开头或者10开头的内网地址,这种情况端口转发和DMZ配得再对也没用——你家在公网上根本没有门。打电话找客服申请公网IP(说是要装监控),一般会给;实在不给,就走内网穿透或IPv6,我之前写过一篇在外网连家里NAS的三条路,把DDNS、穿透这些方案对比过,这里不重复了。
我的最终配置和安全习惯
现在我家的方案是:光猫桥接,小米路由器拨号,公网IP绑定DDNS域名(不然IP变了就失联);NAS只转发一个改过的高位端口,管理密码20位,后台开两步验证;监控主机单独一台旧路由器隔离在访客网络里再开DMZ,就算被打穿也摸不到NAS那层。
再补三条用命换来的习惯。转发出去的服务,密码必须是长随机串,弱密码等于没设防。路由器管理后台的远程管理功能保持关闭,别把自己管理路由器的入口也暴露出去。每隔一两个月看一眼NAS的登录失败日志,全是境外IP在试密码,很正常,说明门关得够紧——哪天一条成功记录才是真要命。设备多了之后,先看家里到底挂了多少台设备,再决定哪些值得暴露到外网,不是每台都需要开门。
顺序总结:先确认有公网IP,再解决光猫桥接或双层转发,然后设备固定IP,能用端口转发就别碰DMZ,非要开DMZ就给设备改强密码、做隔离。照这个顺序走,外网连家里这事儿基本一次就能成。

发表评论