Table of Contents
暴露家庭内某一主机的服务到公网
我们家里有两个路由器: 小米2013年版, 华为2019年版 路由器上有最多可能有3个相关功能:端口转发,DMZ,域名服务商的自动关联
1 端口转发
让来自外部对这个局域网内的路由器的地址(小米的是192.168.31.1,华为的是192.168.3.1)的某一个端口如:5050,转发到 对应局域网内某一台机器的某一个端口上。
比如我的机器连上小米路由器以后IP是:192.168.31.27 然后我起了一个web服务 9090端口。
配置就是: 外部端口:5050,内部IP:192.168.31.27,内部端口:9090, 对应的协议:可以选TCP
2 DMZ
相当于所有的端口转发,隔离出一台机器出来。所有对这个路由器的IP的访问都被转发到 局域网内某台机器上
3 域名服务商的自动关联
要看自己的路由器是否支持, 比如我这边只有华为路由器支持oray的域名转发。我需要把个人域名迁入到 oray下面管理(临时注册新域名的话,至少需要超过7天,注册好的域名要备案通过,才能使用)然后配置好。我猜测:路由器有这个功能,应该是能做到,家庭宽带变更公网IP以后。能够自动在域名服务商那边修改 匹配地址的。
4 端口映射配置在光猫上
反正我各种试了一圈,感觉都没成功。 接着想到。似乎家庭里面有一个光猫。
真正的网络是:公网 先访问到 光猫(现在的光猫其实集成了一个有线和无线路由器)而光猫对应的地址是:192.168.1.1 然后从光猫上连接出去,两个路由器 又组建了两个局域网
所以我直接把电脑连接到 光猫出来的端口上。我的主机IP就变成了: 192.168.1.2 打开网址:192.168.1.1对应的默认用户是: useradmin 而密码就贴在光猫的背面(厂商生产每一个光猫都贴好了密码上去的,包括无线的和有线的密码)
所以最终进入光猫的主页,配置好 端口映射,就可以了
配置好以后,我在笔记本上,疯狂地尝试。怎么都连不同。比如我的公网IP是: 172.34.92.110 我在自己机器上启动了一个服务 8099端口。映射到外网的端口也是8099 (主要不要设置太常见的端口,比如80之类的,容易被运营商屏蔽的) 然后我拿着笔记本疯狂telnet 172.34.92.110 8099. 怎么都不成功。
但是telnet 192.168.1.2 8099 是成功的。
网上找了好多资料没什么结果。 某一天偶然看到。要用手机4G信号的情况下 访问一下 http:172.34.92.110:8099 居然能打开。 (大致明白了,身在这个公网IP内部的局域网中 直接访问这个IP是不通的。其实 真正在公网的网络里 访问其实能连通的。至此基本解决了问题)
5 更多的事情
因为个人家庭网络,公网IP是会不断改变的。(可能每一个月变一次) 据说是在重启光猫的时候会变一次。我发现我们家光猫 100天没重启了。但是IP地址似乎是30天左右还是会变一次。
对于程序员来说,要么选择想办法把这个事情通过 能支持域名匹配的路由器,关联到域名服务商上。
要么自己写个程序,每几个小时监控一下,如果发现有修改,然后自动自动一个浏览器,通过selinium程序去修改A记录的配置