Ubuntu中啟用關閉Network-manager網絡設置問題!
【Server版本】
在UbuntuServer版本中,因為只存有命令行模式,所以要想進行網絡參數設置,只能通過修改/etc/network/interfaces。具體設置方法如下:
(1) UbuntuServer 修改 IP地址
打開/etc/network/interfaces
sudo vim/etc/network/interfaces
加入以下語句:
auto eth0
iface eth0inet static
addressxxx.xxx.xxx.xxx #IP地址
netmaskxxx.xxx.xxx.xxx #子網掩碼
gatewayxxx.xxx.xxx.xxx #網關
(2) UbuntuServer 修改 DNS
打開/etc/resolv.conf
sudo vim/etc/resolv.conf
改為如下內容:
searchlocaldomain #如果本Server為DNS服務器,可以加上這一句,如果不是,可以不加
nameserver172.16.3.4 #希望修改成的DNS
nameserver172.16.3.3 #希望修改成的DNS
(3) UbuntuServer 最后一步,也是最重要的一步
在rc.local里加入這個重啟網絡配置的命令:
sudo/etc/init.d/networking restart
【Desktop版本】
在Desktop版本中,除了可以修改/etc/network/interfaces來進行配置以外;還可以直接在network-manager中配置。通過 interfaces修改的方法參照Server版本。network-manager的配置和直觀,按照提示一步一步操作即可,有興趣的朋友,可以自行Google或者Baidu。
但如果修改了interfaces,又配置了network-manager(以下簡稱nm),你就會發現出現了一些莫名其妙的問題:
1,interfaces和 nm中的網絡設置不一樣,系統實際的IP是哪個?
2,有時候莫名其妙的,界面右上角的網絡連接圖標就丟失了。
3,明明在nm中配置了正確的網絡設置,為什么就上不了網呢?
其實,我們要知道 interfaces和 nm之間的關系,這些問題就不難解釋了。
首先,當系統內沒有第三方網絡管理工具(比如nm)時,系統默認使用interfaces文件內的參數進行網絡配置。(就像Server版本一樣)
接着,當系統內安裝了 nm之后,nm默認接管了系統的網絡配置,使用nm 自己的網絡配置參數來進行配置。
但是,如果用戶在安裝nm之后(Desktop版本默認安裝了nm),自己手動修改了interfaces 文件,那nm 就自動停止對系統網絡的管理,系統改使用interfaces 文件內的參數進行網絡配置。
此時,再去修改nm 內的參數,不影響系統實際的網絡配置。若要讓nm 內的配置生效,必須重新啟用nm 接管系統的網絡配置。
現在知道了兩者之間的工作關系,再看上面的三個問題:
1,要看nm是否接管,如果沒有接管,系統實際的IP設置以interfaces 中的為准。反之,以nm 中的為准。
2,當nm 停止接管的時候,網絡連接圖標就丟失了。
3,同樣是接管的問題。
如果用戶希望在Desktop版本中,直接使用interfaces 進行網絡配置,那最好刪除network-manager 。
如果在出現上述問題之后,希望能繼續使用nm 來進行網絡配置,則需要進行如下操作:
sudo servicenetwork-manager stop # 停止 nm服務
sudo rm/var/lib/NetworkManager/NetworkManager.state # 移除nm 的狀態文件
sudo gedit/etc/NetworkManager/nm-system-settings.conf # 打開nm 的配置文件
##里面有一行:managed=true
## 如果你手工改過/etc/network/interfaces,nm會自己把這行改成:managed=false
## 將false 修改成true
sudo servicenetwork-manager start
Debian/Ubuntu的Network-Manager
debian/ubuntu管理網絡連接的有兩個東西,圖形化的NetworkManager和文字的 ifup/ifdown,如果在 /etc/network/interfaces里設置了網卡信息,那么NetworkManager就不會接管該網卡,如果沒有設置NetworkManager默認是會接管網卡的。
NetworkManager最方便的地方是個人電腦用無線連網的時候,因為文字界面的 iwlist wlan0 scan 並不是非常好用,而NetworkManger可以像windows那樣列出所有可用的wifi熱點,如果有中文亂碼的,也一樣可以連接,但如果你的機子是用來做服務器的,或者是在辦公室里使用,有固定的路由環境,一般來說,也會有固定的ip,因為這樣可以方便內網共享資源。總之不是個人用的,而且不用移來移去的話,最好是關掉這個NetworkManager,當然如果你經常帶着本子跑,想去咖啡館蹭網的話,就一定要打開這個NetworkManager,自動搜索無線非常方便了。
下面來說說這兩種情況:
1,使用NetworkManger來聯網,這個時候,如果使用了無線連接路由,而在/etc/network/interfaces里配置了有線連接的eth0的話,就會發生一個超級詭異的問題:可以訪問外網,但不能訪問內網,比如無線路由ip 192.168.0.1,ping該地址,會顯示有線網卡的ip地址無法ping通,而不是無線!證明在設置了有線eth0的時候,會優先采用,但奇怪的是,外網連接正常,所有我懷疑這可能是debian的一個bug。所以當使用 NetworkManager的時候,可以注釋掉所有/etc/network/interfaces 里的內容,僅僅保留本地回環網絡:
auto lo
iface lo inet loopback
這兩句。設置固定ip,可以在NetworkManager圖形界面里配置。
2,關閉NetworkManager,關閉命令:sudo /etc/init.d/network-manager stop 取消開機啟動:chkconfig network-manager off 重啟網絡:/etc/init.d/networking restart
修改 /etc/network/interfaces 文件,
系統配置部分:本地回環網絡。
auto lo
iface lo inet loopback
有線配置部分:
auto eth0
#iface eth0 inet dhcp # 如果你不想用固定ip的話,推薦用固定ip,這樣可以省去請求路由分配的時間
iface eth0 inet static
netmask 255.255.255.0
gateway 192.168.0.1 #gateway 0.0.0.0 # 撥號上網請把 gateway全部設置為0
address 192.168.0.112
無線配置部分:
auto wlan0
iface wlan0 inet static
netmask 255.255.255.0
gateway 192.168.0.1
address 192.168.0.113
pre-up ip link set wlan0 up
pre-up iwconfig wlan0 essid ssid
wpa-ssid TP-Link # 這里的ssid為路由里設置的無線名稱
wpa-psk 12345678 # 無線密碼
adsl撥號上網:
auto dsl-provider
iface dsl-provider inet ppp # dsl-provider 為之前配置好的撥號名稱
provider dsl-provider