vmware中linux怎麼設定網路

來源:互聯網
上載者:User

   如果你的XXX卡沒被核心支援,又怕自己編譯的核心會造成系統損壞就可以試試這個方法嘍 ^_^

  vmware三種網路連接上網設定:

  1.bridge :

  預設使用vmnet0

  將虛擬機器的ip設定與主機同網段未使用ip,其餘與主機相同:

  例如主機ip是10.70.54.31,設定虛擬機器ip為10.70.54.22。netmask,broadcast,gateway,dns都與主機相同即可實現虛擬機器<--->主機 虛擬機器<---->互連網 通訊。

  2.nat :

  預設使用vmnet8

  將虛擬機器設定成使用dhcp方式上網,windows下選擇"自動擷取ip",linux下開啟dhcp服務即可

  也可以手動設定:

  ip設定與vmnet8同網段,gateway設定成vmnet8的gateway(/etc/vmware/vmnet8/nat/nat.conf)中可以查到vmnet8的gateway,通常是xxx.xxx.xxx.2。

  netmask,broadcast設定與vmnet8相同,dns設定與主機相同。

  例如 vmnet8 ip:172.16.249.1 gw :172.16.249.2

  虛擬機器設定: ip :172.16.249.100 gw: 172.16.249.2

  3.host-only :

  預設使用vmnet1

  將虛擬機器ip設定與vmnet1同網段,gateway設定成vmnet1的ip,其餘設定與vmnet1相同,dns設定與主機相同

  例如 vmnet1 ip :172.16.245.1

  虛擬機器設定: ip :172.16.245.100 gateway :172.16.245.1

  這樣就實現了虛擬機器<--->主機 通訊,但是 虛擬機器<--->互連網 仍無法通訊

  虛擬機器與互連網通訊:

  1.開啟主機路由功能

  2.設定iptables,使主機成為一台nat server

  1. echo 1 >/proc/sys/net/ipv4/ip_forward 這樣就主機就具有了路由功能

  2. iptables -t nat -A POSTROUTING -o eth0 -s 172.16.245.0/24 -j MASQUERADE

  這條規則意思是將來自172.16.245.0/24封包的來源ip偽裝成eth0的ip,實現虛擬機器與互連網通訊

  如果網路介面是ppp+或pppoe則需要修改成-o pppoe

  當然-s 172.16.245.0/24 也要根據實際情況修改

  qemu兩種上網方式:

  user mode network :

  這種方式實現虛擬機器上網很簡單,類似vmware裡的nat,qemu啟動時加入-user-net參數,虛擬機器裡使用dhcp方式,即可與互連網通訊,但是這種方式虛擬機器與主機的通訊不方便。

  tap/tun network :

  這種方式要比user mode複雜一些,但是設定好後 虛擬機器<-->互連網 虛擬機器<-->主機 通訊都很容易

  這種方式設定上類似vmware的host-only,qemu使用tun/tap裝置在主機上增加一塊虛擬網路裝置(tun0),然後就可以象真實網卡一樣配置它.

  首先核心中支援tap/tuns裝置:

  Device Drivers --->

  Networking support --->

  [M] Universal TUN/TAP device driver support

  如果當前核心沒有支援,可以重新只編譯相應模組加入,方法很簡單:

  將當前核心設定檔cp到核心源碼目錄下:

  [root@LFS ~]#cp /boot/config-[kernel-version] /usr/src/linux

  [root@LFS ~]#cd /usr/src/linux

  配置核心,將TUN/TAP選擇模組(M),如上所示:

  [root@LFS ~]#make menuconfig

  重新只編譯模組(M),不編譯核心(*)支援的東東:

  [root@LFS ~]#make modules

  編譯好後在/usr/src/linux/drivers/net下可以找到tun.ko:

  [root@LFS net]#ls -l /usr/src/linux/drivers/net/tun.ko

  -rw-r--r-- 1 root root 11116 Mar 23 20:29 /usr/src/linux/drivers/net/tun.ko

  [root@LFS net]#

  將它cp到當前核心的模組目錄的相應位置:

  [root@LFS net]#cp /usr/src/linux/drivers/net/tun.ko /lib/modules/`uname -r`/kernel/drivers/net

  重建立立模組依賴關係:

  [root@LFS net]#depmod

  現在就可以載入它了 :

  [root@LFS net]#modprobe tun

  檢查一下:

  [root@LFS net]#lsmod |grep tun

  tun 8704 0

  [root@LFS net]#

  OK. 成功不重新編譯整個核心加入特殊模組支援

  如果你的xx卡不被核心支援,又可以編譯成模組,自己怕重新編譯核心後出問題就可以用這個辦法只編譯自己需要的模組,然後手動安裝到相應位置,再載入它。

  這樣編譯速度要也比編譯整個核心快,不會對系統有任何損害,就可以使用上XX卡嘍。^_^

  要注意三點:

  1.核心源碼必須與當前核心版本完全一致,否則編譯出的模組是不能用的。

  2.注意只make modules(編譯模組),沒有make modules_install(自動安裝模組到/lib/modules下)

  3.載入新編譯的模組前必須先運行depmod,否則modprobe找不到它

  其實使用當前核心設定檔(/boot/config-[kernel-version]),只加入自己需要的模組,不做任何其他改,make modules_install應該也不會有問題的。

  不過最穩妥的辦法還是手動安裝它,控制權在自己手裡更踏實嘛 :-)

  OK,轉回qemu上網問題

  如果使用udev管理裝置(通常2.6.x核心的發行版都已經使用udev),當modprobe tun後就會自動建立/dev/net目錄,並建立出tun裝置,做好相關連結:

  [root@LFS net]#ls -l /dev/net/tun

  lrwxrwxrwx 1 root root 6 Mar 25 15:35 /dev/net/tun -> ../tun

  [root@LFS net]#

  如果很不幸,你沒看到它,就需要自己手動做這些工作了

  [root@LFS ~]#mkdir /dev/net

  [root@LFS ~]#mknod /dev/net/tun c 10 200

  OK,相關裝置已經準備好了,還需要一個tun/tap的初始化指令碼 :

  /etc/qemu-ifup :

  #!/bin/sh

  /sbin/ifconfig $1 172.20.0.1

  再給予qemu-ifup x執行許可權放在/etc下就可以了。

  這個指令碼只能root使用者執行,如果需要普通使用者使用qemu,就需要改成sudo /sbin/ifconfig .....再設定sudo相關許可權。

  啟動qemu後,它會在主機上增加一塊虛擬網路裝置(tun0):

  [root@LFS ~]#ifconfig tun0

  tun0 Link encap:Ethernet HWaddr 0A3:8A:5D:97:CD

  inet addr:172.20.0.1 Bcast:172.20.255.255 Mask:255.255.0.0

  UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

  RX packets:0 errors:0 dropped:0 overruns:0 frame:0

  TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

  collisions:0 txqueuelen:500

  RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

  [root@LFS ~]#

  現在就可以啟動qemu配置虛擬機器網路參數了,和vmware host-only一樣:

  ip與tun0相同網段,gateway為tun0 ip 其餘參數與tun0相同,dns與主機相同:

  tun0 : ip :172.20.0.1 broadcast:172.20.255.255 netmask :255.255.0.0

  qemu : ip :172.20.0.100 broadcast:172.20.255.255 netmask :255.255.0.0 gateway:172.20.0.1

  與host-only一樣,這樣只實現了虛擬機器<---->主機間通訊,還需要設定router,nat才可以連上互連網

  [root@LFS ~]#echo 1 > /proc/sys/net/ipv4/ip_forward

  [root@LFS ~]#iptables -t nat -A POSTROUTING -o eth0 -s 172.20.0.0/24 -j MASQUERADE

  [root@LFS ~]#

  OK,虛擬機器<--->主機 虛擬機器<---->互連網通訊 都完成啦

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.