web-dev-qa-db-ja.com

VMware Fusionを使用して仮想マシンのIPアドレスを確認するにはどうすればよいですか?

仮想マシンで実行されているオペレーティングシステムを実際に入力せずに、VMware Fusionを使用して仮想マシンのIPを確認できますか?メニューオプションやコマンドラインなど、VMware Fusionソフトウェア自体を使用して仮想イメージに対して発行できるものを探しています。

ありがとう-Adron

19
Adron

短い答え:いいえ

長い答え:いいえ、たぶん

IPアドレスは純粋にOSの責任です。したがって、OSを保持する仮想フレームワークは、内部のTCP/IPスタックについて何も認識しませんHyper-VやVMwareの追加ゲストツールなどのフレームワークに共生の追加がない限り(todda.speotに感謝)以下のコメントにあります)。最初に起動せずにVMでファイルを参照することと同じです。

技術的には、VMがDHCPに依存している場合、couldのMACアドレスに渡された最後のリースをDHCPサーバー(LANのルーターなど)で検索します仮想NIC IPがどうなるかについての良いアイデアを得るためにおそらくが次に起動するときです。同じIPが別のデバイスに渡されなかったと仮定していますリース履歴を見たときとVMが起動したときの間。

2
Wesley

VMWareは、当然のことながら、このための組み込みツールvmrunを提供しています。 /Applications/VMware Fusion.app/Contents/Library/vmrun他のFusionリリースでは少し動きましたが。

???? vmrun list
    Total running VMs: 1
    .docker/machine/machines/myvm.vmx

????  vmrun getGuestIPAddress ~/.docker/machine/machines/myvm.vmx
    172.16.213.128
49
dch

これが誰かを助けるためのヒントです。 VMにavahi-daemonをインストールします。これにより、ホスト名vmname.localで接続できます。ここで、vmnameは仮想マシンの名前です。私の場合、VMの名前はbaremetalで、ホスト上で実行できます。

ssh baremetal.local

VMのIPを知る必要はありません。 :)

10
berto

Mikhail T.が言ったように、「VMWareはNAT-ingを提供しているので、現在NAT-ingしているアドレスを教えてくれるはずです。」確かにそれはします:

私のVMware Fusion 6インストールでは、vmnet-dhcpdデーモンがリースをファイル/var/db/vmware/vmnet-dhcpd-vmnetX.leasesに書き込みます。ここで、「X」は1および8です。 。以下は、リースファイル/var/db/vmware/vmnet-dhcpd-vmnet8.leasesからの抜粋です。

lease 192.168.177.129 {
    starts 1 2014/02/17 09:34:19;
    ends 1 2014/02/17 09:36:56;
    hardware ethernet 00:0c:29:2b:2b:10;
    client-hostname "ubuntu";
}

client-hostnameはVMの名前であり、Wordの後の数字leaseはそのIPです。これらのエントリを解析するか、単に最新のあなたが見ているリースがまだ有効であることを確認してください。

4
Laryx Decidua

可能です-少なくとも一般的なケースでは、NATスタイルのネットワークがゲスト用に構成されています。 VMWareがNAT-ingを提供しているので、VMWareが現在NAT-ingしているアドレスを教えてくれるはずです。 vmrun listのようなものがこの情報を出力しているはずです。それは欠陥ではない...

しかし、いずれにせよ、これはとにかく見つける方法です。まず、Macでifconfigを実行します(おそらく、ipconfigはWindowsでも同じことを行いますが、テストしていません)。これにより、マシン上のすべてのネットワークインターフェイス(物理および仮想の両方)が一覧表示されます。 vmnet-onesを探します。私のMacでは次のようになります:

% ifconfig | grep -A2 ^vmnet
vmnet1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:50:56:c0:00:01 
inet 192.168.82.1 netmask 0xffffff00 broadcast 192.168.82.255
vmnet8: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
ether 00:50:56:c0:00:08 
inet 192.168.123.1 netmask 0xffffff00 broadcast 192.168.123.255

したがって、私のゲストのIPは、これら2つのVMプライベートネットワークのいずれかです:192.168.82.0/24または192.168.123.0/24のいずれかです。ホストには、幸運なことに、 2つ以上-すべてをチェックする必要があります。コマンドラインに直接入力した非常に単純なtcshスクリプトを次に示します。これにより、すべてのクラスCプライベートネットワークの各アドレスにpingが送信されますvmnetによって管理され、pingが成功すると終了します。-W 500オプションはpingに応答を0.5秒だけ待機するように指示し(おそらく、さらに少ない時間を使用できます)、-c 1はpingに送信を指示しますちょうど1つのパケット:

% set i=2
% while ( $i < 255 )
while? ping -W 500 -c 1 192.168.82.$i && break
while? ping -W 500 -c 1 192.168.123.$i && break
while? @ i++
while? end

上記の小さなスクリプトはしばらくの間実行され、存在しないアドレスに到達するために失敗したすべての試みをリストします。

PING 192.168.82.2 (192.168.82.2): 56 data bytes

--- 192.168.82.2 ping statistics ---
1 packets transmitted, 0 packets received, 100.0% packet loss
PING 192.168.123.2 (192.168.123.2): 56 data bytes
...

最終的に成功して終了するまで:

64 bytes from 192.168.123.130: icmp_seq=0 ttl=64 time=0.307 ms

--- 192.168.123.130 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss

ボイラ、私は私のゲストにsshすることができました:

% ssh 192.168.123.130
Password:

今、私は単一のゲストしか実行していませんでした-したがって、pingに応答する最初のIPアドレスは正しいものでした。一度に複数のゲストを実行する場合、同じまたは同様のpingコマンドを使用して、そのようなすべての有効なプライベートIPアドレスのリストを作成し、正しいゲストに入るまでそれらをすべて試す必要がある場合があります...

(そして、多分、.130はいずれにしてもNATベースのアドレスの良い推測です。しかし、私は確かに言うことはできません。)

4
Mikhail T.

これに対する私の解決策は:

VMwareツールをインストールしたら、共有を構成して、CentOSからフォルダー(任意のフォルダー)にアクセスできるようにします。次に、/ etc/sysconfig/network-scripts/ifup-postを変更して、現在の日付とIPアドレスをこの共有フォルダー内のファイルに追加します。

これを行う方法:

変更:/ etc/sysconfig/network-scripts/ifup-post

これをifup-postの最後の行の前に追加します( "exit 0"):

date >> /path/to/shared/folder/guest_ip.log
ifconfig >> /path/to/shared/folder/guest_ip.log

これにより、ネットワークが起動するたびに、guest_ip.logにifconfigの日付と戻り値が追加されます。

私の場合、自宅と職場では常に192であることを知っているので、IPアドレスのプレフィックス192をgrepすることにしました。これは、上記を次のように調整することで実行できます。

date >> /path/to/shared/folder/guest_ip.log
ifconfig | grep 192 >> /path/to/shared/folder/guest_ip.log
2
Mr.BassHatt

VM console ipconfig(if VM is Windows)の場合)またはifconfig(if VMはLinuxです)。

eth0のIPは、探しているIPアドレスです。

1
VM user

Ubuntu 15.04でVMPlayerを実行しているときにも同じ問題が発生しました。私の仮想マシンはNATに設定されており、GUIにログインしてVMでifconfigを実行することでIPアドレスを確認できましたが、pingまたはsshで接続できませんでした。

VMPlayerをインストールすると、vmnet1およびvmnet8アダプターでdhcpが有効にならないことがわかりました。解決策は、ubuntu guiを使用して「接続の編集」でネットワーク接続を編集することでした。イーサネットの下でvmnet1を見つけ、編集ボタンをクリックします。 IPv4設定でDHCPを有効にし、保存して再起動します。

コマンドラインでifconfigを実行すると、vmnet1にIPアドレスがあることがわかります。ホストからのnat-ed VMへのSSH接続も機能するようになりました。

1
Atifm
arp -a| grep vmnet 
? (172.16.65.132) at 0:c:29:83:1:e0 on vmnet8 ifscope [ethernet]

Vmrun(バージョン1.14.4 build-3204469)のマンページから:

getGuestIPAddress        Path to vmx file     Gets the IP address of  the guest
                         [-wait]

ただし、これを機能させるには、VMware ToolsスイートをゲストOSにインストールする必要があり、この手順はゲストOSにログインしないと実行できないことに注意してください。ツールを「ベースイメージ」にインストールし、クローン作成によってそこから新しいイメージを作成できます。次に、上記のコマンドを使用して、新しく作成されたVMのIPアドレスを取得できます。

0
pldimitrov