質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

Q&A

解決済

4回答

3845閲覧

MacOSからVirtualBox内のCentOSにアクセスしてローカル開発を行いたい(現在ネットワーク接続で詰まり中)

toitoitoi

総合スコア28

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

VirtualBox

VirtualBoxは、現在米オラクル社が開発している、 x86仮想化ソフトウェア・パッケージの一つです。

0グッド

1クリップ

投稿2016/08/30 06:35

編集2016/08/31 05:19

先輩方に言われるがままに、いつの間にかMacの中にVirtualBox、その中のCentOS、それを操る(?)Vagrantが入っています。

今回はプロジェクトが変わり、上記を残したまま別環境を作成することになりました。
また、今回はVagrantを使う予定は特にありません(よくわからないので…)。

見よう見真似である程度設定したのですが、いまだに設定がうまくいきません。

やりたいことは、
・ソースを本体PCに置いて
→ 共有などを使ってVMからソースを参照
→ 本体OSからURL(hogesystem.fuga.local)を叩いてVM上(/opt/web/hogesystem)で本体ソースのプログラムを動かす。
[追記 2016/8/30 17:02]
【プログラム実行の流れのまとめ】
---------------------------
本体OS:ブラウザ → 本体OSの/etc/hostsを頼りにゲストOS:/opt/web/hogesystemを実行 → 実態は…シンボリックリンクで/media/sf_html → さらに共有で本体OSの/Users/toitoitoi/workspace/src/branchXX/html を参照。
---------------------------

そのために以下の実現を試みているところですが、できません。。。
・VMから外部(google.comなど)にpingを飛ばす。
・本体からVMにpingを飛ばす。
・本体からVMにSSH接続をする。

何が間違っているのか、ご教授いただけますでしょうか><

--- <現状をわかる範囲でご説明します。> ----------------------

まず、必要なソースは本体OSに置いてあります↓↓
MacOS>Users>toitoitoi>workspace>src>branchXX>...(branchXXが複数存在)

VirtualBoxのCentOS内は以下のようになっています。

【共有フォルダー】
html /Users/toitoitoi/workspace/src/branchXX/html 自動マウント=はい, アクセス権=完全
src /Users/toitoitoi/workspace/src アクセス権=完全
(※2行目はいらないかも)

【マウント】
$ cat /etc/fstab↓
---------------------------
・・・
xxx.xxx.xxx.1:/Users/toitoitoi/workspace/src /opt/web
---------------------------
(※↑使ってないかも)

【シンボリックリンク】
/opt/web/hogesystem -> /media/sf_html

【ネットワーク?】
$ vim /etc/udev/rules.d/70-persistent-net.rules↓
---------------------------
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?", ATTR{address}=="xx:xx:xx:xx:xx:xx", ATTR{type}=="1", KERNEL=="eth", NAME="eth0"

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?", ATTR{address}=="zz:zz:zz:zz:zz:zz", ATTR{type}=="1", KERNEL=="eth", NAME="eth1"
---------------------------

$ vi /etc/sysconfig/network-scripts/ifcfg-eth0↓
---------------------------
DEVICE=eth0
HWADDR=xx:xx:xx:xx:xx:xx
NM_CONTROLLED=no
ONBOOT=yes
BOOTPROTO=dhcp
DHCP_HOSTNAME="dev.fuga.local
#GATEWAY=10.0.2.2
---------------------------
※8/31 10:00頃、GATEWAYをコメントアウト

vi /etc/sysconfig/network-scripts/ifcfg-eth1↓
---------------------------
DEVICE=eth1
HWADDR=zz:zz:zz:zz:zz:zz
NM_CONTROLLED=no
ONBOOT=yes
BOOTPROTO=static
IPADDR="xxx.xxx.xxx.101"
NETMASK="255.255.255.0"
---------------------------

[追記 2016.8.31 10.25]
ip r↓
---------------------------------------
xxx.xxx.xxx.0/24 dev eth1 proto kernel scope link src xxx.xxx.xxx.101
yyy.yyy.0.0/16 dev eth1scope link metric 1003
---------------------------------------
※デフォルト

cat /etc/sysconfig/network↓
---------------------------------------
NETWORKING=yes
HOSTNAME=dev.fuga.local
GATEWAY=10.0.0.2
---------------------------------------

[追記 2016.08/30 16:46]
【VirtualBox側のネットワーク設定】
---------------------------
・アダプター1
割り当て:NAT
アダプタータイプ:Intel PRO/1000 MT Desktop(82540EM)
プロミスキャスモード:拒否
MACアドレス:xx:xx:xx:xx:xx:xx
ケーブル接続:□
・アダプター2
割り当て:ホストオンリーアダプター
名前:vboxnet0
アダプタータイプ:Intel PRO/1000 MT Desktop(82540EM)
プロミスキャスモード:拒否
MACアドレス:zz:zz:zz:zz:zz:zz
ケーブル接続:□
---------------------------

他にもご提供するべき情報があればご指示ください。
よろしくお願いたします。

[追記 2016/8/31 14:13]
ゲストOSからgoogle.comへpingが繋がるという進展がありましたのでお知らせします。

変更した点
・VirtualBox:ネットワーク>アダプター1>ケーブル接続にチェックを入れることで
$ service network restart
時のFailueがなくなった。
また、eth0にinet 10.0.2.15 が振られた。

・/etc/sysconfig/network の
GATEWAY=10.0.0.2 をコメントアウトして
GATEWAY=10.0.2.2 を追記

$ service network restart すると
$ route でデフォルトゲートウェイが確認できた。
$ ping google.com が繋がるようになった。

以上になります。
引き続き試行錯誤します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mit0223

2016/08/30 07:35

設定ファイルの内容から、eth0 と eth1 の2枚の仮想NICを持たせているようですが、それぞれに対する VirtualBox 側の設定はどうなってますか? 仮想マシンの設定の「ネットワーク」のところに何と表示されているでしょうか?例えば、私のマシンでは アダプター 1: Intel PRO/1000 MT Desktop(ホストオンリーアダプター, 'vboxnet0') アダプター 2: Intel PRO/1000 MT Desktop(NAT) と表示されています。 また、ホスト側のネットワークはどのようなものでしょうか。
A.Ichi

2016/08/30 07:39

→ 本体OSからURL(hogesystem.fuga.local)を叩いてVM上(/opt/web/hogesystem)で本体ソースのプログラムを動かす。 ・・・・に関しての確認です。 本体MacのSafariにURLを入力してCentOS上のapache(httpd)で/opt/web/hogesystemに有る実は、/media/sf_htmlに有る(共有?)cgiプログラム(例)を実行する。 の理解であってます?
toitoitoi

2016/08/30 07:54

mit0223さん、ご質問ありがとうございます。 VirtualBox側のネットワーク設定を追記しました。 また、ホスト側のネットワークはどこの情報を見ればわかりますか? 環境設定>ネットワークからは有益そうな情報が見つけられませんでした。
toitoitoi

2016/08/30 08:01

A.Ichiさん、ご質問ありがとうございます。 プログラムはPHPです。 また、プログラムの実行は/opt/web/でされていると認識してましたが、はっきりとはわかりません。 流れは、 本体OS:ブラウザ → 本体OSの/etc/hostsを頼りにゲストOS:/opt/web/hogesystemを実行 → 実態は…シンボリックリンクで/media/sf_html からの → 共有で本体OSの/Users/toitoitoi/workspace/src/branchXX/html となっています。
A.Ichi

2016/08/30 08:34

有難うございます。phpを実行するためのサーバは何が設定されておりますでしょうか?(phpを実行するWebサーバ必ずしもapacheでなくても良いですが) 繰り返しの質問ですみませんが。
A.Ichi

2016/08/30 08:48

よく読むとpingが飛んでない状況でしたね。Vboxのネットワークの設定に御注力ください。すみません、お答えは不要です。
mit0223

2016/08/30 11:21

eth1の設定ファイルについて、DEVICE=et0 はタイポとの事だったのですが、DHCP_HOSTNAME="xxx.xxx.xxx.101" も IPADDR= の間違いですよね?
toitoitoi

2016/08/30 23:56

mit0223さん 度々失礼しました。IPADDRの間違いで、修正いたしました。
mit0223

2016/08/31 05:26

CentOS は 7 でしょうか? 7 であれば、NetworkManager を動かしていますか? systemctl status NetworkManager とやるとどうなってますか? systemctl status network とやるとどうなってますか?
mit0223

2016/08/31 05:30

あ、インターネットにはつながったのですね。ホストとの接続(ping,ssh)はまだできないのでしょうか?
toitoitoi

2016/08/31 06:27

mit0223さん 毎度ありがとうございます。 その後ホストとの接続も苦戦していましたが、ネットワーク>アダプター2のケーブル接続にもチェックを入れたら一発で解決できてしまいました。 「ケーブル接続」という項目が重要に思えなかったので肩透かしを喰らった感じです。 お付き合いくださりありがとうございましたm(_ _)
mit0223

2016/08/31 11:35

ベストアンサーありがとうございました。私もMac OS のvirtual box 上にCent OSを立てて、NATとホストオンリーネットワークで使ってますが、ケーブル接続は気にしたことはありませんでした。私の環境では、デフォルトでチェックが入ってますね。あと、デフォルトゲートウェイは明示的に指定しなくてもdhcpで自動的に設定されませんか?設定されるならそっちを使ったほうがVMの可搬性は上がると思います。
toitoitoi

2016/08/31 14:35

mit0223さん 最後までありがとうございます^^ そうなんです。dhcp、Gatewayをコメントアウトして何度再起動してもデフォルトゲートウェイが表れませんでした。 もしかして、ケーブル接続にチェックを入れた今なら動的に設定できるかもしれませんね。 そんな万能じゃないか(笑)
mit0223

2016/08/31 15:42

解決済みなので、蛇足ですが、ケーブル接続にチェックを入れた今なら /etc/sysconfig/network のgatewayをコメントアウトすればdhcpで同じ値が設定されると思いますよ。
toitoitoi

2016/08/31 23:36

mit0223さん 本当ですね。/etc/sysconfig/networkのgatewayをコメントアウトして再起動しても同じゲートウェイになりました。 ありがとうございます!
guest

回答4

0

・VM>ネットワーク>アダプター1、アダプター2の「ケーブル接続」にチェックすること。
・CentOS: /etc/sysconfig/network の
GATEWAY=10.0.0.2 をコメントアウトして
GATEWAY=10.0.2.2 を追記 すること。

主に上記2点で(漏れがあったらすみません)全て解決しました。
ありがとうございました!

投稿2016/08/31 06:34

toitoitoi

総合スコア28

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

まず、一番難易度が低い

・VMから外部(google.comなど)にpingを飛ばす。

から解決しましょう。Virtual Box 側で eth0 が NAT に設定されているようなのですので、eth0 からホストをゲートウェイとして、外部に ping が通るべきですが、

$ vi /etc/sysconfig/network-scripts/ifcfg-eth0↓

---------------------------
DEVICE=eth0
HWADDR=xx:xx:xx:xx:xx:xx
NM_CONTROLLED=no
ONBOOT=yes
BOOTPROTO=dhcp
DHCP_HOSTNAME="dev.fuga.local
GATEWAY=10.x.x.x
---------------------------

この設定ですと、DHCPであるにもかかわらず、デフォルトゲートウェイを固定で設定しているように見えます。このアドレスは Virtual Box が NAT ネットワークで提供しているルータに一致しているでしょうか?
ip r でみると、 default via で ここの GATEWAY=10.x.x.x で指定したアドレスが出てると思いますが、そこにゲストから ping は通るでしょうか?
ping 10.x.x.x
で試してみてください。この ping が通らないようであれば、この GATEWAY= の行をコメントアウトして再起動してみてください。おそらく ip r の結果が変わって default via の後ろのアドレスが変わるものと思われます。DHCPで自動設定されたアドレスになるので、そのアドレスに ping が飛ぶようになれば、外部へのpingも飛ぶようになるものと思われます。

投稿2016/08/30 08:15

mit0223

総合スコア3401

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toitoitoi

2016/08/30 08:36

mit0223さん、ご丁寧にありがとうございます。 GATEWAYについて漠然とした知識しかなかったのでかなり理解がクリアになりました。 本日はPCから離れてしまったので、明日朝一でルーティングを確認して調整し、進捗をご報告します。 よろしくお願いいたします。
toitoitoi

2016/08/31 00:47

mit0223さん、おはようございます。 ip r を実行しても、「default via」というものが見当たりません。 その代わり、いきなりIPアドレスで始まる行が2行確認できます。 *---------------------------------------* xxx.xxx.xxx.0/24 dev eth1 proto kernel scope link src xxx.xxx.xxx.101 yyy.yyy.0.0/16 dev eth1scope link metric 1003 *---------------------------------------* ifcfg-eth0 のGATEWAYをコメントアウトして再起動しましたが、pingはまだ通りませんでした。
mit0223

2016/08/31 03:35

eth0に対するルーティングが設定されてませんね。dhcpによるip割り当てに失敗しているのではないでしょうか。ip aでeth0のipが付いてない状態ではないでしょうか。MACアドレスxx:xx:xx:xx:xx:xxが設定ファイル2箇所とvirtual boxのネットワークのパラメータですべて一致しているか確認してみてください。
toitoitoi

2016/08/31 04:33

mit0223さん ありがとうございます。 > MACアドレスxx:xx:xx:xx:xx:xxが設定ファイル2箇所とvirtual boxのネットワークのパラメータですべて一致しているか確認してみてください。 下記全てでMACアドレスが一致していました。 ・ネットワーク設定>アダプタ1>MACアドレス ・/etc/sysconfig/network-scripts/ifcfg-eth0 ・/etc/udev/rules.d/70-persistent-net.rules 念のためネットワークを再起動したところ、「check Cable?」というメッセージが出ていたので、 ・ネットワーク設定>アダプタ1 の「ケーブル接続」にチェックを入れたところ、ネットワーク再起動時のFailureがなくなりました! そして $ifconfig eth0 で確認すると、初めて > inet addr: 10.0.2.15 と出力されました。 しかし未だ、ping www.google.com は unknown host となります。
mit0223

2016/08/31 05:23

お、進んで良かったです。unknown host は DNS の問題ですね。DHCP に成功したのであれば、デフォルトゲートウェイもDNSも DHCP から自動設定されるはずなんですが、1つずつ確認しましょう。ip r で default via は出るようになりましたでしょうか? /etc/resolv.conf は DHCP から生成された内容が入っているでしょうか?
toitoitoi

2016/08/31 06:31

「情報の追加・修正の依頼」の返信にも書きましたが、 ・VM>ネットワーク>アダプター1、アダプター2の「ケーブル接続」にチェックすること。 ・/etc/sysconfig/network の GATEWAY=10.0.0.2 をコメントアウトして GATEWAY=10.0.2.2 を追記 すること。 主に上記2点で(漏れがあったらすみません)全て解決しました。 解決まで丁寧にお付き合いいただきありがとうございました。
guest

0

よく見ると

vi /etc/sysconfig/network-scripts/ifcfg-eth1↓

---------------------------
DEVICE=eth0

となってますが、 DEVICE=eth1 の間違いではありませんか?

投稿2016/08/30 07:38

mit0223

総合スコア3401

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toitoitoi

2016/08/30 07:43

失礼しました。 コピペができなく直書きしたため、間違えました。 DEVICE=eth1となっています。
guest

0

ホスト(Mac)とゲスト(CentOS@Virtual Box)の間でネットワーク通信が出来ていない状態です。
以下を確認してみてください。

  • MacのIPアドレスとルーティング設定
  • Cent OSのIPアドレスとルーティング設定
  • Virtual Boxの仮想マシンのネットワーク設定

確認コマンド

sh

1# IPアドレスの確認 2$ ip a 3 4# ルーティングの確認 5$ ip r

Virtual Boxは仮想マシンのネットワーク設定のダイアログを見る。

問題が発生したときに、原因は何かを考えることが一番の勉強になりますので、確認したネットワーク情報について類似点、相違点などから何が問題の原因であるか考えてみてください。

【補足】

  • eth0、eth1はネットワークインタフェースを示しており、特別に設定していなければインタフェース毎に一つのIPアドレスが設定されているはずです
  • IPアドレスにはアドレス部とホスト部があり、直接接続しているインタフェース同士のアドレス部の値が一致していなければ通信できません
    ⇒CentOSのIPアドレスとMACのIPアドレスとで、アドレス部の値が一致しているものが見当たらなければ、IPアドレスの設定が間違っていると判断できる
  • CentOSのeth0とeth1はVirtual Box上の仮想マシンのインタフェースと一致している

投稿2016/08/30 06:56

編集2016/08/30 09:34
tkmtmkt

総合スコア1800

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

toitoitoi

2016/08/30 07:15

さっそくのご回答ありがとうございます! 全て確認してみましたが、 ルーティングテーブルの見方など知識が欠損しているので原因まで辿りつけませんでした。 「ルーティングテーブルの見方」などを調べながら調査を続けたいと思います。
tkmtmkt

2016/08/30 09:26

コマンド出力の見方を調べることは必要なことではありますが、それ以前にコマンド出力からパターンを見極めて必要な情報を読み取ることができるようになる必要があります。 これができなければ知らないことは常に誰かに教えてもらって覚えることしかできないということで、年を取って記憶力が低下してきたら覚えることさえできないで、役立たずのレガシーおじさんになる将来が待っています。 データのパターンを見極めるというのは、対象のデータ内容とは関係なく(ネットワークの知識がないからとかに関係なく)できることです。
tkmtmkt

2016/08/30 09:38

確認したことの中でPING応答なしであることまで分かっている時点で、質問内容は「MacOSからVirtual Box上のCentOSにネットワーク接続できない」になるので、タイトル変えたほうが良いと思います。
toitoitoi

2016/08/30 11:00

tkmtmktさん、補足などありがとうございます。 知識が欠けていても解決できる能力が必要とのこと、目から鱗でした。分からないから知らないから…と甘えていた部分があったかもしれません。 アドレス部の一致など今一度注意してみてみます。 また進捗をご報告させてください。 よろしくお願いいたします。
tkmtmkt

2016/08/30 11:53

何かが出来る能力というのは「才能によるもの」ではなく「身に付けた習慣によるもの」であると思っています。 問題に対してのアプローチが「答えを求める」考え方の人と「解き方を求める」考え方の人がいた場合、「答えを求める」考え方の人はいつまでたっても人を頼らないと問題解決できない状態のままです。世の中には同じ問題というのはほとんどないので。 「解き方を求める」考え方の人は過ごした時間に比例する以上に、問題解決能力が高くなっていきます。世の中には異なる問題のように見えても解き方は本質的に同じものが多いので。
toitoitoi

2016/08/31 06:35

tkmtmkt 自己解決欄にも書きましたが、おかげ様で問題が解決しました。 tkmtmktさんには問題にあたった時のアプローチ方法など、根本的なことを教えていただき大変感謝しております。 また機会がありましたら相談にのっていただけると幸いです。 どうもありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問