999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種內網穿透控制智能家居設備的方案

2020-02-22 01:28:51錢立
現代信息科技 2020年18期

摘? 要:現代智能家居設備可通過手機APP被遠程控制,這些控制信息流通常會通過云服務器VPS中轉,存在安全隱患。當中轉VPS接受大量請求時,可能會產生網絡阻塞而延時。該文設計了一種價格低廉而又可靠的遠程控制方案,以MQTT協議傳輸信息,家居控制端采用NodeMCU控制模塊(ESP8266帶Wi-Fi),網絡架構以一種VPN技術,在手機APP和家庭路由器(OpenWrt系統)之間進行P2P內網穿透的直連通信,既保證了安全性,又提高了控制響應速度。

關鍵詞:內網穿透;ZeroTier;OpenWrt;MQTT;NodeMCU;ESP8266

中圖分類號:TP319? ? ? 文獻標識碼:A 文章編號:2096-4706(2020)18-0169-03

Abstract:Modern smart home devices can be remotely controlled through mobile APP. These control information streams are usually transferred through the cloud server VPS,which has security risks. When the transit VPS accepts a large number of requests,it may cause network congestion and delay. This paper designs a low-cost and reliable remote control scheme,which uses MQTT protocol to transmit information and the home controlled terminals use NodeMCU modules(ESP8266 with Wi-Fi). The network architecture uses a VPN technology to carry out P2P intranet penetration direct communication between mobile APP and home(OpenWrt)router,which not only ensures the security,but also improves the control response speed.

Keywords:intranet penetration;ZeroTier;OpenWrt;MQTT;NodeMCU;ESP8266

0? 引? 言

當下智能家居設備在家庭中逐漸普及,給生活帶來了便利。有時我們不在家中,卻想要查詢或控制家中的電器設備,這時就要求我們能對其進行遠程控制。目前常見的遠程家居設備控制方案通常采用云服務器中轉傳輸信息,存在兩個缺點,一是信息可被截獲,存在安全隱患,二是當中轉VPS接受大量請求時,可能會產生網絡阻塞而延時。本文采用內網穿透技術,使得控制端與家庭路由器之間不經過VPS中轉消息,以P2P直連,再結合MQTT協議和NodeMCU控制模塊,與手機端APP軟件以及開源OpenWrt路由系統一起構建了一個廉價可靠而又靈敏的物聯網家居遠程控制系統。

1? 內網穿透技術介紹

通常每個家庭的智能家居設備會以家庭智能路由器為中心構建一個小型局域網,在該局域網中以有線或Wi-Fi方式連接PC、手機、平板等各種智能聯網設備。當我們人在家中,手中的手機通常直連入家庭局域網,這時手機上的APP軟件可容易地控制家中聯網設備。而當人處于住所以外的地方,這時手中手機連接的網絡要么是4G/5G通信網絡,要么是另一個Wi-Fi局域網,這種情況下想要連接上自己的家庭局域網并控制聯網設備,則需要內網穿透技術才能達到目的。

內網穿透的目的是從外網(Internet)訪問局域網內部某一個聯網的設備,涉及NAT/NAPT和P2P等技術。

1.1? NAT和NAPT

NAT中文含義是網絡地址轉換,NAT不僅能解決IP地址不足的問題,還能有效地避免來自網絡外部的攻擊,隱藏并保護網絡內部的計算機[1]。NAPT中文含義是網絡地址端口轉換,能完成<內部地址+內部端口>和<外部地址+外部端口>之間的轉換,被稱為“多對一”的NAT,目前大多數中等及大型局域網中路由設備主要都采用NAPT。

1.2? P2P技術

P2P點對點技術又稱對等互聯網絡技術,可以使得不同局域網的內網設備實現直連。它的重要能力就是內網穿透,檔案分享類軟件如電騾等就使用了P2P技術。P2P傳輸的方法主要有中繼、逆向連接、打洞(UDP或TCP方式)等技術。需要注意,針對雙方都是對稱NAT網絡進行UDP打洞則不可行,而目前國內幾個主要4G網絡提供商的局域網大都是對稱NAT類型,使用常見內網穿透方式通常會失敗。

1.3? 實用內網穿透方案

商用內網穿透方案主要有花生殼、NAT123、蒲公英等。開源方案有frp、NPS、ngrok、ZeroTier、n2n、Tinc等。ZeroTier是一款適用于全球互聯網的智能以太網軟交換技術。它是建立在加密安全的全球點對點對等網絡(P2P)之上的分布式網絡管理程序。它提供了先進的網絡虛擬化和管理功能,與企業SDN交換機不相上下,能同時跨局域網和廣域網,幾乎可以連接任何類型的應用程序或設備。[2]

ZeroTier協議是原始的,在OSI模型意義上,它有兩個概念上獨立但緊密耦合的層:VL1和VL2。VL1是底層的點對點傳輸層,即“虛擬線”,而VL2是一個模擬的以太網層,它為操作系統和應用程序提供友好常見的通信介質。[2]

P2P連接過程為[2]:(1)A想發送一個包到B,但由于它沒有直接路徑,所以它將包發送到上級R(根節點);(2)如果R有一個直接鏈接到B,R會將包轉發到B那里。否則,R會繼續向上級根節點發送數據包,直到到達行星根節點群為止。行星根節點群知道所有的節點,所以如果B在線,包最終會到達B;(3)R還向A發送一個路由消息,其中包含關于R如何到達B的提示。同時,轉發包到B的根節點R也發送路由消息,通知B根節點R如何到達A;(4)A和B獲取它們的路由會合消息,并嘗試向彼此發送測試消息,可能會完成對任何阻擋的NAT或有狀態防火墻的穿孔。如果建立起了直接的鏈接,則包不再走先前的轉發路線。

2? 系統架構設計

手機通過4G/5G或局域網連接入公網Internet,家庭局域網路由器(OpenWrt系統)通過光貓接入公網。手機和路由器中均安裝有ZeroTier客戶端,前期通過ZeroTier的根服務器完成打洞,之后手機和路由器之間可建立起直連通道。路由器的OpenWrt系統上安裝有MQTT服務器(SSL版)[3],轉發MQTT消息給局域網中的所有NodeMCU控制模塊。本文采用了有較強內網穿透能力的ZeroTier技術,設計的系統架構如圖1所示。

3? 系統架構搭建及網絡連通測試

按照圖1架構方式,首先使用ZeroTier搭建內網穿透環境,分為五個步驟:(1)在ZeroTier官網先注冊賬號;(2)再根據使用的場景下載不同版本的ZeroTier客戶端軟件(有Linux,Windows,Android,OpenWRT環境);(3)網頁登錄個人賬號工作面板,創建網絡ID;(4)在使用環境中運行ZeroTierOne軟件,加入創建好的網絡ID;(5)在工作面板上授權各客戶端的連接,分配虛擬局域網IP,如圖2的192.168.191.39和192.168.191.16所示,其中39為手機IPv4地址,16為路由器(OpenWrt系統)分得地址。網絡連通測試只需由路由器向手機IPv4地址發送PING包,若建立起了P2P通道,則可PING通。

4? 手機APP與NodeMCU控制模塊通信設計及編碼實現

本文采用的物聯網通信協議是MQTT,該協議適合智能家居設備,有各種語言版本的實現。MQTT服務器采用開源Mosquitto(支持MQTT V3.1.1協議)[4],支持WebSocket通信方式。在手機APP中采用了開源mqtt.js[5],以網頁WebSocket進行通信。NodeMCU控制模塊的SDK[6]實現了MQTT的通信模塊,編程時只需調用編程接口即可。

Web頁關鍵代碼為:

手機APP調用Web頁,其中IP為由ZeroTier技術分配的虛擬局域網IP地址。

NodeMCU控制模塊進行MQTT通信關鍵Lua代碼為(其中IP為路由器IP地址):

function go()

m = mqtt.Client("NodeMCU", 120)

m:on("message", function(client, topic, data)

print(topic .. ":" )

if data ~= nil then

print(data) --根據mqtt消息進行設備控制,如關燈

end

end)

m:connect("192.168.2.1",

function(m)print("已連接")

m:subscribe("mqtt/d", 0, function(client) print("訂閱成功") end)

m:publish("mqtt/d", " NodeMCU", 0, 0, function(client) print("發送") end)

end,

function(client, reason) print("失敗原因" .. reason) end

end

當系統網絡連通后,從手機APP發布的MQTT消息內網穿透后,直接以P2P方式傳到家庭路由器(OpenWrt系統)上,該路由器上MQTT服務器收到這個消息后,轉發給NodeMCU控制模塊從而控制家居設備,比如開關空調、調節空調等。我院計算機科學系多個實驗室機房采用這種方案實現了對機房內空調和燈的遠程控制,完成的空調控制端模塊和手機端APP界面如圖3和圖4所示。實際運用的網絡環境為移動4G通信網絡(對稱NAT)和電信寬帶網絡(端口限制NAT),通信過程表明采用ZeroTier技術和這種架構,網絡響應迅速,是一種實際可用且可靠的方案。

5? 結? 論

本文構建了一種可內網穿透家庭局域網進行網絡直連,進而控制智能家居設備的方案。該方案硬件方面由手機/平板,廣域網(4G/5G通信網絡),VPS(ZeroTier根服務器),家庭光貓,路由器(OpenWrt系統),多個NodeMCU控制模塊和多臺受控設備(燈、電視、空調等)構成;軟件方面有手機/平板APP(ZeroTier客戶端、遠程家居設備控制程序),路由器OpenWrt系統運行的ZeroTier客戶端、MQTT服務器(Mosquitto)軟件,NodeMCU控制模塊程序,結合MQTT協議進行信息交互。采用了ZeroTier的P2P技術能在除兩方局域網都是對稱NAT網關設備之外的多種情景下進行內網穿透。實際場景應用表明這是一種穩定可靠且快速的遠程控制家居設備的方案。

參考文獻:

[1] FALL K R,STEVENS W R.TCP/IP詳解 卷1:協議:第2版 [M].吳英,張玉,許昱瑋,譯.北京:機械工業出版社,2016:212.

[2] ZeroTier.MANUAL [EB/OL].[2020-05-20].https://zerotier.com/manual/.

[3] OpenWRT. package:mosquitto-ssl [DB/OL].[2020-05-20].https://openwrt.org/packages/pkgdata/mosquitto-ssl.

[4] Eclipse. An open source MQTT broker [EB/OL].[2020-05-20].http://mosquitto.org/.

[5] MQTT.js.The MQTT client for Node.js and the browser [EB/OL].[2020-05-19]https://github.com/mqttjs/MQTT.js

[6] ROBINSON S,TUAN PM.MQTT Module [EB/OL].(2015-01-23).https://nodemcu.readthedocs.io/en/release/modules/mqtt/.

作者簡介:錢立(1978—),男,漢族,四川遂寧人,碩士,副教授,研究方向:軟件專業Java/Web開發前端技術、物聯網嵌入式軟件技術等。

主站蜘蛛池模板: 亚洲娇小与黑人巨大交| 亚洲国产黄色| 97狠狠操| 美女被躁出白浆视频播放| 国产一级妓女av网站| 久久黄色小视频| 日韩中文精品亚洲第三区| 国产日韩欧美在线视频免费观看 | 久久久久人妻精品一区三寸蜜桃| 成人午夜天| 亚洲欧美国产高清va在线播放| 精品国产乱码久久久久久一区二区| 日本高清有码人妻| 国产一区二区免费播放| 五月婷婷综合网| 直接黄91麻豆网站| yjizz国产在线视频网| 久久一级电影| 免费一级毛片在线播放傲雪网| 欧美日韩中文字幕在线| 四虎影视国产精品| 久久窝窝国产精品午夜看片| 日韩人妻无码制服丝袜视频| 熟妇丰满人妻av无码区| 97视频在线观看免费视频| 91久久夜色精品国产网站| 欧美.成人.综合在线| 国产理论一区| 久久综合九色综合97婷婷| 国产美女无遮挡免费视频| 伊人国产无码高清视频| 欧美人在线一区二区三区| 欧美精品二区| 福利国产微拍广场一区视频在线 | 亚洲最新在线| 男人天堂亚洲天堂| 青青草原国产| 无码高潮喷水专区久久| 日本a级免费| 黄色免费在线网址| 色综合中文| 日韩黄色大片免费看| 国产亚洲视频在线观看| 国产高清不卡| 国产欧美日韩18| 中文字幕亚洲电影| 欧美福利在线| 久久久久国产精品免费免费不卡| 欧洲高清无码在线| 亚洲高清在线天堂精品| 亚洲第一区在线| 欧美成人一区午夜福利在线| 国产午夜看片| 亚洲天堂2014| 国产午夜看片| 99久久婷婷国产综合精| 毛片免费视频| 日韩a级片视频| 深夜福利视频一区二区| 国产91九色在线播放| 日本精品影院| 香蕉视频在线精品| 91视频99| 国产日韩AV高潮在线| 欧美日韩理论| 日韩黄色在线| 国产亚洲精久久久久久无码AV | 亚洲国产成人自拍| 免费一级大毛片a一观看不卡 | 久久视精品| 亚洲欧美成人影院| 亚洲人妖在线| 国产第八页| 国产美女无遮挡免费视频网站 | 亚洲高清资源| 色噜噜在线观看| 欧美一级视频免费| 天天视频在线91频| 一区二区三区国产精品视频| 国产成人做受免费视频| 国产va欧美va在线观看| 一级成人a毛片免费播放|