何が起こるのか
私は次の設定を持っています:
server <-NAT-> VPS <-> client
リバーストンネルと次の設定で私のサーバーにSSHを設定しました。
- VPSでは
GatewayPorts yes
- サーバーから:
autossh -f -M 57575 -N -R <VPS ip>:9991:localhost:<server ssh port> vps
この設定により、クライアントはssh -p 9991 <server user>@<VPS ip>
自分のサーバーに簡単にログインできます。
なに?
- VPSでは
GatewayPorts yes
その他の設定はSSHケースと同じです。
- サーバーから:
autossh -f -M 57576 -N -R <VPS ip>:9992:localhost:8988 vps
python -m http.server 8988
httpサーバーを起動します。バインドされていることを確認し、0.0.0.0
ローカル コンピューターからアクセスできます。
ただし、経由でウェブサイトにアクセスしようとすると、http://<VPS ip>:9992
ERR_EMPTY_RESPONSEが発生します。
netstatでは、どちらの場合も同じように見えます。 VPSから:
tcp 0 0 0.0.0.0:9992 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:9991 0.0.0.0:* LISTEN -
サーバーから:
tcp 0 0 0.0.0.0:8988 0.0.0.0:* LISTEN 21003/python
tcp 0 0 0.0.0.0:<ssh port> 0.0.0.0:* LISTEN 550/sshd
tcpdump
これは、VPSのポート9992に接続が確立されていますが、ポート8988には何も到着しないことを示していますserver
。FIN
今VPSへの接続を確立してください。
同じSSH状況が動作するのに、なぜこれが機能しないのですか?
答え1
まず、サーバーを起動してからリモートポート転送を有効にする必要があります。その逆は真実ではありません。
なぜそうなのかわかりませんが、問題が解決したようです。