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

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

ただいまの
回答率

87.61%

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

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 2,735

score 28

先輩方に言われるがままに、いつの間にか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 が繋がるようになった。

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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • toitoitoi

    2016/08/31 23:35

    mit0223さん 最後までありがとうございます^^

    そうなんです。dhcp、Gatewayをコメントアウトして何度再起動してもデフォルトゲートウェイが表れませんでした。

    もしかして、ケーブル接続にチェックを入れた今なら動的に設定できるかもしれませんね。
    そんな万能じゃないか(笑)

    キャンセル

  • mit0223

    2016/09/01 00:42

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

    キャンセル

  • toitoitoi

    2016/09/01 08:36

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

    キャンセル

回答 4

checkベストアンサー

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/31 13: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 となります。

    キャンセル

  • 2016/08/31 14:23

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

    キャンセル

  • 2016/08/31 15:31

    「情報の追加・修正の依頼」の返信にも書きましたが、

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

    主に上記2点で(漏れがあったらすみません)全て解決しました。

    解決まで丁寧にお付き合いいただきありがとうございました。

    キャンセル

0

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

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

確認コマンド

# IPアドレスの確認
$ ip a

# ルーティングの確認
$ ip r

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

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

【補足】

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

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/30 20:00

    tkmtmktさん、補足などありがとうございます。

    知識が欠けていても解決できる能力が必要とのこと、目から鱗でした。分からないから知らないから…と甘えていた部分があったかもしれません。

    アドレス部の一致など今一度注意してみてみます。

    また進捗をご報告させてください。
    よろしくお願いいたします。

    キャンセル

  • 2016/08/30 20:53

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

    キャンセル

  • 2016/08/31 15:35

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

    また機会がありましたら相談にのっていただけると幸いです。
    どうもありがとうございました!

    キャンセル

0

よく見ると

vi /etc/sysconfig/network-scripts/ifcfg-eth1↓ 
*---------------------------* 
DEVICE=eth0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/30 16:43

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

    キャンセル

0

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 87.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る