如何花小钱办大事?智能家居创客老司机手把手带你搞定外网连接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官方客户端上也好用哦
好啦,这一篇就到这了,有什么我们评论见吧~
你的评论没了
校验提示文案
黑夜呐喊
校验提示文案
柒号
校验提示文案
粤甲
校验提示文案
云栖隐者
校验提示文案
追风的小明
校验提示文案
蔬菜依然在
校验提示文案
饿轰轰的恐龙
校验提示文案
[已注销]
校验提示文案
屋顶看小说
校验提示文案
adamschan
校验提示文案
ysl708
校验提示文案
Time1
校验提示文案
[已注销]
校验提示文案
BLACKPINK4
校验提示文案
值友1233819789
校验提示文案
值友3253123573
校验提示文案
虾须
校验提示文案
贼酱的小迷妹
校验提示文案
Troy只是Troy
校验提示文案
值友6555449230
校验提示文案
[已注销]
校验提示文案
aboutme
校验提示文案
爱吃大芒果的猫
校验提示文案
野良箱子
校验提示文案
cheney0513
校验提示文案
24k双花红棍
校验提示文案
方唐
校验提示文案
陈德深
校验提示文案
Time1
校验提示文案
Big_baby
校验提示文案
mediomid2019
校验提示文案
哒哒哒虫
校验提示文案
丽159
校验提示文案
峰139
校验提示文案
芝131
校验提示文案
宇152
校验提示文案
free-1213
校验提示文案
蓝水
校验提示文案
西西5102
校验提示文案