題:
如何在家庭網絡外使用SSH
xxmbabanexx
2013-04-03 04:53:30 UTC
view on stackexchange narkive permalink

我最近在Raspberry Pi上設置了SSH。事情一直在進行,特別是因為我可以使用 Server Auditor應用程序通過iPhone控制計算機。可悲的是,這只能通過本地網絡工作。

外出時如何使SSH正常工作? (最好與該應用一起使用。)

您可以從路由器轉發端口嗎?
我很可能會使用@SteveIrwin,但是由於我不是網絡專家,所以我希望使用一種簡單的解決方案,例如[Port Map](http://www.codingmonkeys.de/portmap/)。其實...如果我與Pi共享Mac的互聯網,我是否可以共享轉發的端口?
設置端口轉發至少與使用端口映射一樣容易。您需要告訴我們更多有關如何設置局域網的信息
最好的選擇是安裝Weaved服務(www.weaved.com),然後完成它。您將在互聯網上找到的所有其他教程都將帶您走上一條令人沮喪的道路。
對於建議使用socketxp的帖子,請使用以下內容在RPIcurl -O中下載socketxp:https://portal.socketxp.com/download/arm/socketxp && chmod + wx socketxp && sudo mv socketxp / usr / local / bin而不是linux文件。
在Internet上查看Jumphost的以下信息:https://superuser.com/questions/277218/ssh-access-to-office-host-behind-nat-router/277220#277220
這實際上不是一個Raspberry Pi問題,而是一個Linux問題,因為這樣做與其他linux沒什麼不同。
這是一篇很棒的文章,認為這是一種遠程訪問樹莓派的好方法https://tunnelin.com/ssh-into-raspberry-pi-from-anywhere-in-the-world
九 答案:
SteveIrwin
2013-04-04 00:46:33 UTC
view on stackexchange narkive permalink

這是我在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。您可以選擇子域中的任何可用域。單擊檢查可用性,然後添加

dnsdynamic screenshot

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。

非常感謝!當我返回埃克塞特回來時,我會嘗試一下!
+1不錯的答案,但是,您真的需要在`/ etc / rc.local`中使用`sudo`嗎,不是已經以root身份運行嗎?
這樣就完全搞砸了我的Ngrok和Weaveed配置。現在我根本無法連接!
phalt
2013-04-03 13:55:39 UTC
view on stackexchange narkive permalink

首先,您需要設置端口轉發。每個路由器都略有不同,因此您必須查找路由器的詳細信息。
通用端口轉發方法指南適用於大多數路由器,但我想建議為您的實際路由器型號找到指南。

設置一個值得紀念的端口以鏈接到您的樹莓派,例如23456之類。注意不要覆蓋通用端口號

最後,使用ssh執行以下操作:

  $ ssh -p 23456 user @ IP  

其中:

為什麼不能使用端口22而不是自定義23456?
您可以使用@IgorGanapolsky來做到這一點,但是1)如果您想在家外通過SSH連接到另一台計算機,則會發生衝突; 2)由於許多“黑客”試圖通過端口22登錄,因此風險更高因此通常建議在服務器上將其關閉
Ganesh Velrajan
2019-02-21 20:29:14 UTC
view on stackexchange narkive permalink

從家庭網絡外部(意味著從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的用戶名/密碼

Lenne
2019-10-27 02:21:00 UTC
view on stackexchange narkive permalink

這個問題很古老,隨著時間的流逝,獲得公共可訪問的IPv4地址的機會越來越少。您很可能在CGNAT後面,這意味著您與ISP的其他客戶共享單個公用IPv4。因此,不可能將端口轉發到您的PI或其他任何東西。

如果具有IPv6,則可以為您的PI提供一個靜態地址,並允許在路由器上對其進行訪問。現在,許多移動提供商都將IPv6提供給電話。舊的“基於陸地”的ISP(光纖,DSL,同軸電纜等)經常拖延腳步。在雲中某個地方使用公共IPv4,並建立從PI到VPS的SSH隧道。

Arne
2013-04-03 18:58:02 UTC
view on stackexchange narkive permalink

在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主機 

希望這會有所幫助。

No-Ip具有DUC(動態更新客戶端),這將確保您的IP地址不變。
David Bielen
2013-11-29 02:29:21 UTC
view on stackexchange narkive permalink

除了史蒂夫·歐文的答案:

步驟1:

如果您通過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  

步驟2:

更改上述內容後,您需要重新啟動網絡

  sudo / etc / init .d /網絡重啟 
我還在靜態塊前面添加了兩行,auto wlan0allow-hotplug wlan0我在這篇文章中找到了它http://raspberrypi.stackexchange.com/a/10320/10148 。
由於Raspbian的網絡配置和初始化系統發生了變化,因此該答案應被視為過時的。
user17925
2014-07-10 05:23:32 UTC
view on stackexchange narkive permalink

此外,某些路由器的確對某些動態DNS服務提供了內置支持,您可以在路由器中啟用此選項(如果存在),以避免在PI上安裝客戶端(並節省一些開銷)。它)。

Oliver
2020-01-15 03:35:11 UTC
view on stackexchange narkive permalink

因此,您在防火牆(路由器)後面有一個ssh服務器(您的Raspberry PI),並且您想從任何地方連接它。假設您的ssh服務器已正確設置,即在Raspberry上運行'ssh username @ localhost date'將顯示當前日期/時間。

您必須解決兩個問題:

  • 您的路由器必須將固定端口轉發到樹莓ssh端口(通常為22)。
  • 您必須知道您的路由器的公共IP地址(通常在路由器重新連接時更改,並且在24小時內最多更改一次)。

端口轉發& DynDNS

解決方案存在(與

如果設置正確,則可以通過以下方式連接您的rasbperry pi:

  ssh username @ [yourIP] -p [port]#或使用dyndns ssh username@myname.dyndns.org -p [port]  

使用sshhub.de

另一種非常方便的解決方案(到目前為止尚未提及)是 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  
您好,歡迎來到Raspberry Pi!請進行[遊覽](http://raspberrypi.stackexchange.com/tour)並訪問[幫助中心](http://raspberrypi.stackexchange.com/help)以了解此處的工作方式。感謝您的貢獻,但請注意,我們請您[在您的答案中公開您的隸屬關係](https://raspberrypi.stackexchange.com/help/behavior)。 (我假設您是推薦軟件的作者。)
感謝您指出正確的方向。我是作者。我當然想為尋求解決方案的人們提供有價值的答案。我希望自己的表現和sshhub一樣好。
Rebroad
2020-01-17 22:23:15 UTC
view on stackexchange narkive permalink

您可以使用VPN啟用對pi的傳入訪問。 OpenVPN是一種解決方案,它要求您有一台可從Internet(傳入端口)訪問的計算機。但是,只要您有一台計算機可訪問,其他計算機就不必成為OpenVPN服務器的客戶端。

另一種選擇是使用ZeroTier這樣的服務,該服務提供用於創建VPN的集中式服務器,因此您無需運行自己的服務器。這也是免費的。

另一個非常好的選擇是使用[wireguard](https://wiki.debian.org/Wireguard)。


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...