私がやりたいことは活性化することです。山いちご、顧客サイトに物理的に配置され、持つ以下によるインターネットアクセス動的IP、野生でSSHコマンドを受信クライアントルーターとファイアウォールを操作する必要はありません。。このネットワークではインバウンド接続は許可されず、顧客サイトのインターネットアドレスは動的です。
編集する: この問題に対する解決策を知りたい場合は、次の回答をご覧ください。ケビン・キンジェイそしてフロリンゴダル、または質問の最後までスクロールして、非標準のSSHポート22で動作するようにする方法を学びます。
私は提案された内容を調べて理解しようとしました。Unix Stack ExchangeからSSH経由でprivate-ipへしかし、私はそのポイントを本当に理解していません。
話から始めたいです。ラップトップ、顧客へVPSサーバー、VPSサーバーが次に接続できるようにします。山いちごSSH。だから:
( firewall access allow in+out )
| => VPS Server \ ( firewall access allow out only )
| | => Raspberry
MY PC /
これはケースシナリオ指定されたIPアドレス、ポート、および名前で構成します。
MY PC
name: [email protected]
Client VPS Server
name: remote.null.tld
IP Address: 98.76.54.32
SSH Port: 9876
Raspberry
model: Zero W
name: [email protected]
IP Address: dynamic IP ( based on Internet Provider )
SSH Port: 6789
Raspberry's iptables: empty
Router's Firewall Restrictions: allow only out
Internet stability: very low
Raspberryの外部IPはインターネットプロバイダによって割り当てられ、ルータの再起動によって変更される可能性があります。完全に確信できる方法はありません。
クライアントネットワークのインターネットアクセスは本当に不安定です。ラジオリンクとかそうです。それにもかかわらず、インターネット接続の帯域幅は非常に不規則です。
さらに、顧客のルーターは怠惰なためではなく、顧客のIT部門が課す制限のために操作することはできません。
クライアントのVPSへのSSHアクセス権があり、ここに任意のソフトウェアをインストールできます。
編集する:トラブルシューティング
私の設定では、ポートは非標準です。したがって、解決策は次のとおりです。
ラズベリーの場合:
# login to [email protected] is done via private/public key with no passwords
ssh -p 9876 -f -N -T -R 55555:localhost:6789 [email protected]
ラズベリークローンタブから:
# A re-connect is performed at every 10th minute of every hour to prevent accidental tunnel breakdowns.
10 * * * * ps -ef | grep 'ssh -p 9876 -f -N -T -R' | grep -v grep | awk '{print $2}' | xargs -r kill -9 && sleep 30s && ssh -p 9876 -f -N -T -R 55555:localhost:6789 [email protected] >/dev/null 2>&1
ブリッジVPSRemotenull.tld
ssh -p 55555 raspberry_username@localhost
または、VPSのSSH設定を変更して、よりエレガントなソリューションを提供してください。
Host tunnelToRemoteRaspberry
Hostname localhost
User raspberry_username
Port 55555
答え1
私はremote
VPSとRaspberry Pipi
のユーザー名を想定しています。
- VPSで無料ポートを選択します。 65000未満の任意の5桁の値が機能します。
Raspberry Piでは、以下を実行します。
ssh -R PORT:localhost:22 remote@vps
VPS では、次のコマンドを使用して Raspberry に接続できます。
ssh -p PORT pi@localhost
PORTを手順1で選択したポートに置き換えます。
ステップ2では、VPSのPORTでRaspberryのSSHサーバーがリッスンするRaspberryのポート22まで、リバーストンネルを作成します。ステップ3では、VPSのポートに接続し、Raspberryのポート22に転送します。
その後、VPSの~/.ssh/configで接続を設定できます。たとえば、次のようになります。
Host raspberryTunnel
Hostname localhost
User pi
Port PORT
安定して動作する場合は、Raspberryの単一のSSH接続をautosshに置き換えることができます。これにより、接続が中断されると自動的に接続が再作成されます。
autossh -R PORT:localhost:22 remote@vps
答え2
これは可能です。使用「リバースポート転送」。接続されていることを確認するには、cronjobを設定する必要があるかもしれません。それ以外の場合は、次のコマンドを実行します。
ssh -f -N -T -R 2210:localhost:22 [email protected]
"example.com"アクセス可能なファームウェアの外部にある一部のサーバー。 RPiのポート22をRPiのポート2210に転送しますexample.com
。その後、SSHを介してexample.comにアクセスし、次のことができます。
ssh RaspberryUser@localhost -p 2210
RPiボックスに接続します。
答え3
今何してるの?要求どおりに正確に不可能:
このネットワークではインバウンド接続は許可されません。
ただし、簡単に次のことができます。
- Piにラップトップへのアウトバウンド接続を作成させます。リバースSSHの使用あなたはスケジュール
ssh
ノートパソコンからVPSサーバーへ、ssh
VPSサーバーからPiへ
答え4
Piファイアウォールが着信接続を許可しない場合、接続は確立できません。唯一の方法は、確立された接続を使用してファイアウォールを通過することです。