2つのネットワークに3つのシステムが分散しています。
- 1 つの NIC が付いているコンピュータ 1: IP アドレス 192.168.10.22
- 1 つの NIC を搭載したコンピュータ 2: IP アドレス 192.168.10.30 および 192.168.11.30
- 1つのNICが付いているコンピュータ3: IPアドレス 192.168.11.33
コンピュータ3からコンピュータ1へのリバースSSHトンネルが必要です。コンピュータ2からコンピュータ3まではポート2222を使用し、コンピュータ1からコンピュータ2まではポート22を使用する必要があります。私の場合、何らかの理由で動作しません。私が試したことは次のとおりです。
コンピュータ2から:
$sudo sysctl net.ipv4.ip_forward
net.ipv4.ip_forward=1
# External machine connects to 192.168.11.30:22, forwarded to 192.168.10.30:2222
$sudo iptables -t nat -A PREROUTING -p tcp -d 192.168.11.30 --dport 22 -j DNAT --to-destination 192.168.10.30:2222
$sudo iptables -t nat -A POSTROUTING -p tcp -d 192.168.10.30 --dport 2222 -j SNAT --to-source 192.168.11.30
# Internal machine2 connects to 192.168.10.22:2222, forwarded to 192.168.11.30:22
$sudo iptables -t nat -A PREROUTING -p tcp -d 192.168.10.30 --dport 2222 -j DNAT --to-destination 192.168.11.30:22
$sudo iptables -t nat -A POSTROUTING -p tcp -d 192.168.11.30 --dport 22 -j SNAT --to-source 192.168.10.30
#リバースSSH開始:
$ssh -N -R 2222:192.168.10.30:22 [email protected]
Warning: remote port forwarding failed for listen port 2222
コンピュータ3から:
$ssh [email protected]
ssh connect to host 192.168.11.30 port 22: Connection refused.
なぜ警告が表示されますか?接続できない問題を解決するには?