虛擬機器聯網與DNS域名解析
阿新 • • 發佈:2018-11-23
1. 使用虛擬機器訪問百度
首先,我們要將desktop虛擬機器設定為路由器(eth0 ip:172.25.254.132 eth1 ip:172.25.55.251),server虛擬機器(eth0 ip=172.25.254.232)通過路由器可以訪問主機(ip=172.25.55.250)。詳細請看我的部落格:linux的網路設定4.設定路由的操作。
接下來我們要做以下設定:
- 第一步:在作為路由器(有兩個ip)的虛擬機器中,在與主機在同一網段的ip(172.25.55.251)中設定:vim /etc/sysconfig/network-scripts/ifcfg-west
- 第二步:在主機中設定防火牆。
關閉虛擬機器服務,再開啟虛擬機器服務。
- 第三步:設定核心的路由功能
- 第四步:用主機ping百度(如圖1),我們可以看到百度的ip,在虛擬機器我們ping ip(如圖2)可以ping通則設定成功。因為虛擬機器中沒有DNS域名解析。
圖1
圖2 - 第五步:此時作為路由的虛擬機器desktop可以訪問百度,ping 百度ip。要使server虛擬機器也可以,在desktop虛擬機器中做以下操作。
desktop虛擬機器(node)可以ping 172.25.55.250(主機)與ping 182.232.231.172(百度)
- 問題一:如果虛擬機器可以ping通主機,主機可ping通百度,但是虛擬機器不能ping通百度,則執行sysctl -p命令,命令返回如圖3所示,則說明此功能正常。若無返回,則進行圖1所示操作檢視核心的路由功能,要使命令返回為net.ipv4.ip_forward=1才能解決這個問題。在sysctl.conf檔案中的修改如圖2所示。
圖1
圖2
圖3 - 問題二:同一網段ping不通,可能時網絡卡有問題。我們可以刪除網絡卡,再建立新的網絡卡。刪除網絡卡時要注意出問題的網絡卡是哪個,
刪除網絡卡後再新增網絡卡:
- 問題三:主機ping不到百度。網路出現問題,可重聯wifi。如下圖所示,ping不到百度後,我們可以使用route -n命令檢視主機是否聯網(是否有閘道器),如果沒有閘道器,則說明主機聯網有問題。重聯網路後,檢視閘道器,再次聯網。
2.DNS域名解析
通過上面的操作我們發現用主機我們可以直接ping www.baidu.com,但是虛擬機器ping百度時不能使用域名,只能ping 183.232.231.172。這是因為主機中有域名解析,可將域名轉為ip,而虛擬機器中沒有。DNS提供域名解析服務,我們可以在虛擬機器中設定DNS域名解析。
- 方法一:
在要設定的虛擬機器(我選取的是作為路由的desktop虛擬機器)下做以下操作:
vim /etc/hosts (本地解析檔案),我們將知道的域名和ip記錄進去。(如圖2)。我們可以在圖一中看到在設定DNS之前,我們是使用ping 183.232.231.172來連線百度,設定DNS後我們可以直接ping www.baidu.com。
/etc/hosts檔案中要寫的內容:
- 方法二
vim /etc/resolv.conf (DNS導向檔案),新增nameserver 114.114.114.114(如下圖)可以幫助我們進行域名解析。
- 優先順序
(1)預設本地解析檔案優先順序高與DNS導向檔案,可檢視/etc/nsswitch.conf檔案(如下圖)
(2)我們可以通過設定/etc/nsswitch.conf檔案改變優先順序。
此時,我們可以看到我們ping www.baidu.com時,ip不是我們之前在本地解析檔案中設定的183.232.231.172,而是183.232.231.173。
當我們網路是dhcp時,我們在vim /etc/resolv.conf檔案中輸入的東西,更新網路後會消失,可在寫ip的檔案中加PEERDNS=no.
3. nmcli
從下圖中我們可以看到nmcli命令後面可以操作的字元有那些。通過Tab補齊鍵可以幫我們瞭解字元後可跟的字元和引數有哪些,讓我們對此命令有個大致瞭解,方便操作。或者通過man nmcli ,nmcli --help。
nmcli device disconnect eth0斷開了eth0的連線,此時我們檢視不到eth0的ip,重新連線後,可以檢視eth0的ip。
我們可以通過下圖的語句來設定ip。
nmcli connection delete westos,此時檢視ip會發現eth1沒有ip。
modify意為修改,下面這條語句是修改ip使用。