マシン 62: Ubuntu 16.04、インターネットにアクセス可能、インターネット経由でアクセスできます。62 マシンには、VM (Ubuntu) を備えた VirtualBox があります。
VM を「通常の」マシン (IP 要求) のように動作させたいと思います。そのために静的 IP を予約しましたが、通常ホスト マシンに ping するのと同じように (62 ではなく予約済み IP 経由で) ゲスト マシンに ping できるようにホストとゲストのインターフェイスを構成する方法がわかりません。
ReverseProxy はしばらくは機能していましたが、その後、事前にわからないポートを介した Websocket が必要になりました。そこで、次に思いつくのは NAT でしょうか? IP 転送でしょうか? ブリッジ ネットワークでしょうか? マスカレードでしょうか?
答え1
ホストと VM の間にブリッジ ネットワークを作成する必要があります。構成はハイパーバイザー ベンダーによって異なります。
Oracle Virtual Boxを使用している場合
- を開き
Oracle VM VirtualBox Manager
、VM を選択して、ネットワーク セクションに移動します。 - タブで
Adopter 1
デフォルトを変更しNAT
、ドロップダウンBridged Adopter
からホストのネットワーク アダプターを選択します。適用します。Name
- 次に、静的、動的などの ISP の構成に従って、VirtualBox 内でネットワークを構成します。
使用している場合QEMU-KVM
- GUIツールを開く
Virtual Machine Manager
(GUIを使用している場合) - 特定の仮想マシンを選択し
Open
、NIC
- デフォルトを変更し
NAT
てHost Device xxxxxx: macvtap
適用し、ISP の構成に従って仮想マシン内のネットワークを構成します。 - GUI ツールがない場合は、
virsh edit virtual-machine-name
前述のように構成を使用して変更します。
3 番目の代替案は、iptable
NAT
ホストでルールを作成することです。次に、その IP (VM に割り当てる IP) へのすべてのトラフィックを VM の内部 IP アドレスに転送します。数行記述する必要があります。Google でiptables
検索してください。ただし、私にとっては、これは最も好ましくない方法です。
注-1 Bridged Network
ホスト内のmacvtap
ほとんどのアダプタでは動作しません。WiFi
注-2ホストは VM からアクセス不能になりmacvtap
、その逆も同様です。両方とも外部ネットワークからはアクセス可能です。さらに、複数の VM がある場合、それらは相互にアクセス可能なままです。これがmacvtap
動作方法です。ホストから VM にアクセスし、その逆を行うには、Oracle VirtualBox の場合は NAT アダプタをもう 1 つ作成し、QEMU-KVM の場合は NAT 付きの NIC をもう 1 つ作成します。
注3すでに質問で述べたように、ホストのネットワーク アダプタの両方Bridged Network
で、 VM ごとに IP アドレスが予約されている必要があります。macvtap