对于有ipv6或者v4公网的朋友们,就可以通过公网来远程访问家中的软路由及各种设备。想要实现远程,了解防火墙运行的基本逻辑和设置防火墙规则是必不可少的。
基本防火墙逻辑
我使用的是istoreOS系统,这个系统是基于openwrt系统进行编译的,其他版本的openwrt系统,防火墙设置这里和这基本没什么区别。
istoreOS可以在网络选项卡中选择防火墙可以查看防火墙的设置,istoreOS在默认情况下,会帮我们创建两个区域,分别是绿色的LAN区域和红色的WAN区域。我们家中的局域网设备都接入的LAN区域,而WAN区域是连接光猫的,光猫后面是整个互联网,你可以理解为互联网上的所有设备全都接入了WAN区域。

默认情况下,LAN区域的数据允许转发给WAN区域。也就是局域网的设备可以访问的互联网的任何设备,而WAN区域禁止转发到任何区域,也就是你在互联网的禁止访问LAN区域的任何设备。
入站数据和出站数据:这里的入站和出站是从路由器的角度来说的,访问路由器本身的数据就是入站数据,路由器主动访问别人,就是出站数据。
LAN区域入站设备为接受,比如,当前访问的路由器web管理页面就是入站,WAN区域入站设置为拒绝,也就是说你在外面无法访问当前的web管理页面。以此类推,出站数据均为接受,即路由器可以访问LAN区域也可以访问WAN区域。
转发:这里的转发和前面的转发不同,这里指的是区域内的转发,LAN区域内表示接受,表示LAN区域内不同网段的设备可以互相访问,比如192.168.2.2和192.168.3.2的设备可以互相访问。
同网段的设备直接通过交换机转发,不经过防火墙。
通信规则
我们直接使用itdog来ping一下我们的路由器或电脑的公网ip,会发现外网可以ping通,但是按照上面所述,来自WAN区域的数据表应该是会被完全丢弃。不应该ping通才对。这是因为openwrt在此基础上单独设置一些例外规则。
来到通信规则页面,会发现系统默认的几条例外规则,这些都是为了保证系统正常运行的例外规则,优先级要比主界面区域设置界面要高。

其中有一条规则为,来自WAN区域,协议为ICMP的ipv6/ipv4数据包,不管目标是哪个区域,都接受转发。而ICMP中包含ping规则,所以公网能够正常ping通家中设备的公网ip,同时,系统默认只是放行了ICMP中个别几个必要的ICMP类型。所以不用担心自己在公网上裸奔。
端口转发
这是一种常见的使用公网ip进行远程访问的一种手段,众所周知,家宽一般会默认封禁常见的服务端口(80和443),为了绕过这个限制,就可以使用端口转发,用其他端口通过防火墙的端口转发,转发的80或443等其他服务端口。
进入端口转发页面,点击添加,地址限制为ipv6或者v4,你有什么公网就用什么。外部端口设置为2345或其他,内部端口设置为80。如此一来,就可以远程通过公网ip+2345端口进行访问路由器web管理界面了。

如果想要在内网也通过2345端口进行访问,可以再添加一个端口转发,将原区域改为LAN即可。