歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix基礎知識 >> FreeBSD下vmware的網絡設置

FreeBSD下vmware的網絡設置

日期:2017/2/28 10:24:01   编辑:Unix基礎知識
FreeBSDVMware 在FreeBSD5.3中安裝了vmware,軟件的安裝由於有port(port真是一種偉大的發明)
,所以很簡單。但是在安裝完軟件後,因為網絡設置的問題,困擾了很久。上網求助,發現也
有很多人問這一類的問題,有些人提供的答案在我這裡卻並不好用,只好自己解決。以下是備
忘錄。

1、啟動時設置網絡界面的過程。
在FreeBSD中,系統在啟動的時候會自動運行/usr/local/etc/rc.d/001.vmware.sh這
個腳本,通過/usr/local/etc/vmware/config這個配置文件來設置一個網絡界面,這個界面的
名字叫:vmnet1。這裡需要注意的是:
1)vmware需要aio,if_tap,netgraph,ng_ether,ng_bridge這幾個內核模塊,所
以要麼把它們都編譯進內核,要麼就不要在/etc/make.conf中設置NO_MODULES=YES(不編譯任
何模快,可加快內核編譯過程)。
2)我的vmware3.2.1在安裝過程中產生的/usr/local/etc/rc.d/001.vmare.sh中的第
26行為:networking=。這樣在運行這個腳本的時候會造成“-eq”運算不對。我想可能是我在
什麼地方沒有設置好,也可能是這個port的錯誤。不過,沒關系改回來就是了。改為:networ
king=1。
3)按照pkg-message的提示,在/etc/sysctl.conf中設置:kern.ipc.shm_allow_rem
oved=1,否則會出現“Cannot attach shared memory segment: Invalid argument.Failed t
o initialize SVGA device.”的錯誤。
4)此外,啟動的腳本還會載入vmware自帶的vmnet.ko和vmmon_up.ko、rtc.ko這三個
內核模快。
到此,已經成功了一大半了。這時如果你用ifconfig看的話,應該能看到vmnet1這個
網絡界面了。需要注意的是你是看不到vmnet1的IP地址的,因為vmnet1的IP地址只有vmware這
個軟件才能“看”得見,所以也不要用ifconfig給它設置IP地址。我沒有試過不知道你這麼干後會有什麼後果。

2、vmware是怎麼設置網絡的。
vmware基本上是通過/usr/local/etc/vmware/config來設置網絡的。這裡說“基本”
是因為實際上它還有其他的方式,但好像在FreeBSD中沒有用。在config文件中,設置網絡的
(我們用得著操心的)主要有四行:
vmnet1.Bridged = "YES"
vmnet1.BridgeInterface = "rl0"
vmnet1.HostOnlyAddress = "0.0.0.0"
vmnet1.HostOnlyNetMask = "255.255.255.0"
“.”前面的vmnet1是用來表示設置的網絡界面是哪個,所以如果你想設置多個界面
大可把這四行拷貝一下,比如改成vmnet0、vmnet2……。但是vmnet1特別地重要。一方面是它
是VMware的DHCP運行的網絡界面;另一方面是因為如果你在vmware中設置ethernet adapter的
時候選擇了Bridge或Host only,那麼它默認也是用vmnet1。
你在運行vmware開始你的虛幻之旅的時候,vmware是這樣設置網絡的:
1)如果你選擇的是Bridge,那麼vmware就跟據~/.vmware/config文件中的:
vmnet1.Bridged = "YES"
vmnet1.BridgeInterface = "rl0"
來設置的。
2)如果你選擇的是Host only,那麼就是根據:
vmnet1.HostOnlyAddress = "0.0.0.0"
vmnet1.HostOnlyNetMask = "255.255.255.0"
來設置的。
3)如果你選擇的是custom並選擇/dev/vmnet1那麼就是根據: vmnet1.Bridged = "YES"
vmnet1.BridgeInterface = "rl0"
vmnet1.HostOnlyAddress = "0.0.0.0"
vmnet1.HostOnlyNetMask = "255.255.255.0"
來設置的。
這幾行的意思很好理解,不用多解譯了。

3、如何設置讓vmware中能上網
有了上面的基礎,其他的就好理解了。FreeBSD在啟動的時候運行的/usr/local/etc/
rc.d/001.vmware.sh已經為我們設置好了vmnet1了。雖然在運行vmware的時候會運行~/.vmwar
e/config文件,但是由於vmnet1是在啟動的時候設置好的,你沒有辦法改的,你有辦法改掉ro
ot的東西嗎?所以如果你在vmware中選擇custom並選擇/dev/vmnet1,那麼就在/usr/local/et
c/vmware/config直接把它設置好。
下面再來說說三種模式的不同含義(以vmnet1為例)。
1)Bridge:也就是說vmnet1和你的比如rl0、fxp0等是平等的,可以使用網絡中的DH
CP服務、NAT服務等。這是一般人用得最多的一種模式。完全就相當於你有了另一台機器,跟
你的FreeBSD一樣在同一個LAN中。config文件中大致是這樣的:
vmnet1.Bridged = "YES"
vmnet1.BridgeInterface = "rl0"
vmnet1.HostOnlyAddress = "0.0.0.0"
vmnet1.HostOnlyNetMask = "255.255.255.0"
可能你唯一需要改的是“rl0”,把這個改為你用來橋接的網卡的設備名就可以了。
不過,要注意的是:vmnet1.HostOnlyAddress = "0.0.0.0"這一行中的“0.0.0.0”。這樣的
設置是給在vmware設置:custom+/dev/vmnet1用的。如果你選擇的是:bridge那麼你就應該在這裡設置一個有效的IP地址,就像在Host only模式中一樣,我不知道是為什麼,vmware的說
明是這樣說的。我都是用第一種方法。
2)Host only:這種模式下vmnet1是另一個子網中的,跟FreeBSD不能在一個子網中

vmnet1.Bridged = "NO"
vmnet1.BridgeInterface = ""
vmnet1.HostOnlyAddress = "192.168.21.1"
vmnet1.HostOnlyNetMask = "255.255.255.0"
3)custom:這種模式在1)中已經說了。

4、最後來說一下我的操作:
1)刪除~/.vmware/config文件,因為沒有什麼用,可能還會搗亂。
2)在/usr/local/etc/vmware/config設置:
vmnet1.Bridged = "YES"
vmnet1.BridgeInterface = "rl0"
vmnet1.HostOnlyAddress = "0.0.0.0"
vmnet1.HostOnlyNetMask = "255.255.255.0"
3)修改/usr/local/etc/rc.d/001.vmware.sh把第26行改為:networking=1
4)重新啟動機器(FreeBSD)。
5)啟動vmware,哇好了!!!!!

Copyright © Linux教程網 All Rights Reserved