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


19

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

ありがとう-アドロン


仮想マシンNICのMACアドレスがわかっている場合は、常にホストマシンのARPキャッシュまたはリバースARPを活用しようとすることができます。
ta.speot.is

vmwareがこのドロップデッドを他のvmsのように明白かつ簡単にしないことは驚くべきことです!avahiの回答を歓迎し、もしあなたが必死ならnmapですが、それでも-VMwareは大失敗です!
nealmcb

回答:


1

短い答え:いいえ

長い答え:いいえ、多分

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

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


1
ああ。VMwareがOSにそれを提供するフックを持っていることを望んでいました。私はどちらかの実際のOSへのアクセスを持っていないので、:(私は企業のDHCPにはアクセスできません、これは考えている。
Adron

ハイパーバイザーフックしてIPアドレスを取得でき、Hyper Vはそれをゲスト追加で実行します。そして、VMwareのフレーバーもあなたに教えてくれるようですkb.vmware.com/Platform/Publishing/images/1006098.JPG-しかし、WesleyDavidが言ったように、これを心配するのはハイパーバイザーの責任ではありません。
ta.speot.is

46

VMWareは、当然のことながら、このための組み込みツールを提供しますvmrun/Applications/VMware Fusion.app/Contents/Library/vmrunFusionの他のリリースでは多少動きましたが、それはまだ下にあります。

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

🍺  vmrun getGuestIPAddress ~/.docker/machine/machines/myvm.vmx
    172.16.213.128

7
これは受け入れられた答えであるはずです。完璧に働きました。
マイケルポッター

2
いいね!vmrunデフォルトで私のMacのPATHにあるのでvmrun getGuestIPAddress "$(vmrun list | grep vmx)"、引用符を含めてください!
ビッグリッチ

どうやらVMWareツールはVMで実行する必要があるようです。(Fusion V8.5)
Laryx Decidua

10

誰かに役立つ場合のヒントを次に示します。avahi-daemonVMにインストールします。これは、ホスト名を経由して接続することができvmname.localvmname仮想マシンの名前です。私の場合、VMの名前はbaremetal、ホスト上で実行できます。

ssh baremetal.local

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


1
いい考えavahi-daemonですが、利用できないオペレーティングシステムを実行するVMについてはどうでしょうか。たとえば、Windowsが思い浮かびます... :
Laryx Decidua 14

4

可能です-少なくとも、一般的なケースでは、ゲスト用にNATスタイルのネットワークが構成されています。VMWareはNAT-ingを提供しているため、現在NAT-ingされているアドレスを通知できる必要があります。何かvmrun listがこの情報を出力するはずです。それは欠陥ではありません...

しかし、いずれにせよ、とにかく見つける方法は次のとおりです。まず、ifconfigお使いのMac で実行します(おそらく、ipconfigWindowsでも同じことをしますが、私はテストしていません)。これにより、マシン上のすべてのネットワークインターフェイス(物理および仮想)が一覧表示されます。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)にあります。ホストには、幸運な人が1人だけ、または2人以上がいる場合があります。すべてをチェックする必要があります。コマンドラインで直接入力した非常に単純なtcshスクリプトを次に示します。vmnetによって管理されるすべてのクラスCプライベートネットワークの各アドレスにpingを試行し、pingが成功すると終了します。この-W 500オプションは、応答を0.5秒だけ待機するようにpingに指示し(おそらく、さらに少なく使用できます)、-c 1正確に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

Voilà、私はゲストにsshすることができました:

% ssh 192.168.123.130
Password:

今では、実行中のゲストは1人だけでした。したがって、pingに応答する最初のIPアドレスは正しいものでした。一度に複数のゲストを実行する場合、同じまたは同様のpingコマンドを使用して、そのような有効なプライベートIPアドレスすべてのリストを作成し、正しいゲストになるまですべて試してください。

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


1
nmapを使用すると、アップIPをすばやく見つけることができます;nmap -sP 192.168.123.*
ロバートレイズ

4

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

VMware Fusion 6のインストールでは、vmnet-dhcpdデーモンはリースをfilesに書き込みます/var/db/vmware/vmnet-dhcpd-vmnetX.leases(「X」は1および8)。経験的に:-)探す必要があるのはvmnet8であることを確認しました。リースファイルからの抜粋を次に示します/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-hostnameVMの名前で、単語の後の数字がleaseそのIPです。これらのエントリを解析するか、単に最新のエントリを見ることができます。探しているリースがまだ有効であることを確認してください。


2

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

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

「CentOSからフォルダー(任意のフォルダー)にアクセスできるようにします。」1)他のLinuxディストリビューションを使用する、2)Linux以外のUNIXオペレーティングシステムを使用する、3)VMなどでWindowsなどの非UNIXオペレーティングシステムを使用する人はどうですか?:-)
Laryx Decidua 14

1

VMコンソールipconfig(VMがWindowsのifconfig場合)または(VMがLinuxの場合)で実行します。

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


元の質問は、「実際に仮想マシンで実行されているオペレーティングシステムに入らずに?」でした。これはあなたの注意を逃したかもしれません。
ラリックスデシドゥア14

それは質問に答えないかもしれませんが、私はここでわずかに異なる質問で終わりました、そしてそれは役に立ちました。
ジャミーウィルソン

1

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接続も機能するようになりました。


0

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

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

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


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.