标签:
ubuntu的网络配置文件是:/etc/network/interfaces ,可以在里面可设置DHCP或手动设置静态ip。
1. 以DHCP方式配置网卡,
使用vi编辑器打开配置文件/etc/network/interfaces,命令如下:
#vi /etc/network/interfaces
内容如下:
# The primary network interface - use DHCP to find our address
auto eth0 iface
eth0 inet dhcp
文件中
auto eth0 iface 表示让网卡开机自动挂载;
eth0 inet dhcp 表示动态设置ip。
重启网卡配置,使网络配置生效:
#/etc/init.d/networking restart
也可以在命令行下直接输入下面的命令来获取动态的IP地址 sudo dhclient eth0
2. 为网卡配置静态IP地址
编辑文件/etc/network/interfaces:
#vi /etc/network/interfaces
并用下面的行来替换有关eth0的行:
# The primary network interface
auto eth0
iface eth0 inet static
address 172.31.174.142
gateway 172.31.174.1
netmask 255.255.255.224
#network 203.171.239.128
#broadcast 192.168.3.159
文件中
iface eth0 inet static 表示IP地址设置为静态IP地址
address 172.31.174.142 表示IP地址设置为 172.31.174.142
gateway 172.31.174.1 表示设置网关为 172.31.174.1
netmask 255.255.255.0 表示设置子网掩码为 255.255.255.0
注:注释部分可以先不关心
如果还需要配置DNS服务器,在进行DNS配置:
重启网卡配置,使网络配置生效:
#/etc/init.d/networking restart
三、使用NetworkManager进行网络配置
在ubunbtu中,除了可以修改/etc/network/interfaces来进行配置以外,还可以直接在network-manager中配置。
network-manager的配置和直观,按照提示一步一步操作即可,有兴趣的朋友,可以自行Google或者Baidu。
但如果修改了interfaces,又配置了network-manager,你就会发现出现了一些莫名其妙的问题:
1、interfaces和 network-manager中的网络设置不一样,系统实际的IP是哪个?
2、有时候莫名其妙的,界面右上角的网络连接图标就丢失了。
3、明明在network-manager中配置了正确的网络设置,为什么就上不了网呢?
其实,我们要知道 interfaces和 network-manager之间的关系,这些问题就不难解释了。
首先,当系统内没有第三方网络管理工具(比如network-manager)时,系统默认使用interfaces文件内的参数进行网络配置。
当系统内安装了 network-manager之后,network-manager默认接管了系统的网络配置,使用network-manager 自己的网络配置参数来进行配置。
但是,如果用户在安装network-manager之后(Desktop版本默认安装了network-manager),自己手动修改了interfaces 文件,那network-manager 就自动停止对系统网络的管理,系统改使用interfaces 文件内的参数进行网络配置。
此时,再去修改network-manager内的参数,不影响系统实际的网络配置。若要让network-manager内的配置生效,必须重新启用network-manager接管系统的网络配置(如何重新启用下文会有介绍)。
现在知道了两者之间的工作关系,再看上面的三个问题:
1、要看network-manager是否接管,如果没有接管,系统实际的IP设置以interfaces 中的为准。反之,以network-manager中的为准。
2、当network-manager停止接管的时候,网络连接图标就丢失了。
3、同样是接管的问题。
如果用户希望在Desktop版本中,直接使用interfaces 进行网络配置,那最好删除network-manager 。
删除network-manager非常简单,只需要输入如下命令即可:
#apt-get remove network-manager
如果在出现上述问题(以上3个问题)之后,希望能继续使用network-manager来进行网络配置,则需要进行如下操作:
sudo servicenetwork-manager stop # 停止 network-manager服务
sudo rm/var/lib/NetworkManager/NetworkManager.state # 移除network-manager的状态文件
sudo gedit/etc/NetworkManager/nm-system-settings.conf # 打开network-manager的配置文件
##里面有一行:managed=true
## 如果你手工改过/etc/network/interfaces,network-manager会自己把这行改成:managed=false
## 将false 修改成true
servicenetwork-manager start
B). 使用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的时候,会优先采用,但奇怪的是,外网连接正常,所有我怀疑这可能是Ubuntu的一个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
#service network-manager stop
或者
#/etc/init.d/network-manager stop
但是这种方法不是一劳永逸的,因为每次重启系统后还是会自动启动这个服务,因此我们需要完全禁止network-manager启动即可。# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8) # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN说是由resolvconf生成,NetworkManager仍然存在,因为它是DHCP上网不可缺少的,但此时禁止NetworkManager启动 已经不管用了,因为resolv.conf已经不归它管了,我们试着看看resolv.conf与resolvconf有啥关系,查看:
说明/etc/resolv.conf 其实只是一个link,它实际上指向的是 /run/resolvconf/resolv.conf,这也就解释了为什么每次重启都会被重写的原因,你改的只是个link,对原文件没有影响,而每次重启这个link还得加载原文件的内容,所以对link的修改无效。
解决方法就是:修改真实的原文件,如下:
vi /etc/resolvconf/resolv.conf.d/head
发现这个文件与/etc/resolv.conf文件一模一样,这就对了,在里面加入你自己的nameserver即可,这样每次重启就不会被重写了。
PS:网上也有人说修改/etc/resolvconf/resolv.conf.d/base这个文件也行,我没有亲自测试,感兴趣的可用自己测试。
方法二: 与版本无关
前面提到固定IP的上网方式主要是修改/etc/network/interfaces这个文件,配置IP、网关什么的,其实这里面还有个参数可以配置,那就是DNS了,对应的参数名为dns-nameservers,这里设置的优先级比resolv.conf与NetworkManager高,也就是网络会从这里读取DNS配置,如果没配置才去看resolv.conf里面的设置,因此在这里面配置DNS更简单。
标签:
原文地址:http://blog.csdn.net/weicao1990/article/details/50992128