每次在网上问:如何用自己家的的宽带搭建一个外网可访问的站点呢?就总是会收到一些诸如“别折腾自己的电脑啦,现在有个东西叫做云服务器”的回答,“生命不息,折腾不止”作为我的座右铭所以以上并不是我想要的答案。废话不多讲,上干货
由于本人是python程序员,所以以下部分代码为python实现
众所周知由于IPV4已用完,所以目前我们办理的宽带分配到的IP地址多数为各大运营商的内网IP。
第一步: 获取公网IP
我们要做的就是拨打运营商客服电话,告诉客服人员自己家里有小孩需要安装摄像头所以需要公网IP。业务受理后,恭喜你,你获得了一个动态的外网IP。下面代码可以查看自家的公网IP
import requests
import re
res = requests.get('https://www.ip.cn/').text
regular = '((25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)'
my_ip = re.search(regular, res).group()
print(my_ip)
第二步: 网站部署
无论使用Nginx还是Tomcat等部署网站都可以,但是监听端口需要设置为80和443以外的其他端口(家庭网络中这两个端口是不开放的)
此步骤不明白的可以百度教程
第三步: DMZ到内网IP
如果是电信光猫需要用管理员的用户名和密码,大家可以试一下
超级用户名:telecomadmin
超级密码:nE7jA%5m(注意大小写)
进入超管界面后找到DMZ功能,将服务器的内网IP填好后这台服务器就暴露到Internet了,外网可以通过第一步查到的IP+端口号访问自己的网站了。
第四步: 购买自己的域名
可以去阿里云购买一个自己的域名,然后解析A记录为www或其他值,ip对应到第一步的IP地址,这样就可以通过域名+端口号访问自己的网站了。由于每次断电IP地址会变化,如果想一劳永逸可以查看阿里api,当公网IP变化后可以调用api修改解析记录。
时间关系,以上大多数只写出了思路,有问题欢迎留言,后续有时间会附上实现方法和图片,有疑问欢迎留言