Piでインターネット経由でSSHをセットアップする


16

これは簡単な質問かもしれませんが、いくつかのリソースから矛盾する情報を読んだので(インターネット上の矛盾とは何ですか?)、私がするべきことをすべてやったかどうかを知りたかったのです。

そこで、インターネット経由でアクセスできるように、RasPiへのSSH接続をセットアップしたいと思います。

  1. raspi-configツールを使用して、Raspbianを実行しているPiでSSHをアクティブにすることから始めました。
  2. 次に、動的IPアドレスを指すホスト名を持つように、no-ip.comクライアントをPiにインストールしました。
  3. ラズベリーでLAN IPを検索しました ifconfig
  4. 最後に、ルーターの構成ユーティリティのポート転送で、TCPとUDPの両方のポート22のpiのローカルIPへの転送を有効にしました。

この後、インターネット経由でpiにSSHで接続することはできません。ローカルIPを使用してLAN内に接続しようとすると機能しますが、ホスト名またはインターネットIPアドレスは使用しません。また、別の場所から接続しようとしましたが、何も機能しません。

私の質問:手順がありませんか?すべてを機能させるために、piで編集する必要がある設定ファイルはありますか?


の出力をiptables -LPiに含めてください。
deed02392 14

1
この問題はまだ解決しましたか?もしそうなら、それを解決した答えをマークするか、あなたがしたことを示す自己回答を作成し、それを答えとしてマークしてください。サイトのQ:A比率を上げようとしているので、これは素晴らしいことです。この質問は、@ Zetaが触れないまましばらくの間残されたようです。ありがとう!
RPiAwesomeness

no-ip.comを使用して、webとsshのためにインターネット経由でPiに接続しているので、ルーターまたはISPが着信トラフィックをブロックしている可能性がありますか?
アラステアモンゴメリー

これは、NATループバックをサポートしないルーターに非常によく似ています。
フレークシェイク

私はこのリンクを見つけました:raspberryanywhere.comおそらくそれはいくつかの助けになるかもしれません。私は数週間からこのサービスを使用してきましたが、とてもうまくいきました!このリンクは、どこにいてもラズベリーボードにアクセスするようなシンプルなソフトウェアチームビューアーを提供します。さらに、通常のSSHクライアントを使用できます。SSHまたはHTTP経由でボードに接続するための仮想アドレスを提供するだけです。確かに試してみる価値があります!
ステファノステファノ

回答:


12

インターネット経由でSSH経由でRaspberry Piに接続するだけの場合は、おそらくngrok.comが最も快適な方法で問題に適合する可能性があります。

何らかのリバーストンネルを使用してポートを転送し、ファイアウォールやISPの制限をバイパスすることもできます。TCPトラフィックを転送するには、サイトに(無料で)登録する必要があります。

私はこのプロジェクトとは一切関係ありません。私はまったく同じアイデアを達成するためにそれを使用しました(私の場合はOpenVPN-Serverを転送します)が、これまでのところ何の問題も発生しませんでした。


私もこの問題を抱えており、ngrokよりもさらに簡単にserveo.netを使用しました。完全に無料で、0 configはカスタムエイリアスを使用して22ポートコマンドに貼り付けてから接続します。
マダバジェイ

3

問題の一部は、PiがルーターのDHCPからの動的IPを使用しているため、PiのローカルIPが変更されたため、設定したポート転送が機能しないことです。

これを修正する最も簡単な方法(少なくとも私が見たもの)は、静的IPをセットアップすることです。構成ファイルをいじるのを気にしない限り、比較的簡単です。ここここでもう少し詳しく読むことができます。また、以下の簡単な方法も説明します。

  1. ホームネットワーク内のSSHまたは画面を介してPiに接続します。

  2. ペンと紙を手に取り、情報を書き留めます。

  3. コマンドを実行しますifconfig。既にそれを実行していることは知っていますが、今回はローカルIPについてもう少し情報を収集する必要があります。これにより、ルーター情報が表示されます。必要なビットはeth0(イーサネット接続)の後にあります。。。。

    eth0      Link encap:Ethernet  HWaddr b8:27:eb:b3:fc:2c
              inet addr:192.168.1.81  Bcast:192.168.1.255  Mask:255.255.255.0
    

    次の情報を書き留めてください...

    inet addr – 192.168.1.81 (Pi's Current IP Address)
    Bcast –  192.168.1.255 (The Broadcast IP Range)
    Mask –  255.255.255.0 (Subnet Mask Address)
    

    明らかに、あなたの情報はこのチュートリアルとは異なるので、Piで実行されるコマンドからの情報を使用するようにしてくださいifconfig

  4. netstat -nrまたはを実行しroute -nます。必要なもの:

    「ゲートウェイ」アドレス-192.168.1.254
    「宛先」アドレス-192.168.1.0

  5. これで情報が得られたので、interfacesファイルを編集して動的IPを設定できます。を実行しますsudo nano /etc/network/interfaces。次のようになります。

    インターフェースファイル

  6. 行を変更します。

    iface eth0 inet dhcp
    

    iface eth0 inet static
    

    次に、この行のすぐ下に次を入力します(注意してください。上記で収集した独自のアドレスが必要です)。。。。

    address 192.168.1.81
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.254
    

    基本的に、アドレス部分はIPにしたいものです。IPの競合の可能性が少ないため、値が大きいほど優れています。netmask –以前に書き留めた「マスク」アドレス。

    通信網 –ルーターのIPアドレス。これは、以前に検出された「宛先」アドレスです。ルーターからこれを取得することもできます。

    ブロードキャスト –以前に書き留めた「Bcast」アドレス。

    ゲートウェイ –これは以前に見つけた「ゲートウェイ」アドレスです。

    プレスCtrl+ OのいずれかEnter、またはY、その後Enter。完了したら、Ctrl+ を押しXます。

  7. 実行するsudo rebootと、IPが配置されているはずです!ifconfig再度ログインしてコマンドを再度実行すると、次のようになります。

    空想!

次に、新しい静的IPへのポート転送を設定すると、すべてが機能するはずです!幸運を祈る!


2
ダウン投票した人はその理由を説明できますか?これは完全に有効で実行可能なソリューションだと思います。理由を知りたいので、答えを改善できます。
RPiAwesomeness 14

1
これはローカルネットワークでのみ機能し、外部からは機能しません。OPは、同じネットワークからではなく、インターネット経由でPiに接続する方法を尋ねました。
Chinmay Sarupria

192.168.1.100のようなアドレスはローカルアドレスです。同じローカルアドレスを持つ都市の2つの異なる部分に2つのPiを置くことができます。したがって、もちろん、ネットワークの外部からそれらのいずれにもアクセスすることはできません。
Chinmay Sarupria

RPiに静的IPアドレスを与える場合、DHCPプールから除外する必要があります。そうしないと、ネットワーク内の別のデバイスがそれを取得し、IPの競合が発生する可能性があります。
ドミトリーグリゴリエフ

2

誤って設定されていると思われる唯一のものは、SSHがTCP専用プロトコルであるため、ポート22でUDPトラフィックを転送する必要がないことです。

ルーターがNATループバックをサポートしていないためと思われます。つまり、接続の発信元が内部LANからのものである場合、NATルール(転送ルールなど)は適用されません。すべてのルーターでこの機能がオンになっているわけではありません。したがって、ルーターがNATループバックをサポートしていない場合、no-ip.comドメイン名を使用し、LANから実行する場合、SSHを使用してRPiに接続できません

構成が機能しているかどうかを試すために、何らかのデータ接続(3G、LTEなど)を備えたスマートフォンがあり、その上にsshクライアントがある場合、WiFi接続ではなくデータプランを使用してRPiに接続してみてください。sshクライアントがなく、テザリングが許可されている場合は、ローカルネットワーク用にプラグを抜き、代わりにテザリングリンクを使用して、スマートフォンをコンピューターの1つと一緒に使用します。


0

co.ccなどの無料ドメイン名とfreeDNSを使用してみてください(広範囲のサブドメインも提供)を使用して、ルーターを指すようにしてください。ルーターに動的IPがある場合は、更新スクリプトも入手できると思います。

それが機能しない場合、ポート転送の設定が間違っている可能性がありますか?どんな種類のルーターがありますか?


Try using a free domain name...彼はそれをしました、それがno-ipクライアントです。手動のDNSおよびルーターをいじるよりもはるかに簡単です。
RPiAwesomeness 14

@RPiAwesomeness申し訳ありませんが、それを知りませんでした。
サマディ

問題ない。Stack Exchangeのメンバーであり、サイトをモデレートするという義務を果たしていました。ちょっとした役に立つ批判です。それをあなたへの攻撃として受け取らないでください。私はこのサイトのコンテンツを有益で有益なものにしようとしています。手伝って質問に答えて、参加してみてください、あなたはそれを取得し始めます。:)また、時々チャットにポップします。そのDOの愛にある人々が会社を持っている、そしてそれは、このサイトが役に立つと繁栄であることを示しているといい、関係するユーザーベースを持っています。
RPiAwesomeness

0

私はフィンランドにこのような状況があります:rpiはモバイルwifiルーター、huawei e5776に接続されており、インターネット経由でSSHでrpiに接続したいのですが、これまでのところ成功しておらず、最終的にはインターネットサービスプロバイダーが双方向接続をブロックしていることがわかりますモバイルブロードバンドのお客様。双方向のトラフィックは、ISPによってオープンゲートと呼ばれる追加サービス(料金を支払う必要があります)です。ISPのサイトにアクセスして、そうであるかどうかを確認してください。


0

スラビックスは、Raspberry PiのローカルIPアドレスがされないという問題の可能性を指摘しました。これにより、ルーターのポートが不安定になります。デフォルトでは、Raspberry PiはDHCPを使用するように構成されています。つまり、IPはルーターによって提供されます。このIPもデフォルトでは固定されていません。

この問題の解決策の1つがSlubbixによってすでに示されています。RaspberryPiのIPを修正することです。

私の意見では、これには2つの欠点があります。簡単に管理できるネットワークのIPのグローバルリストがなく、別のネットワークでRaspberry Piを使用できません(IPは既に使用されているか、異なるサブマスクです)。

したがって、次のことを行うことを提案します。固定IPをRaspberry PiのMACアドレスに割り当てるようにルーターを構成します。MACアドレスはコマンドを使用して見つけることができますifconfig


0

Raspberry PiのローカルIPアドレスは、ワイヤレスアダプターを使用して接続しない限り固定されません。これにより、IPアドレスが保持されます。RPIにSSHを使用する場合は、次の手順を使用できます。

端末プロンプトでPiを起動します。次のコマンド「sudo apt-get install xrdp」を入力します。昇格した場合は、パスワードを入力します(デフォルトは「raspberry」です)「Y」と入力してEnterキーを押します。これで、リモートデスクトップ接続に使用するソフトウェアであるPiにxrdpがインストールされます。完了するのを待ちます。Piを再起動します。xrdpが自動的に起動することを確認します。Piがコマンドプロンプトで起動したら、[ok] Starting Remote Desktop Protocol server:xrdp sesmanを探します。これは、xrdpがインストールされ、Piの起動時に自動的に起動することを示しています。最後のステップは、起動画面にも表示されるPiのIPアドレスをメモすることです。以下の私の場合、192.168.1.9です。

2番目のマシンのセットアップ

  1. [スタート]、[すべてのプログラム]、[アクセサリ]、[リモートデスクトップ接続]の順に選択して、リモートデスクトップ接続を起動します。
  2. 上記で書き留めたPiのIPアドレスを入力します。

  3. [接続]をクリックします(この段階でセキュリティ警告が表示される場合があります。[OK]をクリックするだけです。ネットワーク上のPiなので、セキュリティについて心配する必要はありません)。

  4. モジュールをデフォルトのsesman-Xvncのままにして、Piのユーザー名とパスワードを入力します。(変更していない場合、デフォルトはpiとraspberryです)。

  5. [OK]をクリックすると、しばらくすると、Raspberry Piのデスクトップが表示されます。

  6. 終了したら、Piのデスクトップからログアウトします。

ここからこれらのステップを見つけ、彼らは私のために働いた

SSHを使用する別の方法を次に示します。

Raspberry PiへのSSH SSHまたはSSH経由でRaspberry Piにログインし、フルネームを付けます。これにより、別のコンピューターからRaspberry Piへのコマンドラインアクセスが可能になります。世界中のどこからでもRaspberry PiにSSHで接続することは可能ですが、私はそうしますが、この投稿ではローカルネットワークを介したSSHアクセスについてのみ説明します。リモート接続については、今後のブログ投稿で説明します。

これはGUI(グラフィカルユーザーインターフェイス)へのアクセスを許可しませんが、コマンドラインにアクセスできると、通常、必要な作業の95%を実行できます。他の5%はおそらくSSHでできましたが、GUIの快適さに勝てない場合があります。:-)

まず、ログインするRaspberry PiのIPアドレスを知る必要があります。これを見つける方法がわからない場合は、nmapという優れたツールを使用してリモートでこれを行う方法を説明する私のブログ投稿を読んでください。

LinuxまたはApple MacコンピューターからRaspberry PiにSSH接続するには、これは非常に簡単です。次の形式を使用して、コマンドラインにユーザー名とIPアドレスを入力するだけです。

ssh username @ IPaddress

ユーザー名をリモートコンピューターにログインするユーザー名に置き換えてください。IPアドレスは192.168.1.66の形式を取る必要があります

ホストの信頼性を確立できないことを説明するメッセージが表示される場合があり、接続を続行することが確実な場合。このメッセージは、Raspberry Piに初めてSSH接続したときにのみ表示されます。はいと入力します。

次に、パスワードの入力を求められ、接続しようとしているユーザー名のパスワードを入力します。

Windowsの場合、PuTTYと呼ばれる追加のソフトウェアが必要になるため、これを設定するのは少し難しくなります。ただし、一度インストールすると、これは本当に簡単に使用できます。

最初にPuTTY Webサイトwww.putty.orgにアクセスし、ソフトウェアをダウンロードしてインストールします。

インストールしたらPuTTYをロードします

[ホスト名(またはIPアドレス)]に、接続するIPアドレスを入力します。[SSH]ラジオボタンを選択します。[保存されたセッション]の下のボックスに、このコンピューターを識別する名前(Raspberry Piなど)を入力し、[保存]をクリックします。[開く]をクリックすると、SSHセッションが開始されます。

次回、Raspberry PiにSSHで接続する場合は、PuTTYをロードするだけで、保存されたセッションをクリックしてハイライトし、[開く]をクリックします。パスワードを入力すると、求められたら、Raspberry Piにリモートアクセスできます。

ここからこれらの指示を見つけまし


私は、RPIにアクセスする際にどのようにこれらの命令のヘルプを参照するために失敗し、インターネット上で
ドミトリーGrigoryev

0

インターネットで気づいたことの1つは、Webサーバーをポート転送してパブリックIPを使用して接続しようとすると、利用できないと表示されますが、電話または学校のネットワークで接続すると接続できます。また、Googleにアクセスして検索バーに「IP」と入力し、提供されたIPをコピーしてから、Google翻訳に移動してIPを貼り付けることもできます。次に、右側のウィンドウで青いIPアドレスをクリックすると、Webサーバーが正常にポートフォワードされたかどうかが表示されます。


0

デフォルトのSSHポート(22)で着信トラフィックを許可するには、そのポートのすべてのTCPトラフィックを許可するようiptablesに指示できます。

sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT

上記のリストに戻ると、これがiptablesに伝えていることがわかります。

  1. このルールを入力チェーン(-A INPUT)に追加して、着信トラフィックを調べます
  2. TCP(-p tcp)かどうかを確認します。
  3. その場合、入力がSSHポート(--dport ssh)に送られるかどうかを確認します。
  4. その場合、入力を受け入れます(-j ACCEPT)。

うまくいけば、これがあなたのために働くことも、あなたが20から21であるftpポートを追加したいかもしれません、単にsshto 20とを変更してください21


0

この質問に追加の回答が必要かどうかはわかりませんが、非常に簡単です。

  1. OpenSSHをインストールするか、OpenSSHを有効にします raspi-config

  2. 私の場合は192.168.1.1のルーター/ファイアウォールのホームページに移動します

  3. ポート転送または仮想サーバーを探して、次のようなものを追加します。

    外部ポート開始:1234外部ポート終了:1234

    内部ポートの開始と終了22。

    サーバーIPは、私の場合は192.168.1.50のRPiの静的IPです

  4. すべてルーター側で設定したら、GoogleでIPを検索してWAN IPをメモします。

  5. これで、インターネット経由でpiにSSHで接続できるようになります。私の場合、Chromebookとセキュアシェルアドオンを使用しています。ケースpi@mywanipとポート1234にユーザー名を入力します。

基本的に、ステップ3のファイアウォールルールは、WAN IPのポート1234上のすべてのトラフィックを内部LAN IPのポート22に転送します。


-1

この簡単な方法が見つかるまで、インターネット経由でSSHをセットアップするのに苦労しました。

http://raspctl.com

登録して、コマンドをコピーして貼り付けてください。設定ファイルを編集する必要があるかもしれませんが、それだけです。私は今日それをテストし、それは魅力のように機能します。別のSSH Androidアプリでも試してみました。


言及するのを忘れました:ルーターでポート転送を設定してください!
alkopop79

1
参考までに、このプロジェクトは中止されたようです。
ボブストロ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.