我的CMS101S的盒子想要做NAS服务器默认是自动获取IP地址,动态的IP地址进行外网穿透可能会导致无法正确连接到盒子。
暂时还没有想到怎么修改Cloudflare官网的配置,也不知道能不能配置好之后再修改。干脆就直接把盒子的IP地址固定算了。
Ubuntu的静态IP地址设置与CentOS不太一样。而且盒子的配置和电脑版的Ubuntu也略有不同,不知道是不是版本的问题。
首先用ifconfig命令查看一下网络状态,找到网卡名称。我盒子的网卡名称就是eth0
然后编辑网卡配置文件,根据网上的资料显示,应该用下面这个命令:
vi /etc/network/interfaces
然后发现这个文件里面的内容跟资料上显示的配置文件内容不一样。文件内容显示:
source-directory /etc/network/interfaces.d
于是通过cd命令先进入/etc/network目录,再用ls命令看看这下面有哪些文件或文件夹。
果然看到有一个interfaces.d文件夹。
cd进入interfaces.d文件夹。
再ls看看这里面有些什么文件,结果就只有一个eth0文件。
这不正好就是以我的网卡名称命名的文件吗?打开看看:
vi eth0
内容显示,正是我们需要的网卡配置文件。如果不走上面的弯路,直接编辑的话就用下面的命令:
vi /etc/network/interfaces.d/eth0
编辑这个eth0文件,默认的文件内容如下:
auto eth0 iface eth0 inet dhcp
将dhcp修改成static,并添加IP地址、网关地址、子网掩码,就成这样了:
auto eth0 iface eth0 inet static address 192.168.2.10 gateway 192.168.2.1 netmask 255.255.255.0
保存退出。然后还要修改DNS的配置文件:
vi /etc/resolv.conf
在此文件中修改nameserver信息,也就是DNS信息:
nameserver 192.168.1.1 nameserver 192.168.2.1
但这里有个很恼火的问题。
这个resolv.conf文件修改后,只要网络重启或系统重启,又会被改回去了。
通过度娘找到的资料显示:
不知道Ubuntu从哪个版本开始不是由NetworkManager生成resolv.conf的了,至少在13.04下是这样的,因为resolv.conf开头写着这样一句话:
说是由resolvconf生成,NetworkManager仍然存在,因为它是DHCP上网不可缺少的,但此时禁止NetworkManager启动 已经不管用了,因为resolv.conf已经不归它管了,我们试着看看resolv.conf与resolvconf有啥关系,查看:
hadoop@Master:~$ ll /etc/resolv.conf lrwxrwxrwx 1 root root 29 9月 11 2013 /etc/resolv.conf -> ../run/resolvconf/resolv.conf
说明/etc/resolv.conf 其实只是一个link,它实际上指向的是 /run/resolvconf/resolv.conf,这也就解释了为什么每次重启都会被重写的原因,你改的只是个link,对原文件没有影响,而每次重启这个link还得加载原文件的内容,所以对link的修改无效。
也就是说,直接修改resolv.conf其实只是修改了link,并没有修改到真正的配置文件。真正的配置文件其实是这个:
/etc/resolvconf/resolv.conf.d/head
那么直接编辑这个文件:
vi /etc/resolvconf/resolv.conf.d/head
将nameserver的信息复制粘贴进去:
nameserver 192.168.1.1 nameserver 192.168.2.1
保存退出即可。
从度娘上查到的资料来看,还可以修改head文件同目录下的base文件,也就是:
vi /etc/resolvconf/resolv.conf.d/base
写文章的大佬也说没有测试,不知道行不行。
另外还有一种方法,就是直接修改之前的网卡配置文件,把DNS信息添加进去。
因为interfaces的配置文件优先级要比resolv.conf文件要高,所以直接把DNS的信息添加进之前编辑的eth0文件中就行了。
在CentOS里面网卡配置文件中DNS就直接是DNS,而在Ubuntu中DNS是dns-nameservers。
所以,把上面nameserver的内容修改成下面这样,再添加到eth0文件中即可:
dns-nameservers 192.168.1.1 dns-nameservers 192.168.2.1
总结下来就两步。
第一步,编辑网卡配置文件:
vi /etc/network/interfaces.d/eth0
第二步,清空配置文件,把下面的内容复制粘贴到配置文件中:
auto eth0 iface eth0 inet static address 192.168.2.10 gateway 192.168.2.1 netmask 255.255.255.0 dns-nameservers 192.168.1.1 dns-nameservers 192.168.2.1
前提是配置文件中只有以下这两条内容,就可以清空,否则就用修改添加的方式:
auto eth0 iface eth0 inet dhcp
修改完后重启网络:
/etc/init.d/networking restart
这样就OK了。
感觉要比CentOS复杂一丢丢,尤其是重启网络的命令,有时候可能还会报错?
反正我没有报错,以后再慢慢研究吧。