ようへい

2012年11月6日火曜日

VirtualBox 4.2 での ホスト(Windows)・ゲスト(CentOS)間通信方法

VirtualBox 4.2でVM環境構築する際にハマったのでメモ。

要件

  • ゲストからインターネットに接続できること
  • ホストからゲストへ接続できること
ということで、ネットワークアダプタは、NATが適切であると思われる。

インストール

適当なOS(私はCentOSを使用しました)をインストールする。
必要に合わせ以下を行う。
SELinux の無効化
# /usr/sbin/setenforce 0
# vi /etc/sysconfig/selinux
SELINUX=disabled
Firewall の無効化
# /sbin/service iptables stop
# /sbin/chkconfig iptables off
Sendmail の無効化
# /sbin/service sendmail stop
# /sbin/chkconfig sendmail off
yum のproxy設定
# vi /etc/yum.conf
proxy=http://proxy.example.com:8080

固定IP化

現在割り振られているIPアドレスの確認
# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:08:F5:6B
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe08:f56b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:53 errors:0 dropped:0 overruns:0 frame:0
          TX packets:73 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:6539 (6.3 KiB)  TX bytes:13857 (13.5 KiB)
          Base address:0xd010 Memory:f0000000-f0020000
ルーティング(デフォルトゲートウェイ)の確認
# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.0.2.0        *               255.255.255.0   U         0 0          0 eth0
169.254.0.0     *               255.255.0.0     U         0 0          0 eth0
default         10.0.2.2        0.0.0.0         UG        0 0          0 eth0
確認内容をもとに設定
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
HWADDR=**:**:**:**:**:**
ONBOOT=yes
IPADDR=10.0.2.15
NETMASK=255.255.255.0
GATEWAY=10.0.2.2
ネットワークサービスの再起動
# /sbin/service network restart
インターフェース eth0 を終了中:                            [  OK  ]
ループバックインターフェースを終了中                       [  OK  ]
ループバックインターフェイスを呼び込み中                   [  OK  ]
インターフェース eth0 を活性化中:
eth0 のIP情報を検出中... 完了。
                                                           [  OK  ]
一応確認
# ifconfig
eth0      Link encap:Ethernet  HWaddr 08:00:27:08:F5:6B
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe08:f56b/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:310 errors:0 dropped:0 overruns:0 frame:0
          TX packets:282 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:26939 (26.3 KiB)  TX bytes:45933 (44.8 KiB)
          Base address:0xd010 Memory:f0000000-f0020000

ホスト→ゲスト間ssh接続

さて問題はここから。
ゲストOSのIPは固定できたので、固定したIPにホストのターミナルから接続を行う。
Connection refused
ありゃ・・・
サーバまでパケット届いてるのかなぁと思い、tcpdumpでパケットをキャプチャしてみても、1パケットも飛んできていない。
# tcpdump port 22
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes

0 packets captured
0 packets received by filter
0 packets dropped by kernel
どうしたものか。

ポートフォワーディング

仮想マシン側のネットワークの設定に、ポートフォワーディングというのがある。
ホストのポートを、ゲストのポートにマッピングできる。
以下のように設定。
(smtp、httpは必要に応じて設定)
名前 ホスト ポート ゲスト ポート
ssh 10022 22
smtp 10025 25
http 10080 80
設定後、localhost の 10022 に対してターミナルで接続するとうまくいった。
関連記事

0 件のコメント:

コメントを投稿