如何讓樹莓派可以被外網訪問?

樹莓派的網路環境是筆記本開啟的wifi,筆記本連的是校園網;看了網上的資料都是通過路由器;目的是想在樹莓派上部署一個網站(補充:其實是想實現一個智能家居的東西)


正如@王振宇所說,沒有公網IP,在互聯網上別的主機就沒法主動找到你(的樹莓派)。只能你主動找別人建立聯繫(建立TCP連接)。

而我這裡要說的是,樹莓派那點計算能力,和校園網或者自家網路的可靠性,都不足以承擔一個網站所需的穩定性可用性要求。

需要樹莓派做網站的目的,是將樹莓派採集得到的數據在網頁上呈現。這一目的並不是必須在樹莓派上面搭建網站。你可以在一個VPS上面搭建網站,然後在樹莓派上面寫一個腳本(任意語言)將採集到的感測器上傳到VPS上面的網站程序。又或者使用現在流行的物聯雲,例如著名的yeelink來實現,這樣就連vps也不用了。就能隨處查看樹莓派上面的感測器信息。

如果你會編程,建議購買VPS,http://www.duniangyixia.com/jianzhan/vps/11328.html 3年5美金。

如果不會,建議百度:「樹莓派 yeelink」關鍵詞來學習使用物聯雲。類似yeelink的物聯雲有很多。

如果一定要在外網訪問樹莓派上的網站,可以使用花生殼的一些解決方案,不過是通過非標準的反向代理方式。有點捨本逐末了。非常不建議強行在樹莓派上面直接搭建網站。


因為你用的是校園網,通常校園網是沒有公網IP地址的,所以簡單的說:沒法從外網訪問你的樹莓派。

更新一下: @TEL靜止 推薦使用花生,原理上沒有公網IP是不可能從外面訪問到裡面的.所以花生殼應該是要求內網機器必須安裝一個客戶端.這種方法不知道真正用起來穩定性如何.


1:買個便宜的vps。配置最小即可

2:ssh隧道把樹莓派的本地埠映射到vps上某個埠

3:樹莓派跑服務

4:vps允許訪問綁定的埠

很簡單就可以實現的方案了。手機上回答不方便。有興趣我再補充完整


我試過一個比較好玩的內網穿透的方法,還記了一篇日記。或許對你有幫助 nginx和ngrok配合進行內網web轉發(試驗) - 孟凡懂的文章 - 知乎專欄


http://service.oray.com/question/2680.html


答主就是違反相關法規,在校園網搭了博客,卻還沒備案的(′?ω?`)

校園網有沒有公網IP要看的。我的就是公網IP,屬於教育網cernet。然後寢室路由器配一下埠轉發。https://blog.sunziping.com/ 就是這個站點(由於流量問題,目前校園外只能IPv6訪問,校園內IPv6和IPv4均可)。

然後呢,其實我發現我們學校分配的IP是傾向於不變的。所以乾脆就給了個域名。

如何看是不是公網IP。嗯那就是你寢室里網線最近的那台機器(一般是路由器)獲得的IP如果和http://ip138.com上看到的一樣,那就是公網IP啦。

智能家居。我也想做。已經燒掉了好多電路元件,正打算反向研究空調紅外。題主有什麼想法可以一起交流哦。

====

( ;?;)哪個室友吧我的樹莓派的插頭拔了。我的插頭呢,要不夠了咩。

====

我再來給一些有用的信息。教育網包含了以下節點:

目前我知道的,清華和上交是公網IP。料想,別的也挺大可能是的。如果答主最後要買VPS,若是學生,騰訊有1元/月的方案。但國內帶寬費用貴。國外的話要準備好信用卡,基本都是清一色的不支持銀聯。


哈哈我來歪個樓,雖然搭不了網站,但是做個智能家居的控制端還是木有問題的啦只要你的rpi能訪問網路就行了

我曾經也是和題主一樣搗鼓智能家居,但是怎樣才能訪問到rpi呢,由於沒有公網IP外部是不能直接訪問的,但是我們可以利用一些第三方平台作為中介傳遞信息,如果只是用來控制智能家居的話那便足夠了,比如我就利用微信發送指令,rpi獲取指令後直接判斷就行啦。

我是用的這個實現的https://github.com/liuwons/wxBot

同理還可以利用郵箱呀ftp呀等等,感覺微信實現最簡單


果斷ngrok 啊,國內免費的http://ngrok.cc,不謝


花生殼可以


方法其實有很多很多,不過沒有公網IP的話可以參考以下這個,而且操作簡單~

路由器上有動態公網IP的情況下,多數人會用花生殼來實現。但現在公網IP資源稀缺,很多網路環境都是私網IP。有外網連接使用的需求的話,這裡建議使用蒲公英異地組網來實現,不需要公網IP。

值得一提的是,通過蒲公英異地組網方式,組建的是封閉的區域網,在一定程度上是可以保證內網數據的安全,而且操作相對簡單,不需要什麼網路知識,同時更是可以支持手機在內的移動設備進行遠程訪問。

樹莓派到手後,需要給它刷一個專用系統。安裝系統主要是將系統寫入存儲卡(相當於是樹莓派的系統盤),裝好後將存儲卡插在樹莓派上,就可以開始各種腦洞的玩法啦~~

這次就小試牛刀,直接用樹莓派搭建一個簡單的PT及BT下載機,演示如何與蒲公英異地組網完美結合。

一、安裝transmission服務

Transmission是Linux上的PT下載及BT下載軟體,再樹莓派已聯網的情況下,直接運行命令進行安裝:sudo apt-get install transmission-daemon

期間,系統會讓你確認這個操作會佔用一定的磁碟空間,輸入Y確認繼續運行。

二、創建目錄

在安裝好transmission服務之後,我們需要創建兩個目錄,分別是用來存放已下載好及未完成下載的文件的,具體命令如下:

mkdir -p /home/pi/incomplete ---- 存放未下載完成的文件

mkdir /home/pi/complete ----存放已下載好的文件

三、配置目錄的許可權

這裡要注意的是,如果不是切換到管理員用戶,運行的時候需要以管理員身份運行:

sudo usermod -a -G debian-transmission pi---- FAT格式的移動硬碟改動,mount的時候指定用戶和讀寫許可權就行

chgrp debian-transmission /home/pi/incomplete--這是對 SD 卡上的目錄而言的

chgrp debian-transmission /home/pi/complete

chmod 770 /home/pi/incomplete

chmod 770 /home/pi/complete

四、修改配置文件

在這一步需要修改配置文件: /etc/transmission-daemon/settings.json,用nano來編輯。裡面的配置項比較多(如有興趣參考鏈接 ),這裡主要改下面這3項:

"download-dir": "/home/pi/complete"----已完成的下載目錄

"incomplete-dir": "/home/pi/incomplete"----未完成的下載目錄

"rpc-whitelist": "192.168.1.*" 允許Web訪問的白名單地址

五、重啟transmission

修改好配置文件後,需要重啟服務,注意以管理員身份來運行。

sudo service transmission-daemon reload

sudo service transmission-daemon restart

六、訪問PT/BT下載器

使用transmission搭建的PT/BT下載機,是可以通過web方式訪問的,默認埠是9091,加上前面設置訪問白名單時,是指定區域網內的整個網段。所以同區域網內的電腦,在瀏覽器打開:http:// 192.168.1.199 :9091 並輸入用戶名和密碼就能登錄了。

進去後,通過輸入下載路徑,或選擇電腦上的Torrent文件來創建下載任務,就可以開始下載資源啦。就算是上班時,甚至晚上睡覺時都不用開著電腦了。直接讓樹莓派在線,在裡面創建若干下載任務,上班時或睡覺時專門來下載資源。

由於公司和家裡不在一個區域網內,當離開家時就無法通過web方式來查看PT/BT任務的下載進度,想修改應用服務裡面的配置文件也不行。這裡我們推薦使用花生殼出品的蒲公英異地組網來徹底解決區域網遠程訪問難題。

蒲公英異地組網包括硬體和軟體,可以輕鬆組建異地區域網,相較於現有的PPTP、L2tp、IpSec等類型的方法要簡單得多。在使用樹莓派搭建各種服務應用時,蒲公英異地組網從中可以發揮很重要的作用。

下面來看詳細步驟:

1、創建異地區域網

為了不改變家中的網路結構,不替換現有路由器,本次使用了蒲公英路由器X1的旁路模式進行組網,現在只需要在蒲公英官網註冊賬號,登錄到管理頁面,點擊創建網路,並做旁路模式即可。

因為公司網路是已經固定的,無法外接路由器,而且有外網連接需求的暫時只有我一個人。這裡,只需添加一個客戶端成員,並輸入登錄密碼,點擊確定即可。

加完客戶端成員後,繼續添加路由器成員。輸入家裡蒲公英路由器的SN碼,點擊確定就可以了。

此時,組網已經基本完成。這裡可以看到客戶端成員有一個專屬的ID,這個是用來登錄蒲公英客戶端的,還分配了一個172開頭的地址。

最後,點擊旁路設置,開啟蒲公英路由器的旁路模式即可,由於家中路由器使用的網段是192.168.1.*,因此,在旁路模式中填寫192.168.1.0/24 ~

2、安裝蒲公英異地組網軟體客戶端

在公司的電腦上,安裝蒲公英異地組網軟體客戶端,並輸入組網時分配的ID和密碼登錄。

登錄成功後,在客戶端界面上可以看到家裡的路由器!

值得一提的是,除了電腦客戶端外,蒲公英異地組網還支持移動設備,擁有安卓和iOS客戶端。因此,出門在外,也可以通過手機瀏覽器來管理樹莓派中的下載任務。

3、實現外網連接

在前面修改配置文件時,我們針對訪問白名單,是加了192.168.1.* 這個網段的。而現在電腦在公司,本身IP地址是192.168.31.124,安裝蒲公英客戶端後,虛擬網卡分配的IP是 172. 2.173.198。均不在設置的白名單內。所以,我們需要打開transmission的配置文件,並且將我本機的IP地址寫進白名單。

目前已經組網完成並成員間能互通,在公司的電腦上,打開putty,輸入樹莓派的IP,就可以通過SSH方式登錄到樹莓派里。

登錄進去後切換到root用戶,然後修改配置文件,加上網段:"172.*.*.*",保存並重啟服務。

4、外網下載並存取文件

隨後在瀏覽器直接輸入http://192.168.1.199:9091 ,測試可以訪問到家裡樹莓派的PT/BT下載器~~

此外,如果有遠程存取文件的需求也能使用WinSCP等軟體搞定,輕鬆訪問樹莓派中的已下載文件~

至於Android手機則可以安裝Transmission Remote App來遠程管理下載任務,就算出門在外也可以輕鬆訪問家中的樹莓派~

整個過程下來非常簡單,也不需要其他複雜的操作,還能隨時隨地能遠程連接回去。


Sunny-Ngrok內網轉發 這個能滿足你的要求,支持ARM!


可以用autossh,找一個有公網的伺服器,做埠轉發。

當然你要有一個公網下的vps之類的東西轉發才行…


可以試下nat123,論壇里有跟樹莓派結合的。


直接上花生棒吧,已成功運用,校園網確實比較坑


推薦閱讀:

我還要繼續學習51單片機嗎?----答疑貼
如何評價華為今天發布的麒麟920?會不會又像K3V2那樣名過其實?
怎樣加入一個開源項目?
自己設計製作小型飛行器(像四旋翼飛行器、直升機),比較重要的是哪一塊?
FPGA、單片機的區別?

TAG:極客Geek | ARM | 樹莓派RaspberryPi |