如何使一個樹莓派的伺服器端可以外網訪問(小區寬頻無外網IP,TP-Link路由器)?

通過花生殼(樹莓派端),路由器轉發設置等均不能訪問


沒有公網IP,也沒有一個公網IP做埠轉發,那就是不可能讓你的Raspberry Pi被外面訪問。當然有條件的訪問是可以的,比如被動的訪問:你在Pi上輪詢一個外部服務(比如email,或者類似Yeelink這樣的服務),從這個外部服務接受指令。


我小區的情況跟你一樣。也是沒有公IP,我的方案是,用樹莓派撥一個VPN,然後你在公司或者其它地方的適合,再撥同一個vpn,這樣,相當於你的VPN server 就是一個中繼伺服器了,vpn會給撥號的設備一個區域網ip段,用這個ip段去鏈接你家裡的樹莓派就OK了。比如通過xshell去鏈接樹莓派的ssh.


找的一些穿透的方法,總結以下:

n2n 開源 P2P 免費 伺服器較少,暫停開發

ngrok 分版本開源 非P2P 免費或收費 官方伺服器被牆

反向ssh 開源 非P2P 免費 ---

TeamViewer 閉源 P2P 免費或收費 ---

Hamachi 閉源 P2P 免費或收費 ---

花生殼 閉源 非P2P 免費或收費 ---


前天剛寫了一個內網映射的筆記,希望對你有幫助nginx和ngrok配合進行內網web轉發(試驗) - 孟凡懂的文章 - 知乎專欄


以前我也糾結這個問題很久,路由器沒有許可權做映射,這時候有udp打洞比較適合,VPN也可以,另外還有個方法就是N2N,其實就是類似P2P

參考這篇博客

n2n內網穿透神器(p2p)


我的辦法是給樹莓派註冊個郵箱,監聽這個郵箱,我需要幹什麼操作就發郵件,就能間接實現遠程控制啦

自己DIY思維不能僵化


TP-link 不是可以自己設置ddns的花生殼域名嗎?在設置頁面設置好,然後在路由器中做好樹莓派的靜態ip和轉發就可以了。要注意的是80和8080一般都被封了,要自己改一個埠。

2015-8-31新增:如果寬頻運營商設置了nat的話,在路由器獲取的ip和實際對外ip不一樣。

在路由器界面查看wlan的ip,如果是100,10開頭的話肯定是經過了nat轉換的,這種情況下訪問http://ip138.com能夠查看到準確的ip。

這時可以用樹莓派的花生殼內網版實現內網穿透。具體可見:樹莓派花生殼(內網版)攻略


當然是ngrok了!反向代理,路由器都不用配置,兩行代碼的事,我的樹莓派就是這麼搞定的


在樹莓派上搭建web伺服器——基於Apache 請參考這篇博文


1. TP-link 找到超級管理員賬號密碼,都可以設置外網訪問服務的。大部分可能都是出廠設置,所以你懂的。

2. 動態IP問題,我曾試過一個較笨的方法,就是讓樹莓派每隔一定時間將IP地址主動發信息告訴我。


我有個解決辦法,沒有親自嘗試過。

1.申請一個伺服器,阿里雲新浪雲都有免費的php空間可用,然後再伺服器上跑web服務

2.樹莓派通過http長連接和伺服器通信。現在你只需要把http長連接看成普通的tcp連接就行。

3.伺服器上的程序將收到的http請求轉發給樹莓派,並將樹莓派的響應回傳給用戶就行

當然http長連接可能不穩定需要考慮到,還要考慮樹莓派認證登錄伺服器,以及傳輸加密之類的問題。如果數據量較小且對實時性要求不高,可以考慮樹莓派定期向遠程伺服器post數據,然後伺服器緩存數據,用戶請求時直接拿緩存,這樣問題會簡單很多


小區的話,也許可以打電話給運營商客服詢問一下是否可以給你分配一個公網IP哦。應該是可以的。


可以用VPN+DDNS的組合,VPN用來獲得公網IP,DDNS用於訪問


推薦閱讀:

樹莓派 gpio 各個引腳 作用?
樹莓派(Raspberry Pi)如何安裝系統?
為什麼不用淘汰的智能手機代替樹莓派呢?功能更全還不要錢
如何讓樹莓派快速產生大量的熱?

TAG:計算機網路 | 視頻監控 | 樹莓派RaspberryPi |