碰到这个问题怎么回答?之前都是巧妙的找其他方法跳过去了,现在要直面问题——其实重点是shell下怎么做!
环境是VM+Ubuntu12
首先是
#ifconfig
查IP设置:这里为了不影响他用,专门新建一个test网络连接(先从图形化界面操作就完了,搞个自动获取IP的吧,这里局域网,我是直接桥接了)。
新建一个默认网络连接test,连接成功。
#ifconfig
看到自动分配了192.168.0.106,还有相应的同网段的广播地址,还有掩码
好,环境搭好了。
下面开始修改了,linux修改IP常见有如下几种方法:
(1)ifconfig命令
命令参考用法:
#ifconfig ethx ipadd netmask x.x.x.x
这个命令后边可以加个up,表示网卡开启。没加也无所谓。
ethx是网络连接名,一般最基础的就是第一块网卡eth0(这个"eth0"的名字估计也是可以改的),想出现更多,估计要多插网卡了(虚拟机多开网卡不难吧?不过这也需要相应的VMnet1做支持吧?先不做讨论)
本例使用
#ifconfigeth0 192.168.0.107 netmask 255.255.255.0
再使用
#ifconfig
查询,修改成功。用局域网其他PCping了一把,没问题。
还有
#routeadd default gw <网关IP>
比如我改一个(前提:默认网关是192.168.0.1)
#routeadd default gw 192.168.0.11
ping一下,发现ping不通外界了,局域网肯定ping的通,因为只是网关嘛。。。
需要注意的是:这是一锤子买卖,重启以后就没了(确切的说是重启服务以后)。
(2)neat命令
Ubuntu没有,neat命令=redhat-config-network图形下配置ip地址,都图形化了,也就不多说了。而且名为“eth0"的nickname也是可以任意更改的
(3)netconfig命令
ubuntu无
(4)ifconfig改的不够持久,但是在万年不关机的虚拟机上也还算方便(看你用途了,有时候也许需要重启),不过没关系。有一劳永逸的方法——修改配置文件
#vi /etc/network/interfaces
可以看到默认的只有(至少我的机子是)
autolo
ifacelo inet loopback
改成(动态版)
autolo
ifacelo inet loopback
autoeth0
ifaceeth0 inet dhcp
改成(静态版)
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.0.108
netmask 255.255.255.0
gateway 192.168.0.1
#这里还可以配置第二IP(虚拟IP)
auto eth0:1
iface eth0:1 inet static
address 192.168.0.109
netmask 255.255.255.0
#network和broadcast不用设置了,会计算出来的。
关于DNS
首先,打开
#vi/etc/resolv.conf
可以看到提示“是自动生成的,改了也没用,会被覆盖”
(我的)文件中nameserver只有127.0.0.1
尝试更改一个已知能用的DNS(保持默认也能用,至少虚拟机下是,具体工作机理不讨论)。
配置完以后重启动服务.
#servicenetwork restart
或者重启网卡(感觉上有时不是立即生效,稍微给点耐心。另外,重启网卡对别的网卡无影响,更推荐一些。):
/etc/networkingrestart
#ifconfigeth0 down
#ifconfigeth0 up
配置主机名称:
#/bin/hostname
可以显示当前主机名,我的太长了,顺便也改改:
#vi/etc/hostname
剩下都懂得
想要体验到这种变化,重启终端(#bash奏效~)就够了——可以看到主机名变了(因为是username@hostname的格式,变短了在终端里看着也舒服点,我想把其他名字也变短点,把huqinwei987名字也改了去,搞成h@v,这是题外话。)
PS:图形化networkingmanager和手动修改可能因为共用配置文件而造成一些冲突,所以修改时需要注意。
还有刷MAC方法(有时候会用得上,比如你上网MAC绑定了):
方法一:
$ifconfigeth0 hw ether XX:XX:XX:XX:XX:XX
$/etc/init.d/networkingrestart(重启网卡)
方法二:
以上只是暂时的修改硬件地址要永久修改,直接编辑/etc/network/interfaces文件,在ifaceeth0 inet static 后面添加一行:pre-upifconfig eth0 hw ether xx:xx:xx:xx:xx:xx(要改成的MAC)
$ sudo/etc/init.d/networking restart (重启网卡)