記錄“複雜”的家庭內網端口轉發
Internal network port forwarding
前言
在进行好上篇文章的所有操作后,通过远程
ping
域名,是可以ping
通家里的IPv4
地址的,但不知为何,通过域名+端口进行远程访问,是失败的,这说明很有可能是端口没有映射成功,于是我又ping
了下端口,果然,状态显示是关闭了的。来到主路由上的设置,可以看到这是我对
openWRT
这个设备进行了端口映射,以及设置为DMZ
主机。网上很多人说只要设置了DMZ
主机,是可以不用设置端口映射的,经我测试,我这里的设备是行不通的,所以我依然进行了端口映射到openWRT
。其实在设置
openWRT
为端口映射的设备之前,我一直映射的是台式主机的内网地址。我的思路是,既然要在电脑上使用stable-diffusion-webui
,那我肯定只需要映射外网端口到电脑主机的内网端口就行了,事实证明,由于我家里网络的复杂程度,这种思路是完全错误的,这也是导致了我频繁映射失败,而无法访问内网的直接原因,因为我跳过了电脑主机网关是openWRT
这一情况。所以当我把映射设备改成openWRT
后,一下就成功了。(当然,openWRT
上也必须要对端口进行映射,映射到电脑主机的内网地址)综上,因为我自己大脑宕机,花了超过24个小时的时间来研究内网穿透,实际上就是一个小小的思路上的错误而导致的,这也是为什么我给标题的“复杂”二字加了引号。
端口映射
服务名称 | 设备IP | 外部端口(主机) | 内部端口(主路由) | 外部端口(主路由) | |
---|---|---|---|---|---|
内部端口(主机) | 内部端口(openWRT) | 外部端口(openWRT) | |||
RDP | 192.168.123.110 | 3389 | 3389 | 3389 | 3389 |
Alist | 192.168.123.110 | 5244 | 5244 | 5244 | 5244 |
SSH | 192.168.123.110 | 22 | 2121 | 2121 | 2121 |
openWRT | 192.168.123.3 | 80 | 22513 | 22513 | 22513 |
- 可以看到,由于我家里的网络布局,对端口进行了两次映射,先把最外面的主路由端口映射到
openWRT
上,再把第二层设备openWRT
端口映射到主机上,如此就形成了完整的端口映射方案,这下再避开一些电信封禁的端口,是可以完美访问内网设备的。
域名访问
按理说,我在上篇文章的
ddns-go
中添加了域名,web
服务是可以直接通过域名+端口的形式访问的,但是此时会跳转错误。通过分析,其实也不难得出答案,访问web
服务时,因为域名要占用80端口,但是80端口又是被封禁了,所以是无法用此方法的。来到宝塔面板,添加站点,输入域名+已经映射完成的端口号,访问成功
访问网页时,即使加上了
SSL
也是显示的“不安全”,从研究服务器这么久可以知道,访问内网实际上是一样的,加上SSL
是可以成功的。这里一直没有搞懂原因,还是闲下来再测试和折腾吧。。。