文書の過去の版を表示しています。
VirtualBox
OS仮想化ソフト。Windows上に仮想的にLinuxをインストール・利用したい時などに使う。
仮想PCにネットワークからアクセス
起動中の仮想PCに、ホストPCからは(IPを設定していれば)アクセスできるが、他のPCやスマホなどからアクセスしたいとき。
以下の2通りの方法がある。
- Windowsの設定からおこなう
- CUI(コマンドプロンプト)からの操作が必要
- でも割と単純
- VirtualBoxの設定からおこなう
- GUIでの設定が可能
前提
ホストPCに、接続機器から特定できるIPアドレス(LAN内ならローカルIP、外部ならグローバルIP)が振られている
Windowsの設定から行う
ポートフォワードを参照。設定に以下を用いる。
listenport
: ホストPCの待受ポートconnectaddress
: 仮想PCの(ホストから見た)IPアドレスconnectport
: 仮想PCの待受ポート
VirtualBoxの設定から行う
- VirtualBox マネージャから、目的のインスタンスの設定を開く
- [ネットワーク]を開く
- 割り当てが「NAT」となっているアダプターを見つけ、[高度]から詳細設定を開く
- [ポートフォワーディング]をクリック。「ポートフォワーディング ルール」ダイアログが出現
- 右上の「+」から新規設定を追加
- 「名前」を適当に設定
- 「ホストポート」にホストPCで待ち受けるポート
- 「ゲストポート」に仮想PCで待ち受けるポート
- [OK]→[OK]で設定が反映される
これで
スマホなどの接続機器から「(ホストPCのIPアドレス):(ホストポート)」(例: 192.168.11.22:8080)にアクセスすると、仮想PCに転送される。
他のソフトウェアとの競合
MacType
VirtualBoxで起動エラーが出たらMacTypeを疑う - Qiita
MacTypeを使用していると、起動時にエラーが出る。プロセスから外す。
"VirtualMachineName" has terminated unexpectedly during startup with exit code -1073741819 (0xc0000005). 終了コード : E_FAIL (0x80004005) コンポーネント: Machine
VirtualBoxは複数のexeを実行することで動作している。ひとまず次あたりをプロセスから外しておけばいいかな。それでも上記のエラーが出たら、VirtualBoxインストールフォルダのexe全部除外設定しちゃおう。
- VirtualBox.exe
- GUIから仮想OSをいろいろな手段で起動
- VBoxManage.exe
- コマンドラインから仮想OSをいろいろな手段で起動
- VBoxHeadless.exe
- 画面を出さずに仮想OS起動
MacTypeは、起動中のプロセス一覧を見ながら除外するプロセスを選択できる機能があるが、今回の場合エラーですぐ落ちちゃうので、何がいつ動いてるのか確認する手段がない。一旦MacType自体を切ってからVirtualBoxを使用し、使われるプロセスを確認し、MatTypeのiniを直接編集して除外プロセスを指定する。
Sandboxie
Sandboxの中でVirtualMachine立ち上げはできない模様。
検索しても、普通にできるというコメントも見られたが、大半は「そもそもなんでそんなことすんの」「できないできない」という感じだったので厳しいと思っておく。
Dvorakj
キーリマップソフトDvorakjを使用し、SandSを有効にしていると、スペースが2回続けて出力される。(リマップ自体は有効にならない)