仮想マシンで実行されているオペレーティングシステムを実際に入力せずに、VMware Fusionを使用して仮想マシンのIPを確認できますか?メニューオプションやコマンドラインなど、VMware Fusionソフトウェア自体を使用して仮想イメージに対して発行できるものを探しています。
ありがとう-Adron
IPアドレスは純粋にOSの責任です。したがって、OSを保持する仮想フレームワークは、内部のTCP/IPスタックについて何も認識しませんHyper-VやVMwareの追加ゲストツールなどのフレームワークに共生の追加がない限り(todda.speotに感謝)以下のコメントにあります)。最初に起動せずにVMでファイルを参照することと同じです。
技術的には、VMがDHCPに依存している場合、couldのMACアドレスに渡された最後のリースをDHCPサーバー(LANのルーターなど)で検索します仮想NIC IPがどうなるかについての良いアイデアを得るためにおそらくが次に起動するときです。同じIPが別のデバイスに渡されなかったと仮定していますリース履歴を見たときとVMが起動したときの間。
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
これが誰かを助けるためのヒントです。 VMにavahi-daemon
をインストールします。これにより、ホスト名vmname.local
で接続できます。ここで、vmname
は仮想マシンの名前です。私の場合、VMの名前はbaremetal
で、ホスト上で実行できます。
ssh baremetal.local
VMのIPを知る必要はありません。 :)
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です。これらのエントリを解析するか、単に最新のあなたが見ているリースがまだ有効であることを確認してください。
可能です-少なくとも一般的なケースでは、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ベースのアドレスの良い推測です。しかし、私は確かに言うことはできません。)
これに対する私の解決策は:
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
VM console ipconfig
(if VM is Windows)の場合)またはifconfig
(if VMはLinuxです)。
eth0
のIPは、探しているIPアドレスです。
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接続も機能するようになりました。
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アドレスを取得できます。