VirtualBox Centos7 の NAT+ホストオンリーネットワークの落とし穴のまとめ

VirtualBox Centos7 の NAT+ホストオンリーネットワークの落とし穴のまとめ

1. 問題の背景

通常の設定では、ブリッジ モードを使用してインターネットを閲覧していますが、現在、次のような要求シナリオに直面しています。

Centos 仮想マシンは、インターネット イメージを yum でインストールしたり docker でプルしたりできる必要があるため、インターネットにアクセスする必要があります。 CentOS はローカル ホストの VPN にアクセスする必要があります。ローカル xshell は ssh を介して cenots 仮想マシンにアクセスできます。

したがって、目標を達成するために、NAT + ホストのみの方法を使用して仮想マシンをセットアップしました。セットアップに少し時間がかかったので、その経験をまとめるためにこの記事を書きました。

2. 仮想マシン ネットワーク カードの接続方法は何ですか?

VirtualBox には 4 つのネットワーク接続方法があります。

  • NAT
  • ブリッジアダプタ
  • 内部
  • ホストオンリーアダプタ

まずは写真を見てみましょう。この写真を見れば、これら 4 つの方法の違いが簡単にわかります。

画像.png

2.1 NAT

NAT: ネットワーク アドレス変換
NAT モードは、仮想マシンがインターネットにアクセスできるようにする最も簡単な方法です。次のように理解できます。

ネットワーク上でゲストがアクセスするすべてのデータは、ホストによって提供されます。ゲストは実際にはネットワーク内に存在せず、ホストおよびネットワーク上のどのマシンもゲストの存在を表示したりアクセスしたりすることはできません。
ゲストはホストがアクセスできるすべてのネットワークにアクセスできますが、ゲストはホストやホスト ネットワーク上の他のマシンからは見えず、ホストでさえゲストにアクセスすることはできません。

**仮想マシンとホストの関係: **一方向のアクセスのみが許可されます。仮想マシンはネットワーク経由でホストにアクセスできますが、ホストはネットワーク経由で仮想マシンにアクセスできません。
**仮想マシンとネットワーク内の他のホストとの関係: **一方向のアクセスのみが可能です。仮想マシンはネットワーク内の他のホストにアクセスできますが、他のホストはネットワーク経由で仮想マシンにアクセスできません。
**仮想マシン間の関係: **仮想マシンは相互にアクセスできません。仮想マシンは互いに完全に独立しており、ネットワーク経由で相互にアクセスすることはできません。​

2.2. ブリッジアダプタ(ブリッジモード)

ブリッジ モードは、次のように理解できます。
ホスト ネットワーク カードを介してブリッジを構築し、ネットワークに直接接続します。そのため、仮想マシンにネットワーク内で個別の IP を割り当てることが可能になり、すべてのネットワーク機能はネットワーク内の実際のマシンとまったく同じになります。
ブリッジ モードの仮想マシンの場合は、実際のコンピューターとして考える必要があります。
**仮想マシンとホストの関係: **仮想マシンは実際のネットワーク セグメント内に独立した IP を持っているため、相互にアクセスできます。ホストと仮想マシンは同じネットワーク セグメント内にあり、それぞれの IP を介して相互にアクセスできます。
**仮想マシンとネットワーク内の他のホストの関係: **相互にアクセスできます。また、仮想マシンは実際のネットワーク セグメントで独立した IP を持っているため、仮想マシンとネットワーク内の他のすべてのホストは同じネットワーク セグメントにあり、それぞれの IP を通じて相互にアクセスできます。
**仮想マシン間の関係: **上記と同じ理由で、仮想マシンは相互にアクセスできます。

2.3. 内部(イントラネット モード)

イントラネット モードは、その名前が示すように、内部ネットワーク モードです。
仮想マシンは外部ネットワークから完全に切断され、仮想マシン間の内部ネットワーク モードのみが実装されます。
**仮想マシンとホストの関係: **相互にアクセスできず、同じネットワークに属しておらず、相互にアクセスできません。
**ネットワーク内の仮想マシンと他のホストの関係: **上記と同じ理由により、相互にアクセスできません。
**仮想マシン間の関係: **ネットワークを設定するときに 2 つの仮想マシンに同じネットワーク名が設定されていれば、相互にアクセスできます。上記の構成図に示すように、名前は intnet です。

2.4. ホストオンリーアダプタ(ホストモード)

ホスト モードは比較的複雑なモードであり、使用するにはしっかりとした基本的なネットワーク知識が必要です。これまでのモードで実装されていた機能は、仮想マシンとネットワークカードの設定によってこのモードでも実現できると言えます。
ゲストは、仮想マシン専用のホスト内のネットワーク カードをシミュレートすることがわかります。すべての仮想マシンはこのネットワーク カードに接続されます。このネットワーク カードを設定することで、インターネット アクセスや、ネットワーク カードの共有、ネットワーク カードのブリッジなど、さまざまな機能を実現できます。
**仮想マシンとホストの関係: **デフォルトでは、相互にアクセスできません。両者は同じ IP セグメントに属していません。ホスト専用ネットワーク カードのデフォルトの IP セグメントは 192.168.56.X で、サブネット マスクは 255.255.255.0 です。後続の仮想マシンもこのネットワーク セグメントに割り当てられます。ネットワーク カードの共有、ネットワーク カードのブリッジなどを通じて、仮想マシンとホストは相互にアクセスできるようになります。
**仮想マシンとネットワーク ホストの関係: **デフォルトでは、上記と同じ理由により、相互にアクセスできません。設定により、相互アクセスが可能になります。
**仮想マシン間の関係: **デフォルトでは、仮想マシンは相互にアクセスでき、同じネットワーク セグメント内にあります。​

3. 設定してみましょう!

ソフトウェア環境

  • バーチャルボックス 6.0.22
  • セントロスLinux7

3.1 NATネットワークの設定

NAT ネットワークを設定する目的は、仮想マシンがインターネットにアクセスできるようにすることです。

セットアップする前に仮想マシンをシャットダウンしてください。私は長い間ここで行き詰まっていました。

  1. VirtualBoxのメインコントロールインターフェースで、[管理] – [グローバル設定] – [ネットワーク] – [新しいNATネットワークの追加]をクリックします。
  2. ポップアップダイアログボックスで、[ネットワークCIDR]を[192.168.100.0/24]に設定し、[OK]をクリックします。

下の図に示すように:

画像.png

管理インターフェースで、[設定] – [ネットワーク] – [ネットワークカード1]をクリックし、[接続モード]で[NATネットワーク]を選択し、[インターフェース名]で[NATネットワーク]を選択して、[OK]をクリックします。スクリーンショットは次のとおりです。

画像.png

【起動する】

システムにログインしたら、次を実行します。

# vi /etc/sysconfig/ネットワークスクリプト/ifcfg-enp0s3

[ONBOOT]を[yes]に変更します。具体的な設定は以下のとおりです。

タイプ=イーサネット
PROXY_METHOD=なし
BROWSER_ONLY=いいえ
ブートプロトコル=dhcp
DEFROUTE=はい
IPV4_FAILURE_FATAL=いいえ
IPV6INIT=はい
IPV6_AUTOCONF=はい
IPV6_DEFROUTE=はい
IPV6_FAILURE_FATAL=いいえ
IPV6_ADDR_GEN_MODE=安定したプライバシー
名前=enp0s3
3b8d1c63-5d2e-43d2-9508-6c1ecec961346 の翻訳です。
デバイス=enp0s3
ONBOOT=はい
HWADDR=08:00:27:AF:90:BF

ネットワーク サービスを再起動します。

systemctl ネットワークを再起動

この時点で、インターネットに正常に接続できます。次に示すように、curl を使用して Baidu にアクセスします。

画像.png

ただし、現時点では SSH 経由でサーバーにログインすることはできません。

3.2 ホストオンリーネットワークの設定

セットアップする前に仮想マシンをシャットダウンします。私は長い間ここで罠に陥っていました。

[管理] - [グローバル設定] - [ネットワーク] に、[ホストオンリーネットワーク] タブが表示されます。 VirtualBox をインストールすると、コンピュータの [ネットワークと共有センター] - [アダプター設定の変更] に [VirtualBox ホストオンリーネットワーク] が表示されます。

画像.png

[プロパティ] - [インターネット プロトコル バージョン 4 (TCP/IPv4)] を右クリックすると、IP アドレスが [192.168.56.1] であることがわかります。

画像.png

VirtualBox に戻り、「ホストオンリーネットワークの編集」を選択します。以下が見られます:

画像.png

画像.png

画像.png

[設定] – [ネットワーク] – [ネットワークカード2] – [ネットワーク接続を有効にする]、[接続方法]で[ホストオンリーネットワーク]を選択します。

画像.png

コンピュータの電源を入れます。

次のコマンドを実行します。

ネットワークカード構成をコピーする

cp ifcfg-enp0s3 ifcfg-enp0s8
viifcfg-enp0s8 より

[HWADDR] 行を削除し、[UUID] 行を削除し、[IPADDR] と [NETMASK] を追加し、[DEVICE] を [enp0s8] に、[BOOTPROTO] を [static] に変更します。

タイプ=イーサネット
PROXY_METHOD=なし
BROWSER_ONLY=いいえ
BOOTPROTO=静的
DEFROUTE=はい
IPV4_FAILURE_FATAL=いいえ
IPV6INIT=はい
IPV6_AUTOCONF=はい
IPV6_DEFROUTE=はい
IPV6_FAILURE_FATAL=いいえ
IPV6_ADDR_GEN_MODE=安定したプライバシー
名前=enp0s8
UUID=3b8d1c63-5d2e-43d2-9508-6c1ecec96146
デバイス=enp0s8
ONBOOT=はい
IPアドレス=192.168.56.42
ネットマスク=255.255.255.0

ネットワーク サービスを再起動します。

systemctl ネットワークを再起動

この時点で、xshell を使用して仮想マシンに接続し、以下に示すように接続を構成できます。

画像.png

下の図に示すように、接続は成功しています。

画像.png

やめてよ!

参照する

https://www.cnblogs.com/dee0912/p/5470700.html
https://www.cnblogs.com/york-hust/archive/2012/03/29/2422911.html

VirtualBox CentOS7 で NAT+ホストオンリーネットワークを使用する際の落とし穴に関するこの記事はこれで終わりです。VirtualBox ホストオンリーネットワークの詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • VirtualBox 仮想マシン ネットワーク環境の分析と構築の詳細な説明 - NAT、ブリッジ、ホストオンリー、内部、ポート マッピング

<<:  ウェブサイトのビジュアルデザイン(画像とテキスト)における情報伝達の役割と方法

>>:  MySQLデータクエリが多すぎるとOOMが発生するかどうかについての簡単な議論

推薦する

MySQL 8.0.15 winx64 解凍版のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 8.0.15 winx64解凍版のインストールと設定方法を紹介します。具体...

開発をスピードアップできる VueUse ライブラリ 5 つ (まとめ)

目次VueUse にはどのようなユーティリティがありますか? VueUseをVueプロジェクトにイン...

React構成サブルーティングの実装

1. コンポーネント First.js にはサブコンポーネントがあります。 './Admin...

JavaScriptの再帰の詳細

目次1. 再帰とは何ですか? 2. 再帰を使って数学の問題を解く1. 1 * 2 * 3 * 4 …...

ビジュアルデザイナーの成長の3つの段階のまとめ

この本「グラフィックデザイナーとして成長する」は多くの人が読んでおり、私もオリジナルの PDF 版を...

MySQL 8.0.17 のインストールと使用方法のチュートリアル図

前面に書かれた過去および現在のプロジェクトで最も一般的に使用されているリレーショナル データベースは...

Echarts は 1 つのグラフ内で異なる X 軸を切り替える機能を実装します (サンプル コード)

レンダリング下の画像のような効果を実現したい場合は、読み続けてアニメーション画像に直接進んでください...

Mysql の読み取り/書き込み分離期限切れに対する一般的な解決策

MySQLの読み書き分離の落とし穴読み取りと書き込みの分離の主な目的は、メイン データベースの負荷を...

MySQL (5.6 以下) の JSON 解析の詳細な例

MySQL(5.6以下)はjsonを解析します #json 解析関数 DELIMITER $$ `j...

Linux 上の Tomcat で MySQL にデータを挿入するときに中国語の文字化けが発生する問題を解決する

1. 問題Windows 上の Eclipse を使用して開発されたプロジェクトは Windows ...

CSS3 画像の境界線を学ぶのに役立つ記事

CSS3 border-image プロパティを使用すると、要素の周囲に画像の境界線を設定できます。...

フロントエンドのパフォーマンス最適化 - フロントエンドエンジニアが話し合うべき問題点

はじめに<br />前回の記事「私の CSS アーキテクチャ コンセプト」では、公園で友...

MySQLデータベースの操作とメンテナンスのデータ復旧方法

これまでの 3 つの記事では、論理バックアップと物理バックアップを含む、MySQL データベースの一...

LinuxサーバーにGRUBをインストールする手順

Linux サーバーに GRUB をインストールする方法クラウド移行ツールを使用して、CentOS ...

XHTML: フレーム構造タグ

フレーム構造タグ <frameset></frameset>フレームを使用す...