ポート転送なしでNATを使用してネットワーク上のコンピュータにアクセスしたいです。
ポート転送なしのNATの後ろにある「オフ」マシンをRaspberryBと呼びます。このマシンは、ポート22のポート転送によって接続でき、ローカルIPが192.168.1.34のマシン(RaspberryA)のリバーストンネルを作成します。
だから私はRaspberryBでコマンドを起動しました。
ssh -R 43022:localhost:22 userA@addressRaspA
RaspberryAでは、リバーストンネルを介して再接続できます。
ssh userB@localhost -p 43022
効果がある
同じネットワーク上のPCでRaspberryAに接続してからRaspberryBに接続できます(Windowsではパテを使用していますが、それは重要ではないと思います)。
ssh [email protected] <<-- after this i'm inside RaspberryA
ssh userB@localhost -p 43022 <<-- after this i'm inside RaspberryB
今必要なことを達成しました。別のネットワーク上のPCからraspberryBにアクセスします。
しかし、、私はこれを1つの投稿として実行したいと思います... PCで次のコマンドを実行したい場合。
ssh [email protected] -p 43022
thgenマイコンピュータはRaspberryAのポート43022に接続する必要があります。これはRaspberryBのポート22にリダイレクトされるため、単一のコマンドでrapsberryBに接続できる必要があります。
しかし理解する」ネットワークエラー:接続が拒否されました。」
(RaspAで)ポート43022でリッスンするようにsshを設定すると、PCが接続できるため、これはファイアウォールの問題ではないと思います。iptables-S出力
Chain INPUT (policy ACCEPT)
target prot opt source destination
f2b-sshd tcp -- anywhere anywhere multiport dports ssh
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain f2b-sshd (1 references)
target prot opt source destination
RETURN all -- anywhere anywhere
それで、私は何が間違っていましたか? RaspberryAと同じネットワーク上のPCが最後のコマンドでraspberryBに接続できないのはなぜですか?
編集:言及するのを忘れました。 sshも開いてみました。
ssh -R 1.1.1.1:43023:localhost:22 pi@addressRaspA
1.1.1.1 このゲートウェイの作成に正しく使用されているのか、リモートホストがネットワーク上のすべてのPCに接続しようとしているのかはわかりません。それにもかかわらず、「接続が拒否されました」というメッセージが引き続き表示されます。
編集2:ネットワーク上のすべてのPCからraspberryBにアクセスできるようにしたいので、特定のIP用のリモートトンネルを作成することはオプションではありません。ネットワーク外でも動作している場合は、raspberryA ネットワークのルータでポート転送をオンにできます。
答え1
解決済み:私が作成したエラー:
まず、1.1.1.1は「すべてのIP」ではありません。 0.0.0.0 はい。
次に、SSH構成で「GatewayPorts」を有効にする必要があります。
だから:
- /etc/ssh/sshd_configを編集して設定します。
GatewayPorts clientspecified
- 次のコマンドを使用してリバーストンネルを開始します。
ssh -fN -R 0.0.0.0:43022:localhost:22 rasbberryA@addressRaspA