LoginSignup
0
0

More than 5 years have passed since last update.

VirtualBox(CentOS6.8)でNAT+ポートフォワーディング

Last updated at Posted at 2016-12-14

■概要
いちいちVirtualBoxのCentOS上のターミナルやブラウザから操作するのが面倒なので、
WindowsマシンからVirtualBox側のCentOSに立てたWebサーバーまたはSSH接続するための設定メモ。

設定したIPアドレスとポートでホストOS(WIndows)のブラウザやSSHソフトからアクセスすると
VirtualBox!?がゲストOS側で設定したIPアドレスへ転送してくれるらしい(要調査)

NAT+ポートフォワーディングでできることは、
WindowsとゲストOS間の通信、ゲストOSから外部へのアクセスが可能

設定は3種類あり今回はNAT+ポートフォワーディング編メモ

■ホストOS側の設定(Windows)

 ▲Windowsの設定
  ・コントロールパネルを開く
  ・ネットワークと共有センター
  ・アクティブなネットワークの表示のイーサネットを選択
  ・プロパティを選択
  ・共有タブを選択
  ・「ネットワークのほかのユーザー、このコンピュータのインターネット接続をとおしての接続を許可する」のチェックを外す
  ・「ネットワークのほかのユーザーに、共有インターネット接続の制御や無効化を許可する」のチェックはどちらでもOK
    (デフォルトのままだとチェックが入っている)

 ▲Virtual Box側の設定
  ・VM VirtualBox マネージャーの「設定」を選択

  ・画面が起動するので左側の「ネットワーク」を選択

  ・アダプター1のタブの割り当てを「NAT」に設定

  ・「高度」を選択し「ケーブル接続」にチェックが入っていることを確認し、「ポートフォワーディング」を選択

  ・ポートフォワーディングルールを追加する
    名前    ⇒デフォルトのまま(Rule1)
    プロトコル ⇒TCP
    ホストIP(WIndows側のIP)
      コマンドプロンプトを開き、ipconfigコマンドを実行し「イーサネット アダプター イーサネット」の項目にある
      自分のWindowsマシンのIPアドレス(IPv4アドレス)を設定する(自分のマシンは192.168.0.86だった)

      ホストポート ⇒8080(ポート番号は任意に決められるらしいが8080にした)
      ゲストIP   ⇒ゲストOSでifconfigで調べたIPアドレスを設定(今回だと10.0.2.15)
      ゲストポート ⇒8080(ゲストOSでsudo vi /etc/sysconfig/iptablesで設定したときのポートを指定)

    例:
    ブラウザ用 ⇒Rule1    TCP 192.168.0.86    8080    10.0.2.15   8080
    SSH接続用    ⇒Rule2    TCP 192.168.0.86    22  10.0.2.15   22

■ゲストOS側の設定(CentOS)

 ▲ifconfigでアドレス確認
  コマンド実行結果からゲストOS側のIPは10.0.2.15となる

eth0 Link encap:Ethernet HWaddr 08:00:27:7E:A0:6A
   inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
   inet6 addr: fe80::a00:27ff:fe7e:a06a/64 Scope:Link
   UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
   RX packets:857 errors:0 dropped:0 overruns:0 frame:0
   TX packets:1581 errors:0 dropped:0 overruns:0 carrier:0
   collisions:0 txqueuelen:1000
   RX bytes:81412 (79.5 KiB) TX bytes:882169 (861.4 KiB)

lo  Link encap:Local Loopback
   inet addr:127.0.0.1 Mask:255.0.0.0
   inet6 addr: ::1/128 Scope:Host
   UP LOOPBACK RUNNING MTU:65536 Metric:1
   RX packets:430 errors:0 dropped:0 overruns:0 frame:0
   TX packets:430 errors:0 dropped:0 overruns:0 carrier:0
   collisions:0 txqueuelen:0
   RX bytes:130001 (126.9 KiB) TX bytes:130001 (126.9 KiB)

 ▲IPアドレス設定
  sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
HWADDR=08:00:27:7E:A0:6A
TYPE=Ethernet
UUID=bb1cb85c-5e85-4966-bd3b-1ca109497c1a
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp

 ▲ネットワーク再起動
  sudo service network restart

 ▲iptablesを使ってポートの制御をする
  sudo vi /etc/sysconfig/iptables

 下記を追加
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 8000 -j ACCEPT
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
 -A INPUT -m state --state NEW -m tcp -p tcp --dport 2222 -j ACCEPT

  sudo /etc/init.d/iptables restart

■設定後の用途

 ▲WindowsのブラウザからVirtualBoxのゲストOSのWebサーバーへアクセス
  ブラウザでアクセスする場合はWindowsのコマンドプロンプトのipconfigで実行して確認したIPアドレスを
  アドレスバーにhttp://192.168.0.86:8080 を入力すればOK(IPアドレスが192.168.0.86の場合)
  (ゲストOS側でWebサーバーが起動されていることが前提です)

 ▲WindowsのSSHソフトからVirtualBoxのゲストOSへアクセス
  SSHで接続する場合はサーバーIPを192.168.0.86(IPアドレスが192.168.0.86の場合)、
  ユーザーID/パスワードがサーバーへアクセスするときのアカウント情報、
  ポート番号が指定できるSSHソフトの場合はポート番号を指定、
  自分はputtyで接続のためポート番号が指定できないのでポートフォワーディングのポートの指定を22に設定しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0