首先声明:该方法在Fedora 17和18版本下有效,其它版本也许可行也许有所差异。
1. 虚拟机相关配置
如果不是虚拟机系统,则这步不需要,若是相关配置详细信息请看“Linux系列:Ubuntu虚拟机设置固定IP上网(配置IP、网关、DNS、防止resolv.conf被重写)”。
2. 设置静态IP地址
首先选取你想要配置的网络接口,可以通过ifconfig
-a
命令查看目前有哪些接口,一般都选择eth0,然后编辑相应接口的配置文件,这里以eth0为例。
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
将BOOTPROTO从“dhcp”修改为“static”,并添加IPADDR, NETMASK 和GATEWAY参数,并保证ONBOOT是"yes"。我的配置如下,大家安按自己需求更改。
UUID="2be778d0-e42b-4a3e-9ad6-598f1681c4a9" NM_CONTROLLED="yes" DEVICE="eth0" IPADDR=192.168.1.137 NETMASK=255.255.255.0 GATEWAY=192.168.1.2 BOOTPROTO=static ONBOOT="yes"
3. 配置DNS
命令:sudo
vi /etc/resolv.conf
我的配置如下:
nameserver 202.38.64.1
当然这里是因人而异了,加上你自己的DNS服务器即可,我的是校内DNS。
4. 防止resolv.conf被重写问题
从resolv.conf一开头的那句
# Generated by NetworkManager
就知道resolv.conf这个文件与参考文献(1)中Ubuntu 12.10一样也是由NetworkManager这个程序生成的。
对于Fedora来说防止其被重写的方法也有两种(与Ubuntu不太一样):
方法一:禁止Network Manager服务
首先停止该服务然后再禁止启动,以下两种方法都可行。
chkconfig --level 345 NetworkManager on
或者
systemctl stop NetworkManager.service
systemctl disable NetworkManager.service
如果上面方法不管用(我的奏效),那么试下下面第二种方法。
方法二:不由Network Manager接管DNS
大家细心的可能早已看到ifcfg-eth0配置文件里有这样一句配置:
NM_CONTROLLED="yes"
其中NM就是Network Manager,意思是默认由Network Manager管理DNS服务,那么我们不由它管理不就行了吗?
解决方法就是:
就文件中的NM_CONTROLLED=“yes”改为“no”,表示不由Network Manager接管。然后再去resolv.conf添加自己的DNS信息,重启网络后不会被重写。
5. 重启网络应用配置
systemctl restart network.service
6. 参考文献
(1)Linux系列:Ubuntu虚拟机设置固定IP上网(配置IP、网关、DNS、防止resolv.conf被重写)
(2)Fedora 17: Setting a static IP address
Linux系列:Fedora虚拟机设置固定IP上网(配置IP、网关、DNS、防止resolv.conf被重写),布布扣,bubuko.com