最近、Raspberry PiでSSHをセットアップしました。特にServer Auditorアプリを使用して、iPhoneからコンピューターを制御できるようになってから、泳いでいます。残念ながら、これはローカルネットワークを介してのみ機能します。
外出中にSSHを機能させるにはどうすればよいですか?(できればアプリで動作します。)
最近、Raspberry PiでSSHをセットアップしました。特にServer Auditorアプリを使用して、iPhoneからコンピューターを制御できるようになってから、泳いでいます。残念ながら、これはローカルネットワークを介してのみ機能します。
外出中にSSHを機能させるにはどうすればよいですか?(できればアプリで動作します。)
回答:
ここに、私が(debianで)使用した手順を示します。
1. Piの静的IPを設定します。
コマンドを使用してインターフェイスファイルを開きます
sudo nano /etc/network/interfaces
b。interfacesファイルを次のように変更します(いくつかの行を除外できるかどうかはわかりません)。
auto lo
iface lo inet loopback
iface eth0 inet static
address 192.168.1.2 #static ip you want for the pi
netmask 255.255.255.0
gateway 192.168.1.1 # the ip address of the router
c.Check IPが使用して変更された場合のifconfigコマンドを
2.動的DNSのセットアップ
ほとんどの場合、ISPによって割り当てられたIPアドレスは動的であるため、IPアドレスの変更を解決する方法が必要です。これを実現するには、dnsdynamicおよびddclientソフトウェアを使用します。どちらも自由に使用できます。
持つアカウントのa.Signアップdnsdynamic
b.Add list.Youから新しいドメインと名前を選択し、ドメインが上subdomain.Clickのあなたの選択で利用可能なドメインのいずれかを選択することができ、チェック在庫状況と、その後に追加します
3. Piでのddclientの設定
a。コマンドを使用してddclientをインストールする
sudo apt-get install ddclient
b。次のコマンドを使用してddclientの構成ファイルを開き、次の行を追加します。
sudo nano /etc/ddclient.conf
ファイルを次のように変更します。
# /etc/ddclient.conf
daemon=600
timeout=10
ssl=yes
protocol=dyndns2
use=web, web=myip.dnsdynamic.com
server=www.dnsdynamic.org
login=x@gmail.com #userid for dnsdynamic.com
password='xxxx' #password for the same put inside quotes
x.dnsdynamic.com #the domain name you created
ファイルを保存します。
d。リブート時にddclientサービスが自動的に開始されるようにしたいので、次のようにします。
sudo nano /etc/rc.local
exit 0(最後の行)の前に次のコマンドを追加します
sudo /usr/sbin/ddclient -daemon 600 -syslog
ファイルを保存します。ddclientを起動するには、piを再起動するか、プロンプトで上記のコマンドを実行します。必要に応じて、現在のIPアドレスを変更してドメイン名を更新します。
4.ポート転送
a。ルーターのモデルを見つけます。
b.portforward.comに移動します
c。ルーターのブランドとモデルを入力して、転送ポートに関する詳細なガイドを見つけます。
d。ルーターのブランドとモデルを選択した後、リダイレクトされたページからデフォルトガイドをクリックします。
e。静的IPテキストボックスに、ステップ1で指定したPiの静的IPを入力します。
f。手順に従い、ポート22を転送します。ソースポートは22である必要があり、宛先ポートは何でも構いません。港。
チュートリアルに従っている場合は、IPアドレスをドメイン名に置き換えて、どこからでもpiにログインします。例:pi@hometorrent.dnsdynamic.com:22を使用してpiにsshします。
sudo
では/etc/rc.local
、すでにrootとして実行しているということではないでしょうか?
まず、ポート転送を設定します。各ルーターはわずかに異なるため、ルーターの詳細を調べる必要があります。ほとんどのルーターで機能
する一般的なポート転送のハウツーガイドがありますが、実際のルーターモデルのガイドを見つけることをお勧めします。
23456などのように、覚えやすいポートを設定してラズベリーパイにリンクします。一般的なポート番号を上書きしないように注意してください。
最後に、sshを使用して以下を実行します。
$ ssh -p 23456 user@IP
どこ:
-p
コマンドは、sshにトンネルを試行するポートを指示します自宅のラップトップまたはRaspberryPiにはローカルIPアドレス(10.xxx範囲または192.168.xxのみ)があるため、ホームネットワークの外部(つまり、インターネットから)からRaspberryPi(またはラップトップ/サーバー)にアクセスするのは簡単な作業ではありません範囲)。インターネットから見えるパブリックIPアドレスはありません。
あなたの質問に対する簡単な答えは、ホームネットワークの外部からRaspberryPiへのSSHへの安全なパブリックトンネルエンドポイントを提供するSocketXPのような無料のオンラインサービスを使用することです。
SocketXPは、外部ネットワークから自宅のRaspberryPiにアクセスするためのシンプルで安全で簡単な方法を提供します。SocketXPでは、WiFiルーターの設定をハッキングする必要はありません。すぐに使用できます。RaspberryPiを外部からSSHにセットアップする方法を知るには、SocketXPを使用してRaspberryPiにSSHでリモート接続する方法に関するこのブログを読んでください。
SocketXPのセットアップ方法:
ステップ1:次のコマンドを使用して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"
ステップ3:パブリックトンネルエンドポイントを取得して、インターネットからRaspberryPiにアクセスします。
$ socketxp -connect tcp://localhost:22
Tunnel Access -> tunnel.socketxp.com:35277
ステップ4:次のコマンドを使用して、インターネットからRaspberryPiにSSH接続します。
$ ssh raspberry-username@tunnel.socketxp.com -p 35277
ここで、「raspberry-username」は、RaspberryPiへのSSHログインに使用するユーザー名/パスワードです。
時間が経つにつれて、この質問は古くなり、パブリックにアクセス可能なIPv4アドレスを取得する可能性が少なくなります。ほとんどの場合、CGNATの背後にいます。つまり、単一のパブリックIPv4をISPの他の顧客と共有しています。そのため、PIや他の何かにポートフォワードすることはできません。
IPv6を使用している場合は、PIに静的アドレスを付与し、ルーターへのアクセスを許可できます。現在、多くのモバイルプロバイダーが電話にIPv6を提供しています。古い「陸上」のISP(ファイバー、DSL、同軸など)はしばしば足を引きずっています。
また、クラウドのどこかにパブリックIPv4を備えた安価なVPS(仮想プライベートサーバー)を取得し、PIからVPSへのSSHトンネルを作成することもできます。
phaltの答えに加えて、No IPなどの動的DNSサービスの1つをチェックアウトする必要があります。静的ホスト名でホームネットワークにアクセスできますが、DSLまたはケーブルプロバイダーが切断するため、IPアドレスは毎日変更される場合があります。彼らはまた、素敵でき始めるもそれに応じてルーターをセットアップを紹介ページを、。
inadyn
IPが変更されたときに、Raspberry Piにパッケージをインストールして、No-IP DNSエントリを更新することができます。これを実行するには、次を実行します。
sudo apt-get install inadyn
inadynのREADMEから、このサンプルコールを受け取りました。
inadyn --dyndns_system default@no-ip.com -u USER-p PASS -a HOST
お役に立てれば。
irwinの答えを追加する追加:
wlanを介して接続する場合は、次を使用します。
iface wlan0 inet static
wpa-ssid "xxx" #<=your ssid
wpa-psk "yyy" #<=your pw
address 192.168.1.xxx #<=preferred static ip (xxx<255)
netmask 255.255.255.0
gateway 192.168.1.1 #<=router's ip
上記を変更した後、再起動する必要がありますnetworking
:
sudo /etc/init.d/networking restart
したがって、ファイアウォール(ルーター)の背後にsshサーバー(Raspberry PI)があり、どこからでも接続したいと考えています。sshサーバーが適切にセットアップされていると仮定しましょう。つまり、Raspberryで 'ssh username @ localhost date'を実行すると、現在の日付/時刻が表示されます。
次の2つの問題を解決する必要があります。
ソリューションが存在します(他の人が指摘したように):
正しく設定されていれば、rasbperry piを次の方法で接続できます。
ssh username@[yourIP] -p [port]
# or using dyndns
ssh username@myname.dyndns.org -p [port]
これまで言及されていない別の非常に便利なソリューションは、SSHUub(disclamer、私は著者です)です。ssh独自の転送を使用して、どこからでもRasperry PIにアクセスします。信頼性が高く、無料で、セットアップが非常に簡単です。一度登録してください:
ssh info@sshhub.de register
Raspberry PIで実行します。
while true; do ssh [username]@sshhub.de -R 22:localhost:22 -N -o ServerAliveInterval=10; sleep 10; done
...以上です!Raspberry Piはどこからでも接続できます:
ssh -J [username]@sshhub.de localhost
VPNを使用して、piへの着信アクセスを有効にできます。OpenVPNは、インターネット(着信ポート)からアクセス可能なコンピューターが必要なソリューションの1つです。ただし、1台のコンピューターにアクセスできる限り、他のコンピューターはOpenVPNサーバーのクライアントになることができるため、その必要はありません。
もう1つのオプションは、ZeroTierなどのサービスを使用することです。ZeroTierは、VPNを作成するための集中サーバーを提供するため、独自のサーバーを実行する必要はありません。これも無料です。