通過 VPS 路由所有流量
我最近買了一個 Raspberry Pi,我正在為各種事情設置它。我有一個本地路由器,Pi 與我的台式電腦一起連接到該路由器。我希望能夠從本地網路外部訪問 Pi。我可以訪問我的個人路由器,所以一切都在我的網路中執行,但我的路由器插入了一個更大的網路,出於明顯的安全原因該網路被鎖定,因此我無法直接訪問我的路由器/Pi。
我有一個通過 Namecheap 的域,它允許我使用動態 DNS,並且我讓 DDNS 與我的 Pi 一起使用
inadyn
(在子域上設置)。我還有一個執行 Ubuntu Server 14.10 的 VPS,它使用該域。通過 Internet 連接到我的 Pi 的最佳方式是什麼?我想訪問所有埠以及其他正常的埠。我開始在 VPS 上配置 OpenVPN,但我在這裡停下來問這個問題。有沒有辦法通過我的 VPS 的子域來隧道我的 Pi 連接並使用該子域訪問 Pi(再次,允許訪問我的埠,例如 pi.website.com:22 用於 SSH 或其他),或者是否有不同的/更好的方法來做到這一點?
您需要設置從伺服器到 Raspberry Pi 的**遠端埠轉發。**以下只是對這意味著什麼的簡要說明。1
遠端埠轉發
現在是本教程的第二部分,即遠端埠轉發。這再次最好用一個例子來解釋。
假設您正在本地機器上開發 Rails 應用程序,並且想將它展示給朋友。不幸的是,您的 ISP 沒有為您提供公共 IP 地址,因此無法通過 Internet 直接連接到您的電腦。
有時這可以通過在路由器上配置 NAT(網路地址轉換)來解決,但這並不總是有效,它需要您更改路由器上的配置,這並不總是可取的。當您在網路上沒有管理員訪問權限時,此解決方案也不起作用。
要解決此問題,您需要擁有另一台可公開訪問並具有 SSH 訪問權限的電腦。它可以是 Internet 上的任何伺服器,只要您可以連接到它。我們將告訴 SSH 創建一個隧道,在伺服器上打開一個新埠,並將其連接到您機器上的本地埠。
您還可以查看 MOSH, 2,它旨在克服在 IP 經常更改且設備本身沒有公共地址的移動網路上連接設備的困難。我個人沒有任何使用它的經驗。
假設您現在可以將來自伺服器上特定埠的流量轉發到您的 Raspberry Pi 盒子,然後您可以配置一個子域以將流量重定向到正在轉發的埠。例如,如果您將埠 8888 上的伺服器流量轉發到您的 Raspberry Pi,您可以設置類似這樣的內容。3
NameVirtualHost *:80 <VirtualHost *> ServerAdmin me@mydomain.com ServerName dev.mydomain.com ProxyPreserveHost On # setup the proxy <Proxy *> Order allow,deny Allow from all </Proxy> ProxyPass / http://localhost:8888/ ProxyPassReverse / http://localhost:8888/ </VirtualHost>
通常你可以設置一個 A 記錄來將該子域指向你的 Raspberry Pi 的 IP,但是因為這不允許你遠端 ssh,我認為上面的例子是你最好的選擇。