私がVMWAREワークステーションを持っているとしましょう(Windowsを推測し、Windowsによってホストされています)。ホスティングマシンのホスト名を受け取る方法はありますか?そして、このリンクのようにホストマシン上で物事を変更することなく。
7 に答える
これを行うには、ホストからゲストに machine.id を介して文字列を渡します。ホストで (すべての VM の .vmx ファイルでも) 変更を加える必要があり、ホストのホスト名を自動的に検出するわけではありませんが、機能します。問題の VM の電源を切ったホストで、VM の .vmx ファイルを編集します。次のような行を検索または追加します。
machine.id = "<string>"
サーバーの名前を示す識別文字列に等しく設定<string>
します。これは、ホスト名である場合もあれば、その短縮バージョンである場合もあり、意味がわかっている場合は、必要に応じて理解できないコードである場合もあります。ただし、.vmx ファイルに
isolation.tools.machine.id.get.disable = TRUE
文字列を渡しても機能しないため、この行が存在する場合は、削除/コメントするか、値を に設定することをお勧めしますFALSE
。
ゲスト OS で、VMware Tools がインストールされている場合は、次の操作を実行できます (Linux ゲストの場合)。
vmware-guestd --cmd 'machine.id.get'
または(Windowsゲストの場合、試したことはありません):
VMwareService --cmd machine.id.get
これは古いスレッドであることは知っていますが、まだ興味がある場合は、上記の「トーマス・リー」の回答が最近のバージョンのVMWare ワークステーションおよびVMWare fusionで機能します。値を取得する新しいコマンドは次のとおりです。
rpctool machine.id.get
マシン名が最初の起動時に自動設定されるように、Fusion 用に管理された VM を展開する際にこれを使用します。ありがとうトーマス……。
原則として - いいえ。
ただし、悪意のあるゲスト OS が VM サンドボックスをバイパスできる特定の脆弱性が存在する可能性があります (または存在する可能性があります)。たとえば、Blue Pillを読んでください。また、研究者自身のブログ、 Joanna Rutkowska による Invisible Thingsで詳細を読むこともできます。
もちろん、これらは概念実証にすぎませんが、ソフトウェアに実装されたセキュリティはソフトウェアのバグの影響を受けます...
これを行うにはおそらくいくつかの方法があると思いますが、すぐに 2 つの方法を考えることができます: 1 つは、ゲストに ViX をインストールし、ホスト名を指定せずにホストに接続することです (Google の「ViX リファレンス」を参照してください)。一般的なタスク」) を使用Vix_CopyFileFromHostToGuest()
して、ファイルをコピーします/etc/vmware/esx.conf
。別の方法は、ゲストからホストへのある種のネットワーク接続を作成することです (私は使用しましssh
たが、ホスト名または IP がわからない場合でも、上記のように ViX 接続を実行して、時間がかかるジョブをディスパッチできます)。次にゲストで言いnetstat -a
ます。netstat
解決可能な場合、出力にはホスト名が含まれます。
ネットワーク上に事実上2台のコンピューターがあります。仮想NICにプライベートネットワーク/NATスタイルのセットアップの1つを使用する場合、ホストにはかなり予測可能なIPアドレスがあるため、他の方法と同じように、多くのリモート管理アプローチのいずれかを使用して問い合わせることができます。 。
ゲストOSが1つしかない場合は、ゲストのIPアドレスと同じ先頭の24ビットですべてのIPアドレスを試すだけで、アドレスを推測する手間を省くことができます。
vSphere 内
- ホストをクリックします
- [構成] タブをクリックします
- ソフトウェア セクションで [DNS とルーティング] をクリックします。