Linux修改eth2到eth0

之前在公司提供的虛擬機器上面,一直有個問題用着很不舒服,爲什麼它的IP選擇的設備的eth2的,但是我在/etc/sysconfig/network-scrpts/下面也沒有找到ifcfg-eth2的配置文件,這樣子,我就沒法修改IP了,也沒法使用靜態IP了,每次都是虛擬機動態分配的IP,這個太麻煩了。有時間解決了下這個問題。首先我聲明下,我這裏是用的NAT的方式與主機相連的。其實我到現在也還沒有弄清楚,爲什麼沒有eth2的配置文件,這種情況下 我該如何去修改IP,但是我想這些肯定跟現有的網卡有關,也即是跟現在的mac地址有關係,因爲我解決上面的那個問題主要是通過mac出發的。
經查明,Linux是用/etc/network/interfaces這個配置文件來載入網卡的。默認配置中,它指示Linux會自動尋找eth0網卡,並自動分配IP。但是,當虛擬網卡的MAC地址更改後,網卡在Linux中不是eth0了,而是eth1或其它值。因此纔會找不到。而現有系統中,有哪些網卡是可用的,可以通過下面的命令查看:
ifconfig -a
使用這個命令後確實,發現每刷新一次mac地址,就生成一個新的eth。
在Linux中,還有一個配置文件:/etc/udev/rules.d/70-persistent-net.rules,打開這個配置文件後,會發現裏面列出了所有Linux找到的網卡,包括歷史的。因此,解決無法加載網卡的問題就有兩個解決辦法:
1.修改interfaces配置文件,使其使用最新的eth網卡
2.刪除.rules文件,讓linux重新將網卡認爲是eth0
我找了下interfaces這個文件沒有找到,於是我選擇了第二個方法,刪除rules配置文件,讓他重新選擇網卡。重啓機器之後,敲了ifconfig,出現的不再是eth2了,但是使用的居然是eth1了, 這又讓我迷茫了,怎麼會變成是eth1了呢? 同時 也沒有發現eth1的配置文件,這樣子,我還是沒法控制IP啊。我查看了下ifconfig命令中的mac地址和ifcfg-eth0中的mac地址比較下,發現兩者的mac地址不一樣,使用/etc/init.d/network restart 重啓網卡,居然報eth0沒有這個設備,由此斷定,eth0配置文件中的mac地址是錯誤,於是把eth0配文件中的mac地址改成了ifocnfig中出來的mac地址,然後再次刪除/etc/udev/rules.d/70-persistent-net.rules文件,重啓機器,讓他再次重新選擇網卡,啓動之後,查看了ifocnfig,這時候變成了eth0,看來是正常了,然後修改下ifcfg-eth0的ip,重啓網絡服務,沒有報錯,正常,查看下IP,改過來了,OK,一切正常。
這時又發現新問題了,我在這個虛擬機中常識去訪問主機所在網段的機器時,居然報:network unreachable,斷定是網關的問題,查看下網關,果然沒有設置,在終端是命令:arp -a ,查看本機器的網關,然後修改ifgcfg-eth0,重啓服務器,OK,搞定!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章