ホストWindows7で実行されているVirtualBoxインスタンスでRHEL/CentOSの2つのVMインスタンスを実行しています。問題は、VBoxManage list vms -l | more
を実行し、その後VBoxManage guestproperty get <uuid> "/VirtualBox/GuestInfo/Net/0/V4/IP"
を実行すると、両方のVMで同じIP。ネットワーク->アダプタ2-> PCnet-FAST III(内部ネットワーク、「intnet」)を使用して両方のVMに内部ネットワークintnet
を設定しましたが、eth0がプライベートネットワークであった可能性があることを理解していましたVMのインターフェース。しかし、両方のIPは10.0.2.15として表示されています。 2つのVMのプライベートVMネットワーク内の個別のIPにアクセスする方法はありますか?
注:PuTTY SSHクライアントを介してアクセスする場合、単一のVMインスタンスにのみアクセスすることもできます。そして、それは常にプロキシ127.0.0.1:2222に接続しています。したがって、VMを区別できません。クライアントサーバーアーキテクチャの別々のインスタンスでサーバーコードとクライアントコードを実行するには、別々のインスタンスアクセスが必要です。私の他のスレッドを参照してください 同じホストを使用して複数のVMにsshするようにPuTTYを構成する方法 問題を詳細に説明しています。
ホストで実行されたVBoxManageコマンドライン出力をアタッチしています。 1.3_2と1.3_3のサンドボックスを実行していますが、両方とも以下の太字で示されているように同じIPを持っています。
C:\Program Files\Oracle\VirtualBox>VBoxManage list vms
"Hortonworks Sandbox 1.3" {4914b5c7-1395-47f5-80ef-8fbec8cadbd4}
"Hortonworks Sandbox 1.3_1" {f103f5d2-f949-4d67-a81e-c63ddc5335dc}
"Hortonworks Sandbox 1.3_2" {fc2b9f50-bf4a-4a5d-8189-22d62c7e1d67}
"Hortonworks Sandbox 1.3_3" {5976fff1-7a0d-4eca-bedf-7756f7076dbd}
C:\Program Files\Oracle\VirtualBox>VBoxManage guestproperty get fc2b9f50-bf4a-4a
5d-8189-22d62c7e1d67 "/VirtualBox/GuestInfo/Net/0/V4/IP"
**Value: 10.0.2.15**
C:\Program Files\Oracle\VirtualBox>VBoxManage guestproperty get 5976fff1-7a0d-4e
ca-bedf-7756f7076dbd "/VirtualBox/GuestInfo/Net/0/V4/IP"
**Value: 10.0.2.15**
VMサンドボックス1.3_2で、次のコマンドを実行して、次のようにeth0のローカルIPを取得しました。
[hue@sandbox ~]$ arp -an
? (10.0.2.2) at 52:54:00:12:35:02 [ether] on eth0
[hue@sandbox ~]$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.2.0 * 255.255.255.0 U 0 0 0 eth0
link-local * 255.255.0.0 U 1002 0 0 eth0
default 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
さまざまなサンドボックスの個別のIPを見つける方法はありますか?
同様のスレッドが表示されます how-to-do-networking-between-virtual-machines-in-virtualbox? ゲストVMのIP解決にdhcpserverを使用すると言われています。しかし、それは--ip
を要求します注:VBoxManage dhcpserverを実行しようとしましたが、次の出力で以下に提供した--ip
オプションと--netmask
を要求します。
C:\Program Files\Oracle\VirtualBox>VBoxManage dhcpserver add --netname intnet --
netmask 10.0.2.*
Oracle VM VirtualBox Command Line Management Interface Version 4.3.0
(C) 2005-2013 Oracle Corporation
All rights reserved.
Usage:
VBoxManage dhcpserver add|modify --netname <network_name> |
--ifname <hostonly_if_name>
[--ip <ip_address>
--netmask <network_mask>
--lowerip <lower_ip>
--upperip <upper_ip>]
[--enable | --disable]
VBoxManage dhcpserver remove --netname <network_name> |
--ifname <hostonly_if_name>
Syntax error: You need to specify --ip option
Dhcpserverを有効にしようとしている間、それはすでに存在します:
C:\Program Files\Oracle\VirtualBox>VBoxManage dhcpserver add --netname intnet --
ip 10.0.2.15 --netmask 255.255.255.0 --lowerip 10.0.2.101 --upperip 10.0.2.254 -
-enable
VBoxManage.exe: error: DHCP server already exists
route -n
およびSudo ss -lntp
の出力は次のとおりです:( MariusMatiaeの要求による)
[hue@sandbox ~]$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.56.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0
0.0.0.0 10.0.2.2 0.0.0.0 UG 0 0 0 eth0
[hue@sandbox ~]$ Sudo ss -lntp
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 10 *:8651 *:* users:(("gmetad",1046,0))
LISTEN 0 128 *:50060 *:* users:(("Java",2797,86))
LISTEN 0 10 *:8652 *:* users:(("gmetad",1046,1))
LISTEN 0 128 10.0.2.15:50030 *:* users:(("Java",2834,84))
LISTEN 0 128 127.0.0.1:34927 *:* users:(("Java",2797,70))
LISTEN 0 50 *:10000 *:* users:(("Java",1690,130))
LISTEN 0 128 :::80 :::* users:(("httpd",1282,4),("httpd",1414,4),("httpd",1415,4),("httpd",1416,4),("htt pd",1417,4),("httpd",1418,4),("httpd",1419,4),("httpd",1420,4),("httpd",1421,4))
LISTEN 0 128 ::ffff:10.0.2.15:60020 :::* users:(("Java",3513,121))
LISTEN 0 128 10.0.2.15:8020 *:* users:(("Java",1886,76))
LISTEN 0 128 10.0.2.15:50070 *:* users:(("Java",1886,99))
LISTEN 0 128 :::22 :::* users:(("sshd",1191,4))
LISTEN 0 128 *:22 *:* users:(("sshd",1191,3))
LISTEN 0 100 :::11000 :::* users:(("Java",2237,35))
LISTEN 0 128 :::5432 :::* users:(("postmaster",1550,4))
LISTEN 0 128 *:5432 *:* users:(("postmaster",1550,3))
LISTEN 0 128 *:8888 *:* users:(("python",1064,5),("python",5540,5))
LISTEN 0 1 ::ffff:127.0.0.1:11001 :::* users:(("Java",2237,39))
LISTEN 0 100 127.0.0.1:25 *:* users:(("master",1272,12))
LISTEN 0 50 *:50010 *:* users:(("Java",1884,75))
LISTEN 0 128 *:50075 *:* users:(("Java",1884,76))
LISTEN 0 50 *:9083 *:* users:(("Java",1797,125))
LISTEN 0 128 10.0.2.15:50300 *:* users:(("Java",2834,74))
LISTEN 0 50 *:50111 *:* users:(("Java",3142,261))
LISTEN 0 50 *:8000 *:* users:(("python2.6",3770,3),("python2.6",3843,3),("python2.6",3843,22))
LISTEN 0 50 *:8002 *:* users:(("Java",3772,136))
LISTEN 0 50 :::2181 :::* users:(("Java",2197,52))
LISTEN 0 128 10.0.2.15:51111 *:* users:(("Java",2820,74))
LISTEN 0 50 :::48231 :::* users:(("Java",2197,43))
LISTEN 0 128 127.0.0.1:199 *:* users:(("snmpd",1179,8))
LISTEN 0 50 *:9290 *:* users:(("Java",2834,88))
LISTEN 0 128 *:8010 *:* users:(("Java",1884,81))
LISTEN 0 128 10.0.2.15:50090 *:* users:(("Java",1888,76))
LISTEN 0 50 *:3306 *:* users:(("mysqld",1460,10))
2つの可能性があります。
ホストオンリーネットワークを設定します。これには、次の手順が必要です。
a)[ファイル]-> [設定]-> [ネットワーク]-> [ホストのみのネットワーク]。
b)Plus
記号をクリックして追加します。
c)ドライバー-> DHCPサーバーを押します。小切手 Enable DHCP sever
d)お好きなようにマスクを記入してください。妥当な値は次のとおりです。サーバーアドレス192.168.56.254サーバーマスク255.255.255.0下限アドレス境界192.168.56.100上限アドレス境界192.168.56.200
次に、ホストオンリーネットワーク上に少なくとも1つのアダプターを持つようにVMを構成します。
VMを起動すると、ホストのIPは192.168.56.1になり、さまざまなVMが192.168.56.100、192.168.56.101、...に配置されます。これで、あるマシンから別のマシンにping、sssh、およびvncを実行できます。
編集:
ルーティングテーブルを考慮して、両方のVMで次のコマンドを実行すると、ソリューション2が機能します。
Sudo route delete default gw 10.0.2.2
Sudo route add default gw 192.168.56.1
ここや他の場所で引き出された技術的な答えをたくさん調べた後、私は指示を見つけてそれに従いました ここ 非常にシンプルで完璧に機能しましたが、1つの小さな問題がありました。手順は次のとおりです。