Ubuntu16.04 “有線未托管”問題解決
電腦上安裝的Ubuntu16.04 是通過先安裝Ubuntu Server后在通過命令 sudo tasksel 安裝的Gnome桌面環境,安裝完成后發現當插上有線網絡后不能自動獲取ip地址上網,重啟網絡后能獲取地址但是通過瀏覽器也不能打開網頁,查閱資料后發現造成問題的原因如下:
Linux里面有兩套管理網絡連接的方案:
第一套: /etc/network/interfaces(/etc/init.d/networking)適用於沒有桌面的環境,如:服務器;或者那些完全不需要改動連接的場合。(我是通過這種方法安裝的系統)
第二套: Network-Manager 適用於有桌面的環境,特別是網絡連接情況隨時會變的情況。
NetworkManager 是為了使網絡配置盡可能簡單而開發的網絡管理軟件包,如果使用 DHCP,NetworkManager 會替換默認的路由表、從 DHCP 服務器獲取 IP 地址並根據情況設置域名服務器,NetworkManager 的目標是使網絡能夠開箱即用。
NetworkManager 由兩部分組成:
一個以超級用戶運行的守護進程(network-manager );
一個前端管理程序(network-manager-gnome, network-manager-kde 或者 cnetworkmanager )。
一、有線網絡未受 NetworkManager 管理
通過命令行安裝系統(命令行下默認不安裝NetworkManager)后在安裝桌面環境,
這種情況下NetworkManager 不接管/etc/network/interfaces 文件里配置的任何網絡接口。也就是說,如果:
1、etc/network/interfaces 文件里已經配置了網絡接口,如下:
pipci@ubuntu:/etc/network$ cat interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto enp2s0
iface enp2s0 inet dhcp
pipci@ubuntu:/etc/network$
上面的配置文件可以知道enp2s0接口是DHCH,已經配置了網絡接口。
2、並且 /etc/NetworkManager/NetworkManager.conf 是這樣配置:
pipci@ubuntu:~$ cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile,ofono
dns=dnsmasq
[ifupdown]
managed=false
pipci@ubuntu:~$
配置文件中managed=false
如果同時滿足上面2點,網絡設置不受 NetworkManager 管理。
二、啟用 NetworkManager 管理網絡接口
如果希望 NetworkManager 接管在 /etc/network/interfaces 已經配置了網絡接口,則進行以下操作:
在 /etc/NetworkManager/NetworkManager.conf 里修改為此設置 managed=true;如下:
pipci@ubuntu:~$ cat /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile,ofono
dns=dnsmasq
[ifupdown]
managed=true
pipci@ubuntu:~$
以超級用戶重新啟動 NetworkManager 服務:
service network-manager restart
或重啟之后,就可以使用有線連接了.
