網卡混雜模式linux
『壹』 VMware虛擬機里linux系統怎麼上網
VMWare虛擬機軟體是一個“虛擬PC”軟體,它使你可以在一台機器上同時運行二個或更多Windows、DOS、LINUX系統。那你知道在VMware虛擬機里Linux系統怎麼上網嗎?我帶來了VMware虛擬機里Linux系統上網的 方法 ,下面大家跟著我一起來學習一下吧。
VMware虛擬機里Linux系統上網方法參考如下
原理:使用Windows下的連接作為網關。Linux作為一個虛擬的客戶端通過這個Windows下的連接連上網。
1、設置Windows下的本地連接允許VMware的虛擬網卡來共享上網。
2、設置Windows下的VMware產生的虛擬網卡1。將其IP設置為192.168.0.1。子網掩碼為255.255.255.0。
3、設置VMware的網卡為Host-only
4、啟動Linux,然後在網路設置中將eth0設置為IP為 192.168.0.2。然後設置子網掩碼255.255.255.0。再設置網關為192.168.0.1。最後設置DNS為Windows下使用的那 個DNS地址即可(在安裝虛擬機前可以用ipconfig查到)。再激活eth0即可。
5、如果不行,那就設置完後,重啟你的電腦。
而我在公司裝的時候,沒做第3步,用了默認的NAT方式,同樣也可以上網。
VMware的網卡設置模式
VMware 提供四種網路連接方式
Bridge:這種方式最簡單,直接將虛擬網卡橋接到一個物理網卡上面,和linux下一個網卡 綁定兩個不同地址類似,實際上是將網卡設置為混雜模式,從而達到偵聽多個IP的能力.
在此種模式下,虛擬機內部的網卡(例如linux下的eth0)直接連到了物理網卡所在的網路上,可以想像為虛擬機和host機處於對等的地位,在網路關繫上是平等的,沒有誰在誰後面的問題.
使用這種方式很簡單,前提是你可以得到1個以上的地址.對於想進行種種網路實驗的朋友不太適合,因為你無法對虛擬機的網路進行控制,它直接出去了.
nat方式:這種方式下host內部出現了一個虛擬的網卡vmnet8(默認情況下),如果你有過做nat伺服器的 經驗 ,這里的vmnet8就相當於連接到內網的網卡,而虛擬機本身則相當於運行在內網上的機器,虛擬機內的網卡(eth0)則獨立於vmnet8.
你會發現在這種方式下,vmware自帶的dhcp會默認地載入到vmnet8界面上,這樣虛擬機就可以使用dhcp服務.更為重要的 是,vmware自帶了nat服務,提供了從vmnet8到外網的地址轉 換,所以這種情況是一個實實在在的nat伺服器在運行,只不過是供虛擬機用的. 很顯然,如果你只有一個外網地址,此種方式很合適.
hostonly:
這應該是最為靈活的方式,有興趣的話可以進行各種網路實驗.和nat唯一的不同的是,此種方式下,沒有地址轉換服務,因此,默認情況下,虛擬機只 能到主機訪問,這也是hostonly的名字的意義. 默認情況下,也會有一個dhcp服務載入到vmnet1上.這樣連接到vmnet8上的虛擬機仍然可以設置成dhcp,方便系統的配置.
是不是這種方式就沒有辦法連接到外網呢,當然不是,事實上,這種方式更為靈活,你可以使用自己的方式,從而達到最理想的配置,例如:
a.使用自己dhcp服務:首先停掉vmware自帶的dhcp服務,使dhcp服務更為統一.
b.使用自己的nat,方便加入防火牆.windows host可以做nat的方法很多,簡單的如windows xp的internet共享,復雜的如windows server里的nat服務.
c. 使用自己的防火牆.因為你可以完全控制vmnet1,你可以加入(或試驗)防火牆在vmnet1和外網的網卡間.
從以上可以看出,hostonly這種模式和普通的nat server帶整個內網上網的情形類似,因此你可以方便的進行與之有關的實驗,比如防火強的設置等
1、Bridge模式(一切都跟host一樣,只有ip不能與host相同)
ip 192.168.39.222
netmask:255.255.252.0
gateway:192.168.39.254
Primary nameserve:192.168.39.252
2、NAT模式
首先在host中查看VMnet8的IP(e.g. 192.168.255.1).
啟動VMware,點Edit下Virtual Network Setting… ,彈出Virtual network Editor對話框;
查看NAT選項卡,記錄NAT的Gateway IP address:192.168.255.2
在config中,填寫:
ip:192.168.255.5(與192.168.255.1在同一個網段的不同地址)
netmask:255.255.255.0(與192.168.255.1的隱碼相同)
Gateway IP:填寫VMware中的NAT網關192.168.255.2
Primary nameserver:填寫與主機中一樣的網關192.168.39.252,這樣就可以上網沖浪了.
如果填寫192.168.255.1,則不能連上外網.這里也可以不停,總之不能寫錯誤的地址
3、hostonly模式
(1)查看你的連接外網的網卡的屬性,選擇“高級”標簽,設置成允許共享,並設定允許的網路介面為VMNET1
(2)再插看一下你的VMnet1 的屬性,看一下TCP/IP協議的設置,你發現已經被自動設置為
192.168.0.1/255.255.255.0,
(3)windows下的設置完成,轉入到跑linux的虛擬機.將你的eth0的ip地址設置為靜態的(如果安裝時沒有選靜態的話) .
按紅帽子圖標->系統設置->網路(或 其它 你了解的方法)
ip: 192.168.0.2(或其它在此網段上的地址)
netmask: 255.255.255.0
default gateway: 192.168.0.1 (VMnet1的地址)
dns:輸入你自己的DNS (host中用的DNS)
保存設置.如果你還沒有設置好主機名稱:
cd /etc/sysconfig
vi network
編輯HOSTNAME
cd /etc
vi hosts
加入:
192.168.0.2 yourhostname
重新啟動服務
su
/sbin/service network restart
(4)測試一下
網關: ping 192.168.0.1
dns: ping dnsserver
(1)Bridged方式
用這種方式,虛擬系統的IP可設置成與本機系統在同一網段,虛擬系統相當於網路內的一台.獨立的機器,與本機共同插在一個Hub上,網路內其他機器可訪問虛擬系統,虛擬系統也可訪問網路內其他機器,當然與本機系統的雙向訪問也不成問題.
(2)NAT方式
這種方式也可以實現本機系統與虛擬系統的雙向訪問.但網路內其他機器不能訪問虛擬系統,虛擬系統可通過本機系統用NAT協議訪問網路內其他機 器.NAT方式的IP地址配置方法:虛擬系統先用DHCP自動獲得IP地址,本機系統里的VMware services會為虛擬系統分配一個IP,之後如果想每次啟動都用固定IP的話,在虛擬系統里直接設定這個IP即可.
(3)host-only方式
顧名思義這種方式只能進行虛擬機和主機之間的網路通信,既網路內其他機器不能訪問虛擬系統,虛擬系統也不能訪問其他機器.
(4)not use方式
既是不使用網路,虛擬系統為一個單機.
一般來說,Bridged方式最方便好用.但如果本機系統是win2000而網線沒插(或者根本沒有網卡),網路很可能不可用(大部分用PCI網卡的機器都如此),此時就只能用NAT方式或host-only,之前所說的那兩塊虛擬網卡就是適應這兩種網路准備的.
『貳』 linux 查看 網卡介面是否為混雜模式
使用ifconfig命令可查看當前網卡是否設置為混雜模式
[zhaihf@localhost~]$ ifconfig
eth0 Linkencap:Ethernet HWaddr 00:16:31:FF:A6:2E
inet addr:192.168.9.1 Bcast:192.168.9.255 Mask:255.255.255.0
UPBROADCAST 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:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Memory:98420000-98440000
eth1 Link encap:Ethernet HWaddr 00:16:31:FF:A6:2F
inet addr:192.168.8.48 Bcast:192.168.8.255 Mask:255.255.255.0
inet6 addr: fe80::216:31ff:feff:a61f/64 Scope:Link
UPBROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:28011022 errors:0 dropped:0 overruns:0 frame:0
TX packets:18408510 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:31733322503 (29.5 GiB) TX bytes:21092798216 (19.6GiB)
Memory:98400000-98420000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8873 errors:0 dropped:0 overruns:0 frame:0
TX packets:8873 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3140421 (2.9 MiB) TX bytes:3140421 (2.9 MiB)
usb0 Link encap:Ethernet HWaddr 5E:F3:FC:E1:D2:19
inet addr:169.254.95.120 Bcast:169.254.95.255 Mask:255.255.255.0
inet6 addr: fe80::5cf3:fcff:fee1:d217/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RXpackets:220031 errors:0 dropped:0 overruns:0 frame:0
TX packets:110230 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:14862206 (14.1 MiB) TX bytes:5251125 (5.0 MiB)
其中UPBROADCAST RUNNING PROMISC MULTICAST的PROMISC說明網卡eth1已經設置成混雜模式。《Linux就該這么學》這本書上有詳細的介紹
『叄』 linux程序怎麼設置無線網卡的混雜模式
linux程序可以通過以下步驟設置無線網卡的混雜模式
:
1、打開「我的電腦」,然後右鍵「屬性」;
2、點擊「硬體」,再點擊「設備管理器」,打開設備管理器後,雙擊「網路適配器」;
3、找到無線網卡突變,右擊「屬性」,再高級,在右邊的值選結尾是FULL
DUPLEX,此時linux程序已成功設置成功無線網卡的混雜模式。
『肆』 linux 查看 網卡介面是否為混雜模式
ifconfig 可以看到網卡是否混雜模式,如:
ifconfig eth0 看是否有「PROMISC」標志
ifconfig eth0 promisc #設置混雜模式
ifconfig eth0 -promisc #取消混雜模式
『伍』 linux 下怎樣查看網卡是否支持混雜模式
使用ifconfig命令可查看當前網卡是否設置為混雜模式[zhaihf@localhost~]$ ifconfig
eth0 Linkencap:Ethernet HWaddr 00:16:31:FF:A6:2E
inet addr:192.168.9.1 Bcast:192.168.9.255 Mask:255.255.255.0
UPBROADCAST 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:1000
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
Memory:98420000-98440000
eth1 Link encap:Ethernet HWaddr 00:16:31:FF:A6:2F
inet addr:192.168.8.48 Bcast:192.168.8.255 Mask:255.255.255.0
inet6 addr: fe80::216:31ff:feff:a61f/64 Scope:Link
UPBROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1
RX packets:28011022 errors:0 dropped:0 overruns:0 frame:0
TX packets:18408510 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:31733322503 (29.5 GiB) TX bytes:21092798216 (19.6GiB)
Memory:98400000-98420000
『陸』 Windows/Linux下,某個C++網路監聽程序,設置了網卡為混雜模式。這會不會影響其他程序。
一般無影響,混雜模式開啟,結果是不屬於你的數據包也流入網卡,其他非監聽程序根本不會去接收也無法接收這些數據,所以無影響。
當然混雜模式會增加網卡壓力和CPU負荷,可能在這方面造成對其他程序的一點影響。
『柒』 linux下網卡混雜模式如何設置
那就每次開機登錄時自動修改唄~~~
這個修改重啟後會丟失,因此你要自己去修改~~修改mac地址也是重啟就失效了
echo "ifconfig eth0 promisc " >>/root/.bash_profile
或者
echo "ifconfig eth0 promisc " >>/root/.bashrc
/root/.bashrc是進入root時自動會執行的一個腳本~~
『捌』 linux 下怎麼把網卡設置成混雜模式
你還能想到libpcap?厲害~
你想做
嗅探器
還不簡單,直接寫原始
套接字
,抓所有包不就完了。
你理解的
混雜模式
是什麼?所有收到的包都不丟棄?建議你看看原始套接字~
『玖』 混雜模式的linux下通過C設置混雜模式(以eth0舉例)
char *eth_name = eth0; //對網卡eth0進行混雜設置
struct ifreq ethreq; //網路介面結構
strncpy(ethreq.ifr_name, eth_name, IFNAMSIZ); //指定網卡名稱if(-1 == ioctl(sock_raw_fd, SIOCGIFFLAGS, ðreq)) //獲取網路介面{perror(ioctl);close(sock_raw_fd);exit(-1);}
/*此處用 | 是因為必須在保留原來設置的情況下,在標志位中加入「混雜」方式*/ ethreq.ifr_flags |= IFF_PROMISC;if(-1 == ioctl(sock_raw_fd, SIOCSIFFLAGS, ðreq)) //將標志位設置寫入{perror(ioctl);close(sock_raw_fd);exit(-1);}