VirtualBoxポート転送ガイド、このサイトと他のサイトで同様の質問を読みましたが、解決策が見つかりませんでした。
ゲストOS(Ubuntu)でUFWが有効になっていて、ポート80と22が開いている。 HostからubuntuにSSHで接続し、Host BrowserからUbuntuのサイトにアクセスできます。
ゲストでは、Natおよびhostonly(vboxnet3)アダプターをセットアップしました。また、ルーターポート80(192.168.1.90)を開いたゲストIPは192.168.70.10
したがって、ゲスト設定> Nat>ポート転送で私は入れました:
TCP Host-ip:192.168.1.90 Host-port:80 guest-ip:192.168.70.10 guestost-port:80
ただし、この設定は機能しません。あなたが私を正しい道に案内してくれれば幸いです。
Williamが述べたように、linux/unix OSは、ルートとして実行されない限り、1024未満のポートでプロセスを待機させません。 rootとしてVirtualBoxを実行することもできますが、そうすることについての悲惨な警告を読んだことがあります。恐ろしく安全ではありません。
代わりに、ポート80でリッスンするようにホストシステムでApache2を設定します(すでに設定されているはずです)が、ホストマシンでWebサイトを提供する代わりに、トラフィックをより高いポート(8080など)にプロキシします。ザ・ホスト。
次に、VirtualBoxでその上位ポートをゲストOSポート80に転送します。
Apacheのセットアップは次のようになります。
HTTPプロキシモジュールをインストールする
a2enmod proxy_http
/etc/Apache2/ports.conf
にListen 80
ディレクティブが含まれていることを確認してください
/etc/Apache2/sites-available
に別のサイトを追加するか、デフォルトのサイトを変更します(またはports.conf
でこれを平手打ちします)
<VirtualHost *:80> ProxyPreserveHost On ProxyRequests Off ProxyPass/http:// localhost:8080/ ProxyPassReverse/http:/ /localhost:8080/ </VirtualHost>
apacheをバウンス
service Apache2 restart
VirtualBoxのセットアップはHost port: 8080, guest port: 80
になります。
トラフィックが行きます:
client --> Host:80 --> Apache --> Host:8080 ---> vbox NAT ----> guest:80
これは、Williamのsshトンネルに似ていますが、ホストを再起動するたびに手動でパスワードを再入力する必要はありません。
RootユーザーとしてVirtualBoxを実行することに抵抗がある場合に機能する別の方法を次に示します。 SSHを使用して、ホストポート80から制限のないポートへのポート転送を設定できます(次の例では、ポート8080を使用しています)。これは、次にゲストポート80に転送されます。複雑ですが、機能します。
System Preferences -> Internet & Wireless -> Sharing
とRemote Login
がチェックされています。ホストのrootになります
$ Sudo su -
SSHを使用してホストポート80をホストポート8080に転送します(バインドアドレス\*
は、ポートをすべてのインターフェースで使用可能にします)。
# ssh yourusername@localhost -L \*:80::8080
ユーザー名に使用する資格情報を使用してログインするように求められることに注意してください。そのため、おそらくパスワードを求められ、成功すると実際にログインします。
これで、ホストマシンのポート80にアクセスできるようになり、ホストマシンのポート8080、つまりゲストOSのポート80にアクセスした場合と同じサービスが表示されます。
ネットワーク上の他のユーザーがそのマシンのポート80にアクセスできないようにしたいが、それでもホストシステムのブラウザーからアクセスできるようにしたい場合は、ポートをlocalhost
にバインドします。
# ssh yourusername@localhost -L localhost:80::8080
によると http://www.virtualbox.org/manual/ch06.html#natforward
1024未満のホストポートの転送は不可能:
Unixベースのホスト(Linux、Solaris、Mac OS Xなど)では、rootで実行されていないアプリケーションから1024未満のポートにバインドすることはできません。その結果、そのようなポート転送を構成しようとすると、VMは起動を拒否します。
VirtualBoxをrootとして実行することは可能です。これにより、1024未満のホストポートを転送できるため、VirtualBoxでこれを行うことを確信している場合は、rootになり、VirtualBoxを次のように実行できます。
$ Sudo su -
# VirtualBox