如何花小钱办大事?智能家居创客老司机手把手带你搞定外网连接HA
前言
随着网络的普及,现在家家户户也都有宽带了,作为从电话拨号昂贵上网走来的五好青年,看着现在的动辄50M、100M的宽带或者光纤免费上网,很是激动,运营商也越来越“厚道”,降费的时候,也悉心考虑了我们的安全,把我们深深地藏在不知多少级 的NAT 里面,防止我们直连公网,分分钟被攻击死。
很多人可能疑惑,公网IP有什么用?这里简单的说下,具体怎么区分是否为内网ip,自己搜索
公网IP:在全球内是唯一的,作为身份的标识,在同一时间一个IP(除个别特别IP)只代表一台设备,通过公网地址能直接访问因特网。
内网IP:属于非注册地址,专门为组织机构内部使用(用于局域网),在公网上是不能使用内网IP地址来实现互联网访问的。
对于一般用户来说,没有公网IP基本没有任何影响,但是对于一些技术宅男就不一样了,BT不能下载、PS4等联网游戏无法登陆联机、NAS无法进行FTP和远程传输、连接数限制很大,这样就回导致家里自己搭建的nas、监控、智能家居分分钟就被逼出内伤
这种情况很多时候电信可以通过友好的客服电话沟通,拿到公网IP,但联通等其他运营商就不一定了,固然可以通过内网穿透、DDNS服务或者ECS等来达成,但那要么要钱,要么很慢不稳定,这样不符合大妈价值观,花生壳、nat123等等之类的就不说了,仅以HA简单稳定免费外网连接做个分享。
通过Ngrok反向代理
sunny-ngrok介绍
对于家里没有公网IP,想在其他地方访问到家里是很困难的事,一般的方法大致有花生壳动态域名解析、ngrok搭建服务器反向代理、frp搭建服务器等,每一个对小白来说都有不小的入门门槛。
这里只讨论ngrok的方法,为了方便小白入门,也不说从头搭建ngrok服务,仅以国内比较有名的sunny-Ngrok做分享。
sunny大大提供了一条命令解决的外网访问内网的解决方案,无需任何配置,适配不同终端,下载客户端之后直接一条命令让外网访问您的内网不再是距离。具体可参见官方网站https://www.ngrok.cc,技术支持可参见sunny大大的博客https://www.sunnyos.com
通过ngrok实现公网连接HA
老规矩,依然step by step分享。
1、首先,浏览器打开ngrok.cc网址,注册后登陆后台
2、进入隧道管理---开通隧道,然后拉到最下面,选择右下角香港免费服务器,点击立即购买(当然啦,是0元免费)
3、然后按下图中的参数设置隧道信息。http账号密码空着就行或者自己填一个都可以
4、开通完成后,回到隧道管理---隧道管理能看到自己刚才开通的隧道了,此时复制隧道id备用。
5、然后回到ngrok首页,向下滚动选择客户端下载,因为之前教程都是通过树莓派来的,所以选择ARM平台即可(当然也可以根据你实际的不同设备选择相应的客户端)。
6、下载后得到一个linux_arm.zip的压缩包,解压后得到一个sunny文件备用。
接下来就是表演技术的时候了
7、打开Putty(也可以是其他客户端),脸上HA后,执行如下命令新建用于ngrok的文件夹(当然也可以是其他目录,但相应的后面都需要更改,我这里建在了/home/pi下,文件夹名为ngrok)
sudo mkdir /home/pi/ngrok
8、然后就可以用WinSCP等ftp软件将之前下载解压备用的sunny文件上传到到/home/pi/ngrok目录下(当然也可以随便放其他位置,比如通过Samba服务把sunny文件放入homeassistant文件夹,同上,后续命令都需要更改相应路径)
9、然后回到Putty,执行如下命令对新上传的sunny文件赋予权限
sudo chmod 0777 /home/pi/ngrok/sunny
然后就是启动sunny服务并赋予sunny文件开机启动权限了(我主要是自己新建一个系统服务脚本,然后再通过设置此脚本自启来实现的)
10、首先,新建一个shell脚本,位置也可以随便放,我放在home/pi/ngrok/sunny文件夹下,直接新建个空白txt,然后改名为shell.sh,内容如下,保存后用ftp软件上传到home/pi/ngrok/sunny文件夹下
cd home/pi/ngrok/sunny #此处更改为你自己的sunny客户端的文件路径
nohup ./sunny clientid ******** >/dev/null 2>&1 #********改成自己的id,多个id用逗号(半角)隔开
11、然后把这个启动脚本做成系统服务,在/etc/init.d目录下新建服务,其实就是新建一个为"sunny"的文件,然后赋予对应权限
cd etc/init.d
sudo touch sunny
sudo chmod 755 /etc/init.d/sunny
sudo nano etc/init.d/sunny
复制,粘贴如下代码,然后ctrl+X,再按y保存退出
#!/bin/sh
#chkconfig:2345 70 30
#description:sunny
sunny_path=home/pi/ngrok/sunny #此处更改为你自己的启动脚本的文件路径
case "$1" in
start)
echo "start ngrok-sunny service.."
sh ${sunny_path}/sunny.sh
;;
*)
exit 1
;;
esac
然后赋予刚刚创建的“sunny.sh”文件至少755的权限
sudo chmod 777 home/pi/ngrok/sunny/sunny.sh
12、接下来注册下ngrok-sunny的自启动服务就好啦
cd /etc/init.d
sudo update-rc.d sunny defaults
sudo update-rc.d start 70 2 3 4 5
13、测试服务和自启动能否能启动成功
sudo service sunny start
sudo sysv-rc-conf
当然了,也可以自己手动启动sunny服务
cd home/pi/ngrok/sunny
./sunny clientid ******** #********改成自己的id,多个id用逗号(半角)隔开
12、服务启动后,就可以开心的输入自己之前sunny-ngrok中注册的地址登陆了,快乐的全球任何地方远程控制了,记得搭配远程监控服用效果更佳
而且再HA官方客户端上也好用哦
好啦,这一篇就到这了,有什么我们评论见吧~










校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案