使用虛擬機安裝linux后會遇到各種奇葩問題,特別是對於小白來說,比較苦惱。現在我把我遇到的問題匯總出來,作為經驗進行分享。
1.ping 命令沒反應(防火牆問題)
一般情況下,只要虛擬機上linux的IP地址和windows本機的IP地址配置成同一個網段,是可以互相ping通的。比如我的windows的IP地址為192.168.1.103/24,centos6.5的IP地址為192.168.1.6/24,centos7的IP地址為192.168.1.7/24,正常情況,這三個IP之間應該能互相ping通。但是發現windows上能ping 通linux,linux不能ping 通windows。具體來說就是在windows上可以ping 6和7,但是在6上只有ping 7有反應,同樣在7上ping 6有反應。沒反應就是說你執行ping后沒有收到任何響應,就算是host unreachable這樣的回顯都沒有。在這種情況下,就可以大概判定是防火牆問題。在我們這個例子中,是在windows上開啟了防火牆,可以在控制面板-系統和安全-關閉防火牆來解決。如果是遇到相反的情形,也就是說linux上打開了防火牆,可以用service iptables stop關閉防火牆,同樣可以搞定。
2.虛擬機聯網的ip地址及網絡配置。
在centos上需要連接外網來使用yum服務,以及用wget下載其他軟件的安裝包。
(1)如果你的虛擬機軟件是vmware,網絡連接一般有3種:nat模式,bridge模式和host-only模式。(對應的網卡是vmnet0,1和8,具體的大家可以在網上搜索 ),我們在網絡設置里面選擇nat模式,然后在編輯-虛擬網絡編輯器里面選擇nat模式的vmnet8網卡,在這兒的配置就相當於一個交換機,ip需要設置成一個網段,比如192.168.1.0/24,默認網關是192.168.1.1(有的人設置成一個具體的ip地址會不停的報錯,報錯內容忘記了大概就是說ip地址沖突,無效等)。選擇默認的網絡地址分配為dhcp,點擊確定就可以了。這時候我們在windows中的網絡和共享中心,會出現一個vmnet8的網卡,我們把它的地址設置成自動獲取就可以了,在windows上我們可以用ipconfig命令,查看vmnet8的ip地址是否獲取成功。如果獲取成功會得到一個192.168.1.0/24網段的地址,有時候是192.168.1.2,這個不確定。最后一步需要設置linux上的ip地址,你可以把ip地址設置成192.168.1.3或者其他的只要是192.168.1.0/24這個網段又不和前面的ip地址相同就行,默認網關設置成192.168.1.1。在linux上可以用ifconfig命令查看ip是否配置成功。這時候你就可以使用ping命令進行測試,如果ping命令有問題可以參照第一部分的"ping命令沒反應"的解決方案。ping命令測試通過以后,我們一般還要讓DNS服務正常工作,你使用ping www.baidu.com做測試,就可以知道DNS是否正常,一般情況下,如果不正常了,你可以把linux上的DNS地址設置成和默認網關一樣的地址,192.168.1.1,是不是很簡單呢。
(2)如果你的虛擬機軟件是windows10自帶的hyper-v (我現在就用的這個虛擬機軟件)。具體這個軟件怎么開啟,網上有介紹。我只強調兩點,一個是在控制面板,打開或關閉windows功能里面開啟hyper-v功能,一個是在開機以后的bios設置里面開啟虛擬化服務。回歸正題,在hyper-v上是通過虛擬交換機管理器來設置網絡的。
它有三種模式:外網,內網和專網。
我們選擇外網,然后選擇一個網卡進行關聯(可以是有線的也可以是無線的),就看你平常用哪個,然后起一個名字確定就可以了(比如sharenet)。
這時候就會發現windows的網絡和共享中心多了一個叫sharenet的虛擬網卡,地址設置的是自己獲取,還多了一個網橋。
這時候可以在windows上用ipconfig來查看當前sharenet虛擬網卡的ip地址,我的ip地址獲取到的是為192.168.1.103/24,默認網關的地址為192.168.1.1。這時候,要把linux上的網卡設置為sharenet,以centos7為例,打開設置,網絡適配器選擇sharenet確定。
我們可以把linux的ip地址進行配置,配置成同一網段的,比如我的centos6.5配置成192.168.1.6/24,centos7的ip地址配置成192.168.1.7/24,網關都是192.168.1.1,DNS地址也設置成192.168.1.1。在linux上可以用ifconfig命令查看ip是否配置成功。然后三台主機就可以進行ping測試,測試成功后,在linux上可以ping www.baidu.com看看DNS服務是否正常,這時候就可以訪問外網了。
tips:在Linux上進行ping測試的時候,ping命令會一直收到回顯包,想要停止可以用命令ctrl+c。