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が発生するかどうかについての簡単な議論

推薦する

メタを使用してトラフィックキャッシュをキャンセルし、ページにアクセスするたびにページを更新して簡単にデバッグできるようにします。

コードをコピーコードは次のとおりです。 <!-- ブラウザがローカル キャッシュからページにア...

CSS3 クリアフロートメソッドの例

1. 目的この記事を通じて、誰もがフロートをクリアする原理と方法を理解し、最終的にこの記事が最良であ...

Ubuntu Server 16.04 MySQL 8.0 のインストールと設定のグラフィックチュートリアル

Ubuntu Server 16.04 MySQL 8.0 のインストールと設定のグラフィックチュー...

イメージを再構築せずにDockerにポートを動的に追加する方法

操作中に Docker コンテナの公開ポートを変更または追加する必要がある場合がありますが、実行中の...

PostgreSQL マテリアライズドビュープロセス分析

この記事は主にPostgreSQLマテリアライズドビューのプロセス分析について紹介します。サンプルコ...

nginx での listen ディレクティブの例の分析

プロットレビュー前回の記事では、ロケーション命令の解析プロセスを分析しました。この内容を簡単に確認し...

Nginx サーバーの https 設定方法の例

Linux: Linux バージョン 3.10.0-123.9.3.el7.x86_64 ngin...

Web プロジェクトでの SQL インジェクションの防止

目次1. SQLインジェクションの概要2. SQLインジェクション攻撃の全体的な考え方SQLインジェ...

JS はシンプルな todoList (メモ帳) 効果を実装します

メモ帳プログラムは、HTML + CSS + JavaScript の 3 つの主要なフロントエンド...

MySQL で固定されていない位置から文字列要素を抽出する方法

序文注: テストデータベースのバージョンはMySQL 8.0ですテストデータ: テーブルzqs(id...

docker tagとdocker pushの使い方の詳しい説明

Dockerタグの詳しい説明docker tag コマンドの使い方と、ローカルイメージを daocl...

Vue3 非同期データ読み込みコンポーネントサスペンスの使い方

目次序文コンポーネントの作成要約する序文Vue3 には多くの注目すべき機能が追加されましたが、サスペ...

Linuxの同時実行は簡単です。このようにするだけです

並行処理関数 i の `grep server /etc/hosts | awk '{pri...

VueはAmapを使用して都市の位置特定を実現

この記事では、Amapを使用して都市の位置特定を実現するVueの具体的なコードを参考までに共有します...

line-height=height要素の高さだがテキストが垂直方向に中央揃えされない問題を解決する

まず、行の高さが要素の高さと等しい場合にテキストが垂直方向に中央揃えにならない理由を説明します。実際...