tl;dr
Windows 8 以降の Pro 以上なら使えるクライアント版 Hyper-V で外部から直接アクセスできないように仮想マシンを増やします。
Motivation
会社で使ってると、社内の DHCP 使うと、他の人から見えるところに仮想マシンが増えてしまって、ちょっとテストでローカルに仮想マシン立てたいだけなのに、面倒な社内ルールに巻き込まれたりしそうで、いろいろアレなので、会社から割り当てられている Windows の開発機の中からだけアクセスできるような状態で仮想マシンを作っていきたい。
VirtualBox とかだと個人利用じゃないと、ライセンス料かかるとかあるし、ライセンス料かかると、社内の クソ面倒くさい 手続きガーみたいになるので、Windows 8 以降の Pro 以上ならデフォルトで使えるクライアント版 Hyper-V でがんばる方向で。
会社での利用なら、普通は Pro 以上で入ってるはず。
あと、テケトーにググると、外部スイッチ使った例ばっかり出てくるので、今回メモることにした。
Hyper-V を有効にする
デフォルトだと無効になっているので有効化します。
UAC 昇格した PowerShell で
Enable-WindowsOptionalFeature –Online –FeatureName Microsoft-Hyper-V
Restart-Computer
Hyper-V のスイッチ作る
UAC 昇格している PowerShell で
New-VMSwitch -Name InternalSwitch -SwitchType Internal
マウスポチポチ派なら、仮想スイッチマネージャで画像のような感じで作成。
スイッチをインターネットにつなげる
コントロールパネル>ネットワークとインターネット>ネットワークと共有センター>アダプターの設定と変更 でインターネットに繋がっているアダプターを右クリックして、プロパティ開いて、「ネットワークのほかのユーザーに、このコンピューターのインターネット接続をとおしての接続を許可する」にチェックいれて、プライベート ネットワーク接続の選択で、さっき作った Hyper-V の仮想スイッチを選択する。
この設定をすると、Hyper-V の仮想スイッチに 192.168.137.1 が割り当てられて、これが DHCP とかの役割をやってくれるみたい。
DHCP だけど、これを使った仮想マシンの IP アドレスは、めったに変わらないから、たいして困ってないけど、名前解決できると良さそう。
固定 IP にはできないって、どこかに書いてあった気がする。
/etc/hostname
に、 foobar.mshome.net
とか書いておくと、mDNS(?) で名前解決できて、ssh するときに便利だった。
仮想マシンを作る
仮想マシン新規作成ウィザードに沿って作成します。
個人的に変更しているところは、
- 動的メモリの使用にチェック
- ネットワークは、さっき作った内部スイッチを使う。
- 第2世代にして仮想マシン作成後に、セキュアブートを無効にしてから起動(セキュアブート無効にしないと起動に失敗する?(調べてない
インストールする Linux の設定とかは、それっぽくやっておいてください。
というか、仮想スイッチの設定だけやっておけば、割と自動で設定してくれる(投げやり
会社で使う場合は、プロキシの設定とか必要な気がするので、その辺の設定とかはやっておいてください。
終わりに
これで、ローカルに Linux 等の仮想マシンをモリモリ作れるので、サーバは *nix てきな何かなのに、開発環境が Windows で辛いということも減りそうです。