最近在virtualbox里搭了一個centos7的虛擬機,但是網路這一塊總是有問題。 單網卡下的問題: 1.當我配置連接方式為NAT網路地址轉換的時候,虛擬機可以訪問外網。但是在網路地址轉換的情況下虛擬機是沒有外部可以訪問的IP,在虛擬機上運行的應用如果想在外部訪問,需要再配置埠轉發。 2.當我 ...
最近在virtualbox里搭了一個centos7的虛擬機,但是網路這一塊總是有問題。
單網卡下的問題:
1.當我配置連接方式為NAT網路地址轉換的時候,虛擬機可以訪問外網。但是在網路地址轉換的情況下虛擬機是沒有外部可以訪問的IP,在虛擬機上運行的應用如果想在外部訪問,需要再配置埠轉發。
2.當我配置連接方式為橋接方式的時候,我可以手工為虛擬機指定一個IP,使虛擬機跟本機在同一個網段,外部機器也可以通過該IP訪問虛擬機。但是由於網路策略的問題,橋接連接方式下虛擬機又無法正常訪問外網。
在以上兩種情況下,只能給虛擬機配置雙網卡了,NAT網卡用來給虛擬機提供外部網路訪問能力,橋接網卡使外部網路可以通過固定IP訪問到虛擬機。配置了雙網卡之後虛擬機的ip信息展示如下:
其中enp0s3是網路地址轉換連接方式的網卡,enp0s8是橋接連接方式的網卡。
這裡順便貼一下enp0s8靜態IP的配置(其中NETMASK,GATEWAY直接參照本機相關信息,IP地址隨便配置一個沒有被使用的IP):
在配置完雙網卡之後,外部可以通過給虛擬機指定的IP來訪問虛擬機,但是發現虛擬機還是無法訪問外網。在查閱資料之後瞭解到可能是路由問題,虛擬機訪問外網的時候可能還是走的橋接網路的網卡。
查看路由:
default就是預設路由,這裡看到有兩個default,而且排在最前面的預設路由走的是enp0s8這個網卡。意思就是對外網的訪問會通過enp0s8這個網卡出去,而這個網卡並不能上外網。找到原因我們直接刪掉enp0s8這個預設路由就好了。
刪掉這個路由之後訪問百度:
在外部網路通過橋接網卡IP地址訪問虛擬機也正常。
現在還有一個問題是虛擬機重啟之後路由又會變回去。所以需要將 ip route del default via 10.4.56.1 這個命令加到 ~/.bashrc中,每次重啟之後會自動運行這個命令,刪掉不需要的路由。
以上~