我最近在Raspberry Pi上設置了SSH。事情一直在進行,特別是因為我可以使用 Server Auditor應用程序通過iPhone控制計算機。可悲的是,這只能通過本地網絡工作。
外出時如何使SSH正常工作? (最好與該應用一起使用。)
我最近在Raspberry Pi上設置了SSH。事情一直在進行,特別是因為我可以使用 Server Auditor應用程序通過iPhone控制計算機。可悲的是,這只能通過本地網絡工作。
外出時如何使SSH正常工作? (最好與該應用一起使用。)
這是我在debian上使用過的步驟,這些步驟可能會有用。
1。為Pi設置靜態IP。
a使用命令
sudo nano / etc / network / interfaces
b打開接口文件。將接口文件更改為以下內容(適用於我不確定是否可以排除其中的幾行。)
auto loiface lo inet loopbackiface eth0 inet staticaddress 192.168.1.2 #static ip想要的pinetmask 255.255.255.0gateway 192.168 .1.1#路由器的IP地址
c。使用 ifconfig 命令
2檢查IP是否已更改設置動態DNS
您的ISP分配的IP地址很可能是動態的,因此我們需要一種解決IP地址更改的方法。我使用dnsdynamic和ddclient軟件來實現
a。使用 dnsdynamic
b註冊一個帳戶。添加新域並選擇名稱和多邁從列表中選擇n。您可以選擇子域中的任何可用域。單擊檢查可用性,然後添加
3。在Pi上設置ddclient
a。使用
sudo apt-get install ddclient命令安裝ddclient
b。使用以下命令打開ddclient的配置文件並添加以下行。
sudo nano /etc/ddclient.conf
,然後將文件更改為以下文件。
#/etc/ddclient.confdaemon=600timeout=10ssl=yesprotocol=dyndns2use=web,web = myip.dnsdynamic。 comserver=www.dnsdynamic.orglogin=x@gmail.com#dnsdynamic.compassword ='xxxx'的用戶ID#相同引號內的密碼quotesx.dnsdynamic.com#您創建的域名
並保存文件。
d。我們希望ddclient服務在重新啟動時自動啟動。因此,請執行以下操作。
sudo nano /etc/rc.local
在退出0 (最後一行)之前添加以下命令
sudo / usr / sbin / ddclient -daemon 600 -syslog
保存文件。要啟動ddclient,請重新啟動pi或在提示符下執行上述命令。它將使您的域名更新,並在必要時更改當前IP地址。
4。端口轉發
a。找到路由器的型號。
b。轉到 portforward.com
c。輸入路由器的品牌和型號以查找有關轉發端口的詳細指南。
d。選擇路由器的品牌和型號後,請從重定向頁面中單擊“默認”指南。 / p>
e。在靜態Ip文本框中,輸入您在步驟1中提供的Pi的靜態IP。
f。按照步驟操作,並轉發端口22,源端口必須是22,目標端口可以是任何端口。在切入pi時請記住使用目標端口。為避免混淆,我傾向於使用相同的Source和Destinat離子端口。
如果您正在閱讀本教程,請通過使用域名替換IP地址從任何地方登錄到pi。例如,我使用pi@hometorrent.dnsdynamic.com:22 ssh進入我的pi。
首先,您需要設置端口轉發。每個路由器都略有不同,因此您必須查找路由器的詳細信息。
有通用端口轉發方法指南適用於大多數路由器,但我想建議為您的實際路由器型號找到指南。
設置一個值得紀念的端口以鏈接到您的樹莓派,例如23456之類。注意不要覆蓋通用端口號。
最後,使用ssh執行以下操作:
$ ssh -p 23456 user @ IP
其中:
- p
命令告訴ssh嘗試隧道進入哪個端口從家庭網絡外部(意味著從Internet)訪問RaspberryPi(甚至筆記本電腦/服務器)不是一件容易的事,因為您的家用筆記本電腦或RaspberryPi只有本地IP地址(在10.xxx範圍內或192.168.xx範圍)。它沒有可從Internet看到的公共IP地址。
您的問題的簡單答案是使用免費的在線服務,例如 SocketXP,它提供安全的公共隧道終結點可以從家庭網絡外部通過SSH進入RaspberryPi。
SocketXP提供了一種簡單,安全,簡便的方法,可以從外部網絡訪問家庭RaspberryPi。 SocketXP不需要您破解WiFi路由器中的任何設置。開箱即用。要了解如何從外部將RaspberryPi設置為SSH,請閱讀有關如何使用SocketXP將SSH遠程導入RaspberryPi的博客。
如何設置SocketXP:
Step1 :使用以下命令在RaspberryPi上安裝SocketXP客戶端。
$ curl -O https://portal.socketxp .com / download / linux / socketxp && chmod + wx socketxp && sudo mv socketxp / usr / local / bin
步驟2:將SocketXP客戶端與SocketXP Cloud Service連接使用以下命令。你需要在 https://portal.socketxp.com 註冊,以獲取您的獨特身份驗證令牌。
$ socketxp -register“eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NDk1MTg0MDAsImlkIjoiZ2FuZXNodmVscmFqYW5AZ21ha6K208n0.cB2uYevpH4lWIQGQUJdQ0eiEDqS8OiP_YOiqernnui3rjjadfadsfsfas34”
Step3 :獲取公共隧道終結點以從Internet訪問您的RaspberryPi。
$ socketxp -connect tcp:/ / localhost:22隧道訪問-> tunnel.socketxp.com:35277
Step4 :使用以下命令從Internet SSH進入RaspberryPi。
$ ssh raspberry-username@tunnel.socketxp.com -p 35277
其中“ raspberry-username”是用於SSH登錄到RaspberryPi的用戶名/密碼
這個問題很古老,隨著時間的流逝,獲得公共可訪問的IPv4地址的機會越來越少。您很可能在CGNAT後面,這意味著您與ISP的其他客戶共享單個公用IPv4。因此,不可能將端口轉發到您的PI或其他任何東西。
如果具有IPv6,則可以為您的PI提供一個靜態地址,並允許在路由器上對其進行訪問。現在,許多移動提供商都將IPv6提供給電話。舊的“基於陸地”的ISP(光纖,DSL,同軸電纜等)經常拖延腳步。在雲中某個地方使用公共IPv4,並建立從PI到VPS的SSH隧道。
在phalt的答案之上,您應該簽出動態DNS服務之一,例如 No IP。它們使您可以使用靜態主機名訪問家庭網絡,儘管由於DSL或電纜提供商斷開您的連接,您的IP地址可能每天都會更改。他們也有一個很好的入門頁面,該頁面還向您介紹瞭如何設置路由器。
您可能需要安裝 inadyn code當IP更改時,Raspberry Pi上的>
軟件包可更新您的No-IP DNS條目。您可以通過運行以下命令來做到這一點:
sudo apt-get install inadyn
在inadyn自述文件中,我進行了以下示例調用:
inadyn --dyndns_system default@no-ip.com -u用戶-p通過-a主機
希望這會有所幫助。
除了史蒂夫·歐文的答案:
如果您通過wlan連接,請使用:
iface wlan0 inet staticwpa-ssid “ xxx”#< =您的ssidwpa-psk“ yyy”#< =您的pw地址192.168.1.xxx#< =首選的靜態IP(xxx<255)網絡掩碼255.255.255.0網關192.168.1.1#< =路由器的ip
更改上述內容後,您需要重新啟動網絡
:
sudo / etc / init .d /網絡重啟
此外,某些路由器的確對某些動態DNS服務提供了內置支持,您可以在路由器中啟用此選項(如果存在),以避免在PI上安裝客戶端(並節省一些開銷)。它)。
因此,您在防火牆(路由器)後面有一個ssh服務器(您的Raspberry PI),並且您想從任何地方連接它。假設您的ssh服務器已正確設置,即在Raspberry上運行'ssh username @ localhost date'將顯示當前日期/時間。
您必須解決兩個問題:
解決方案存在(與
如果設置正確,則可以通過以下方式連接您的rasbperry pi:
ssh username @ [yourIP] -p [port]#或使用dyndns ssh username@myname.dyndns.org -p [port]
另一種非常方便的解決方案(到目前為止尚未提及)是 SSHHub(發布者,我是作者)。它使用ssh自己的轉發從任何地方訪問您的Rasperry PI。它可靠,免費且設置非常簡單。註冊一次:
ssh info@sshhub.de註冊
在您的Raspberry PI上運行:
同時為true;做ssh [username] @ sshhub.de -R 22:localhost:22 -N -o ServerAliveInterval = 10;睡10完成
...就這樣!您可以從任何地方連接Raspberry Pi:
ssh -J [username] @ sshhub.de localhost
您可以使用VPN啟用對pi的傳入訪問。 OpenVPN是一種解決方案,它要求您有一台可從Internet(傳入端口)訪問的計算機。但是,只要您有一台計算機可訪問,其他計算機就不必成為OpenVPN服務器的客戶端。
另一種選擇是使用ZeroTier這樣的服務,該服務提供用於創建VPN的集中式服務器,因此您無需運行自己的服務器。這也是免費的。