昨天遇到了一个让我感觉到自己的基础知识实在太差。
昨天运营商告诉我外网IP已经配置好了,可以直接用了,自己就在内网做了端口转发,也做了域名配置,就认为这已经完成了。结果内网测试都没有问题。就认为我用外网访问的,肯定外网没问题了。结果一出去域名访问就不行了,就认为只给我开了公网IP,是不是给我限制了。于是用deepseek去搜答案,AI只是让我测试有没有被限制,提示拒绝访问,说明流量已经到了路由器。建议我修改下防火墙。
我路由器是小米的,就没有找到ipv4的防火墙。我也做了端口转发到80和443.
我折腾了半天,才想起来,原来我的服务器防火墙禁用外网访问80和443端口。那当时在家用外网IP访问服务为啥通了?
这涉及了网络知识了。简单说,虽然都是通过外网访问,如果在内网访问,还是认为时内网,而我的服务的防火墙会直接放行,我配置的是内网默认放行。
当时我没有想到的是,外网访问时,已经转到内网,到了nginx上,nginx代理应该是访问的内网,应该是放行的。其实流量是根本没有到nginx这一层。在防火墙就已经拒绝了。
在开通外网时,有一份协议,要求不能开通这些端口,也不能用作服务器提供服务之类的。我就怕万一通了,一不小心让外网访问了这些端口怎么办啊,所以就禁用了。实则是自己不懂网络啊。
其实路由器就是很好的一层防火墙,以为请求到了路由器,如果没有配置端口转发,路由器是根本不知道转到内网里哪个设备的,所以直接拒绝了。

路由器端口转发下的几个策略:
1. 端口转发
a) 最简单的也是最安全的,就是添加规则,明天随便填,协议需要看自己的需求了,内部IP地址就是服务的地址,内部端口就是服务器暴露出来的端口号,外部端口是外网访问时的端口号,从外层看根本不知道内部服务器是什么端口号的
b) 我使用nginx监听80端口,然后用域名进行分发,也就是只有端口号域名不正确也不能访问,所以这样还是比较安全的。
2. DMZ
a) 是把整个内网服务器暴露出去,很危险的,不建议开的。如果一旦开了,之前的80端口也就对外了。其实需要哪个端口,就在端口转发出设置。本来网络知识就弱,遇到外网攻击,还真不知道怎么处理。在防火墙这多拦截点吧。
3. UPnP
a) 网上很多人说,这个会被p2p网站利用。他是默认的端口转发,设备可以直接申请端口和外部进行数据交换。昨天找问题时,我打开了,之后就忘了关,就出现了几条记录,不知道哪个服务出现的,所以我就关掉了。他和端口转发一个道理,只是这个是自动的,容易被利用。太详细的也不明白,所以直接关掉了。
大家如果对此也有疑问的,可以直接留言,评论。
我已经开通了注册用户功能,也可以给我发送电子邮件。
评论区