1. ホーム
  2. vagrant

[解決済み] Vagrantの逆方向ポートフォワーディング?

2022-07-17 12:02:13

質問

ウェブサービスアーキテクチャに取り組んでいます。Vagrantではなく、ネイティブのホストマシン上で実行する必要があるソフトウェアがあります。しかし、私はゲスト上でいくつかのクライアントサービスを実行したいと思います。

Vagrantの config.vm.forwarded_port パラメータは、ホスト上でポートを開き、そのデータをゲストに送ります。しかし、どうすればゲストでポートを開き、そのデータをホストに送ることができるのでしょうか?(これはまだポートフォワーディングですが、逆方向です)。

どのように解決するのですか?

を実行すると vagrant ssh を実行するとき、実際にはこの基礎となるコマンドを使用しています。

ssh -p 2222 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR -o IdentitiesOnly=yes -i ~/.vagrant.d/insecure_private_key [email protected]

SSHでは、ポートを希望する方向に転送するために -R guestport:host:hostport オプションで好きな方向にポートを転送することができます。つまり、もしあなたがポート 12345 に接続し、それを localhost:80 に転送する場合、このコマンドを使用します。

ssh -p 2222 -R 12345:localhost:80 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o LogLevel=ERROR -o IdentitiesOnly=yes -i ~/.vagrant.d/insecure_private_key [email protected]

Eero が正しくコメントしているように、このコマンドを使うこともできます。 vagrant ssh -- -R 12345:localhost:80 というコマンドもあり、これはより簡潔なコマンドで同じ効果をもたらします。