1. 程式人生 > >windows10(本機)與VirtualBox中CentOS7(虛擬機器)互相訪問總結

windows10(本機)與VirtualBox中CentOS7(虛擬機器)互相訪問總結

先把我這裡的環境說下:

本機(windows10),釋出了一個tomcat服務:http://192.168.0.106:8080/axis/services/VPMService?wsdl

如下圖:服務能正常訪問

在VirtualBox中的CentOS7中有兩個賬戶,其中分別是roo和burns,root即系統管理員賬戶,而burns即普通賬戶,在root的/usr/VPM-Tomcat6.0.29/目錄有tomcat,如下圖。

啟動centos的tomcat,並在centos中訪問。

通過ifconfig 檢視centos的網路地址有兩個:

發現有兩個ip:192.168.122.1和10.0.2.4,兩個ip,都能訪問到centos的tomcat的服務,

imageimage

而且centos還能訪問本機的tomcat的服務和外網,如:百度:http://www.baidu.com

imageimage

VirtualBox設定的網路是NAT

image

在本機能訪問到本機的tomcat服務及外網:

image

但是本機卻訪問不了virtualBox中centos的comcat釋出的服務,

怎麼解??

針對上面的問題,今天中午把問題解決了:

1 問題描述 在 VirtualBox 中安裝好 centos7 後,發現使用 ping 命令測試連線外網 IP 地址,會報錯。具體如下: 2 分析 2.1 檢視 VirtualBox 設定 開啟 VirtualBox 中這臺虛擬機器的設定,發現預設的連線方式是“網路地址轉換(NAT)”。這種方式下,虛擬機器可以訪問本機,也可以訪問外網。這裡的設定沒問題。
2.2 檢視 centos7 網路設定 使用 nmcli 命令,檢視當前虛擬機器的所有網路基本資訊: nmcli connection show 具體引數說明如下:
引數名稱 說明
NAME 連網代號,通常與 DEVICE 一樣
UUID 識別碼
TYPE 網絡卡的型別;802-3-ethernet 就是乙太網
DEVICE 網絡卡名稱
因為我本機開了無線網路,所以虛擬機器也跟著有了無線和有線的乙太網。我們繼續使用 nmcli 命令,看看 enp0s3 的有線網路配置: nmcli connection show enp0s3
  • 這裡的 enp0s3 是 centos7 自動生成的帶隨機數的網絡卡名稱,每臺機都不一樣。
很明顯,這裡的 IP 地址和閘道器配置的都不正確,原因找到啦。O(∩_∩)O~ 3 解決問題
  1. 設定 centos7 虛擬機器的網路獲取方式為自動獲取 IP(這種方法最方便啦 O(∩_∩)O~)
nmcli connection modify enp0s3 \connection.autoconnect yes \ipv4.method auto
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3
  1. 上面的命令只是修改了設定檔,還要使用 nmcli 的 up 引數讓它實際生效:
nmcli connection up enp0s3
  • 1
  • 1
  1. 實際測試
報錯啦,ping 外網 IP,出現 Destination Host Unreachable 的錯誤! 一查,發現 virtualBox 的 NAT 方式下,centos7 並不能使用自動獲取 IP 的連網方式,看來必須換成橋接模式! 到 virtualBox 中換成橋接模式後,立即就生效,馬上再測試下: 成功啦,我們的 centos7 虛擬機器終於連上外網啦 O(∩_∩)O~ 0 CentOS 7系統配置上的變化解析 nmcli和其他網路設定 三、nmcli和其他網路設定 nmcli的功能要強大、複雜的多 [[email protected]CentOS7 ~]# nmcli help Usage: nmcli [OPTIONS] OBJECT { COMMAND | help } OPTIONS   -t[erse]                                  terse output   -p[retty]                                  pretty output   -m[ode] tabular|multiline                  output mode   -f[ields] <field1,field2,...>|all|common  specify fields to output   -e[scape] yes|no                          escape columns separators in values   -n[ocheck]                                don't check nmcli and NetworkManager versions   -a[sk]                                    ask for missing parameters   -w[ait] <seconds>                          set timeout waiting for finishing operations   -v[ersion]                                show program version   -h[elp]                                    print this help OBJECT   g[eneral]      NetworkManager's general status and operations   n[etworking]    overall networking control   r[adio]        NetworkManager radio switches   c[onnection]    NetworkManager's connections   d[evice]        devices managed by NetworkManager OBJECT和COMMAND可以用全稱也可以用簡稱,最少可以只用一個字母,建議用頭三個字母。OBJECT裡面我們平時用的最多的就是connection和device,這裡需要簡單區分一下connection和device。 device叫網路介面,是物理裝置 connection是連線,偏重於邏輯設定 多個connection可以應用到同一個device,但同一時間只能啟用其中一個connection。 這樣的好處是針對一個網路介面,我們可以設定多個網路連線,比如靜態IP和動態IP,再根據需要up相應的connection。 上篇說了,/etc/udev/rules.d/70-persistent-net.rules 檔案沒有了,新新增的網絡卡NetworkManager自動識別。我們現在試試,給Virtualbox虛擬機器增加第二塊網絡卡,虛擬機器啟動後直接可以看到並且生效了。 [[email protected] ~]# nmcli con show NAME                UUID                                  TYPE            DEVICE Wired connection 1  0c451785-b098-4c5c-994d-9107171b439d  802-3-ethernet  enp0s8 enp0s3              295e1841-0ff3-4db9-8800-4e25fc2944da  802-3-ethernet  enp0s3 “Wired connection 1”是新增的網路連線,對應的網路介面叫enp0s8; “enp0s3”是最初的網路連線,預設與網路介面同名。 我們可以用nmtui把兩個連線改成我們熟悉的名字(nmcli也能,但比較麻煩哦)。改完了看看連線: [[email protected] ~]# nmcli con show NAME  UUID                                  TYPE            DEVICE eth1  0c451785-b098-4c5c-994d-9107171b439d  802-3-ethernet  enp0s8 eth0  295e1841-0ff3-4db9-8800-4e25fc2944da  802-3-ethernet  enp0s3 這樣就舒服多了! 看看裝置: [[email protected] ~]# nmcli dev show enp0s3 GENERAL.DEVICE:                        enp0s3 GENERAL.TYPE:                          ethernet GENERAL.HWADDR:                        08:00:27:15:35:D2 GENERAL.MTU:                            1500 GENERAL.STATE:                          100 (connected) GENERAL.CONNECTION:                    eth0 GENERAL.CON-PATH:                      /org/freedesktop/NetworkManager/ActiveConnection/4 WIRED-PROPERTIES.CARRIER:              on IP4.ADDRESS[1]:                        ip = 192.168.150.110/24, gw = 192.168.150.254 IP4.DNS[1]:                            192.168.150.254 IP6.ADDRESS[1]:                        ip = fe80::a00:27ff:fe15:35d2/64, gw = :: [[email protected] ~]# [[email protected] ~]# nmcli dev show enp0s8 GENERAL.DEVICE:                        enp0s8 GENERAL.TYPE:                          ethernet GENERAL.HWADDR:                        08:00:27:98:D1:B7 GENERAL.MTU:                            1500 GENERAL.STATE:                          100 (connected) GENERAL.CONNECTION:                    eth1 GENERAL.CON-PATH:                      /org/freedesktop/NetworkManager/ActiveConnection/3 WIRED-PROPERTIES.CARRIER:              on IP4.ADDRESS[1]:                        ip = 10.0.3.15/24, gw = 10.0.3.2 IP4.DNS[1]:                            10.0.3.2 IP6.ADDRESS[1]:                        ip = fe80::a00:27ff:fe98:d1b7/64, gw = :: [[email protected] ~]# 但是試試用連線名查裝置呢? [[email protected] ~]# nmcli dev show eth0 Error: Device 'eth0' not found. 用裝置名查連線也是一樣出錯: [[email protected] ~]# nmcli con show enp0s3 Error: enp0s3 - no such connection profile. 這回能看清楚了吧?懂得了連線和裝置的區別,在一些指令幫助裡面有的引數需要connection,有的需要device,就不會糊塗了。 需要注意的是,enp0s3裝置對應的連線名改為eth0,但對應的ifcfg檔案並沒有改名,我們改改試試,改之前先備份原配置檔案到其他目錄(注意,不能備份到network-scripts目錄!)。 [[email protected] network-scripts]# cat ifcfg-enp0s3 TYPE=Ethernet BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=eth0 UUID=295e1841-0ff3-4db9-8800-4e25fc2944da ONBOOT=yes IPADDR0=192.168.150.110 PREFIX0=24 GATEWAY0=192.168.150.254 DNS1=192.168.150.254 HWADDR=08:00:27:15:35:D2 [[email protected] network-scripts]# [[email protected] network-scripts]# cp ifcfg-enp0s3 /root/ [[email protected] network-scripts]# mv ifcfg-enp0s3 ifcfg-eth0 [[email protected] network-scripts]# [[email protected] network-scripts]# systemctl restart network [[email protected] network-scripts]# 沒有問題,配置檔案改名成功,強迫症又一次勝利了,耶! 我們還可以看到,ifcfg-eth0裡面沒有引數指明裝置enp0s3,唯一與裝置enp0s3相對應的是MAC地址(HWADDR 08:00:27:15:35:D2)。 現在試試增加一個針對新網路介面enp0s8的連線,現有連線是 eth1: [[email protected] network-scripts]# cat ifcfg-eth1 HWADDR=08:00:27:98:D1:B7 TYPE=Ethernet BOOTPROTO=dhcp DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=eth1 UUID=0c451785-b098-4c5c-994d-9107171b439d ONBOOT=yes 嗯,是自動獲得IP的。 我們新建一個連線eth1-1,分配固定IP,用nmtui可以很容易的建立 [[email protected] ~]# nmcli con show NAME    UUID                                  TYPE            DEVICE eth1-1  ef5c3fbc-f07a-4d6e-9f4d-83f239ffc2e9  802-3-ethernet  --     eth1    0c451785-b098-4c5c-994d-9107171b439d  802-3-ethernet  enp0s8 eth0    295e1841-0ff3-4db9-8800-4e25fc2944da  802-3-ethernet  enp0s3 只是增加了一個連線,其他的沒有變化。 我們啟動新連線 eth1-1 [[email protected] ~]# nmcli con up eth1-1 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2) [[email protected] ~]# [[email protected] ~]# nmcli con show NAME    UUID                                  TYPE            DEVICE eth1-1  ef5c3fbc-f07a-4d6e-9f4d-83f239ffc2e9  802-3-ethernet  enp0s8 eth1    0c451785-b098-4c5c-994d-9107171b439d  802-3-ethernet  --     eth0    295e1841-0ff3-4db9-8800-4e25fc2944da  802-3-ethernet  enp0s3 [[email protected] ~]# [[email protected] ~]# nmcli -t -f IP4.ADDRESS dev show enp0s8 IP4.ADDRESS[1]:ip = 10.0.3.110/24, gw = 10.0.3.2 “nmcli -t -f IP4.ADDRESS dev show enp0s8” 是以指令碼友好的方式顯示網路介面資訊。 現在可以很明顯的看到,將連線eth1-1 up了之後,eth1-1佔據了原來由eth1佔據的DEVICE enp0s8,並且IP地址已經是指定的10.0.3.110/24 了。 [[email protected] network-scripts]# cat ifcfg-eth1-1 TYPE=Ethernet BOOTPROTO=none IPADDR0=10.0.3.110 PREFIX0=24 GATEWAY0=10.0.3.2 DNS1=10.0.3.2 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=no NAME=eth1-1 UUID=ef5c3fbc-f07a-4d6e-9f4d-83f239ffc2e9 DEVICE=enp0s8 ONBOOT=yes ifcfg-eth1-1檔案裡沒有HWADDR引數,但是多了一個DEVICE引數,等於enp0s8,你可以對比一下ifcfg-eth1看看區別在哪。 連線的配置檔案 ifcfg-*,可以用 DEVICE 指定裝置名,也可以用HWADDR指定裝置的MAC地址,最終結果都一樣的指向某個裝置(網路介面)。 我們再試試用nmcli增加連線: [[email protected] ~]# nmcli con add con-name eth1-2 ifname enp0s8 type ethernet ip4 10.0.3.120/24 gw4 10.0.3.2 Connection 'eth1-2' (468815f5-ce97-43bd-904a-3078e2e59fec) successfully added. [[email protected] ~]# [[email protected] ~]# nmcli con show NAME    UUID                                  TYPE            DEVICE eth1-1  ef5c3fbc-f07a-4d6e-9f4d-83f239ffc2e9  802-3-ethernet  enp0s8 eth1    0c451785-b098-4c5c-994d-9107171b439d  802-3-ethernet  --     eth0    295e1841-0ff3-4db9-8800-4e25fc2944da  802-3-ethernet  enp0s3 eth1-2  468815f5-ce97-43bd-904a-3078e2e59fec  802-3-ethernet  --     [[email protected] ~]# [[email protected] ~]# nmcli con up eth1-2 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/3) [[email protected] ~]# [[email protected] ~]# nmcli con show NAME    UUID                                  TYPE            DEVICE eth1-1  ef5c3fbc-f07a-4d6e-9f4d-83f239ffc2e9  802-3-ethernet  --     eth1    0c451785-b098-4c5c-994d-9107171b439d  802-3-ethernet  --     eth0    295e1841-0ff3-4db9-8800-4e25fc2944da  802-3-ethernet  enp0s3 eth1-2  468815f5-ce97-43bd-904a-3078e2e59fec  802-3-ethernet  enp0s8 [[email protected] ~]# [[email protected] ~]# nmcli -t -f IP4.ADDRESS dev show enp0s8 IP4.ADDRESS[1]:ip = 10.0.3.120/24, gw = 10.0.3.2 [[email protected] ~]# 再看看新的ifcfg檔案: [[email protected] network-scripts]# cat ifcfg-eth1-2 TYPE=Ethernet BOOTPROTO=none IPADDR0=10.0.3.120 PREFIX0=24 GATEWAY0=10.0.3.2 DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=eth1-2 UUID=468815f5-ce97-43bd-904a-3078e2e59fec DEVICE=enp0s8 ONBOOT=yes [[email protected] network-scripts]#  現在up的連線是eth1-2,網路介面enp0s8的IP是10.0.3.120 如果重新up連線eth1-1,nmcli con up eth1-1,網路介面enp0s8的IP變成了10.0.3.110 如果重新up連線eth1,  nmcli con up eth1,  網路介面enp0s8的IP就回到原來自動獲得的值10.0.3.15 所以,對一個網路介面設定不同的連線,可以快速的切換不同的網路配置,這個真的滿厲害的。 編輯連線 用nmtui編輯連線後,ifcfg檔案也會有相應的改動;手工修改ifcfg後,nmtui中也能看到。 但是,不論用nmtui還是直接修改ifcfg檔案,想讓新的配置生效,我們需要load連線配置檔案並重新up連線。 舉例,我們編輯ifcfg-eth1-1,把IP改為10.0.3.111,然後執行nmcli con reload 或 nmcli con load /etc/sysconfig/network-scripts/ifcfg-eth1-1 結果如下:  [[email protected] ~]# nmcli con load /etc/sysconfig/network-scripts/ifcfg-eth1-1 [[email protected] ~]# nmcli con up eth1-1 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2) [[email protected] ~]# ip addr show enp0s8 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000     link/ether 08:00:27:98:d1:b7 brd ff:ff:ff:ff:ff:ff     inet 10.0.3.111/24 brd 10.0.3.255 scope global enp0s8

相關推薦

windows10VirtualBoxCentOS7(虛擬機器互相訪問總結

先把我這裡的環境說下: 本機(windows10),釋出了一個tomcat服務:http://192.168.0.106:8080/axis/services/VPMService?wsdl 如下圖:服務能正常訪問 在VirtualBox中的CentOS7中有兩個賬戶,其

VirtualBoxUbuntu虛擬機器Host雙向網路可訪問配置

虛擬機器未啟動時,為虛擬機器配置兩塊網絡卡:第一塊:Bridged Adapter橋接模式。實現主機Host可以訪問虛擬機器。 看到有文章說單單使用這種連線方式可以同時做到虛擬機器訪問主機,但是我設定後,然而並不能。第二塊:網路地址轉換(NAT) 連線方式,實現虛擬機器中訪問

VM下如何複製一臺虛擬機器便於叢集下快速建立多臺虛擬機器

需求 假設我現在想要搭一個三臺伺服器的zookeeper叢集,但是現在只有兩臺Linux的虛擬機器,我想在已有的虛擬機器上快速複製一臺新的虛擬機器。 現在,我用zookeeper02複製出zookeeper03出來。 操作步驟 1》在已有的虛擬機器下

VMware/VirtualBox 設定虛擬機器橋接到雙網絡卡伺服器的某一個網絡卡

實驗室伺服器是雙網絡卡的,一塊接有內網,一塊接有外網。在伺服器上設定代理,區域網內的機器都共享上網。 但是伺服器系統是Server 2008,本人想使用Linux,不想換系統,於是安裝了一個虛擬機器,在虛擬機器上安裝了Linux。 為了實現在外網也能夠通過SSH連上虛擬機器

VMwareCentOS7虛擬機器擴容以及縮小swap

根據蒐集的資料安裝測試並在安裝測試過程中整理的文件,如有不足希望不吝賜教。 目錄 一、在VMware中分配空間 二、CentOS7內部分配 1.檢視當前磁碟空間 2.對新增的硬碟做新增分割槽 3.檢視分割槽型別並建立檔案系統 4.調整檔案系統大小 三、縮小sw

openstack有關虛擬機器cpu繫結總結

The flavor extra specs will be enhanced to support twonew parameters hw:cpu_policy=shared|dedicated hw:cpu_threads_policy=avoid|separate|isolate|preferIf

Virtualbox 安裝centos7虛擬機器

Virtualbox 安裝centos7虛擬機器 一,下載centos7 下載地址:https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/isos/x86_64/ ![](https://img2020.cnblogs.com/blog/2040890/20

5 在springboot使用ElasticsearchTemplate 操作ElasticSearch和遠端伺服器

第三篇和第四篇分別介紹了ElasticSearch的http請求命令和對java api的封裝。像封裝好的ES java api可以使用於普通的java專案裡,來簡化一些原生的命令。 springboot作為一個集成了N多功能的框架,自然不需要我們自己來封裝工

在Xshell使用sz、rz進行和遠端主機虛擬機器之間檔案的傳輸

藉助XShell,使用linux命令sz可以很方便的將伺服器上的檔案下載到本地,使用rz命令則是把本地檔案上傳到伺服器。     其中,對於sz和rz的理解與記憶我用瞭如下的方法(很多時候容易搞混):     sz中的s意為send(傳送),告訴客戶端,我(伺服器

物理遠端伺服器或者虛擬機器實現檔案複製SCP

1.使用SCP命令實現 參考:https://blog.csdn.net/yhblog/article/details/83927141 2.使用filezilla工具實現檔案複製 注:使用filezilla傳輸前需要填寫遠端伺服器ip,使用者名稱,密碼(填寫使用者名稱最好填寫要用

TP路由和Apache的相關配置wamp整合環境

本地配置wamp整合環境 部署一個tp專案 www.dev.com可以訪問,www.dev.com/index/index/index 就不能訪問  找到apache的安裝目錄下的conf下的httpd.conf檔案,開啟檔案修改 LoadModule rewrite_module m

DVWA可以在訪問,但是無法在區域網虛擬機器其他電腦訪問,提示403,解決,轉自SINA...

修改apache配置檔案httpd.conf 找到: Options FollowSymLinksAllowOverride NoneOrder deny,allowDeny from allSatisfy all 改為 Options FollowSymLinksAl

使用JavaScript或jQuery平滑滾動HTML書籤

通過HTML書籤,您可以使用錨鏈接快速轉到頁面上的任何部分,例如以下示例: 1 2 3 4 <a href="section1">Jump to Section 1</a> " "

ThinkPad E450 uefi模式下行動硬碟安裝Ubuntu14.04硬碟是win10

thinkpad E450 希捷500G行動硬碟 寫有unbuntu映像的u盤啟動盤 本次ubuntu安裝的主要問題有: 1、thinkpad E450 進入bios並設定bios,使能夠從u盤啟動 2、啟動模式要設定成uefi,而不是leagcy 3、行動硬

linux指令碼傳輸檔案到遠端

expect -c "    set timeout 10    spawn scp ××××××.tar.bz2 [email protected]:/    expect yes/no

Java物件JVM Java物件在Java虛擬機器的引用訪問方式

Java物件與JVM(三) Java物件在Java虛擬機器中的引用訪問方式         在前面兩篇文章中瞭解到Java物件例項是如何在HotSpot虛擬機器的Java堆中建立的,以及建立後的記憶體佈局是怎樣的。 下面我們詳細瞭解在Java堆中的Java物件是如何訪

stm32學習之錯誤匯總僅僅就我學習過程所遇到的

com 支持 解決 bug 9.png ash cpu .cn src 1.Error:Flash Download Failed-"Cortex-M3" 出現這處問題通常是MDK中的Flash的編程算法沒有配置或沒有配置正確,通俗的講,就是我們沒有配置好下載的環境,導致程

獲取 window任務欄已經打開應用程序窗口也就是任務管理器前臺進程的圖標

public name rgs ges pub 集合 icon pid 完整 獲取 window任務欄已經打開應用程序窗口(也就是任務管理器中前臺進程)的圖標 1.功能描述 獲取到window任務欄已經打開的應用程序的窗口圖標。如下:(要獲取到QQ,瀏覽器,文件夾的圖

virtualboxcentos虛擬網絡配置

get 區別 地址轉換 nat alt 網絡 橋接 img 使用   本文講述的是如何在Oracle VM VirtualBox安裝的CentOS虛擬機中進行網絡配置,使得虛擬機可以訪問宿主主機,也能訪問外網,宿主主機可以訪問虛擬機,虛擬機之間也可以相互訪問。   在Vir

線索二叉樹實例前序創建,序遍歷--2018.5.15

ID 中序遍歷 char turn 先序 AD 線索 lib data 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 typedef enum 5 { 6 Link,