配置主机网络
安装完成linux 系统后,我们需要为主机配置一个可用的网络地址
下面以配置eth0接口为例来说明下
说明 在RHEL7中重新定义了Linux网卡的命名规则,不再遵循原来的eth[0,1,……]。下面的例子中全部使用RHEL6的示例。 |
关于RHEL7的网卡命名原则
在进行centos7的pxe安装测试中发现了网卡命名不再遵从来有的命名规则而启用了最新的命名方式,官网文档描述如下: 在 Red Hat Enterprise Linux 7 中,systemd 和 udevd 支持大量不同的命名方案。默认行为是根据固件、拓扑及位置信息分配固定名称。这个命名方法的优点是完全自动且可预测,即使添加或者删除硬件也不会变化(未 发生重新列举),且可以在不产生任何影响的情况下替换破坏的硬件。这个行为的缺点是名称有时比之前使用的名称难读,例如使用 enp5s0 替换 eth0。 目前 udevd 本身就支持下列命名方案。
合并固件或者 BIOS 的名称为板载设备提供索引号的名称,例如:eno1。如果固件信息适用且可用,则 systemd 默认情况下根据这个方案命名接口,同时使用方案 2 作为备选。
合并固件或者 BIOS 的名称提供 PCI 快捷热插拔插槽索引号的名称,例如 ens1。如果固件信息适用且可用,则 systemd 默认情况下根据这个方案命名接口,同时使用方案 3 作为备选。
合并硬件连接器物理位置的名称,例如:enp2s0。如果固件信息适用且可用,则 systemd 默认情况下根据这个方案命名接口,同时使用方案 5 作为备选。
合并接口 MAC 地址的名称,例如:enx78e7d1ea46da。默认情况下 systemd 不会根据这个方案命名接口,但如果需要可以启用这个功能。
传统的不可预测内核属性 ethX 命名,例如:eth0。如果其他所有方法都失败,systemd 就根据这个方案命名接口。 如果该系统启用了 BIOSDEVNAME,或者用户已添加更改内核设备名称的 udevd 规则,则这些规则将替代默认的 systemd 策略。 |
说到这里,估计大家都知道了,那么如果对于怀旧的人们来说,想让RHEL7继续使用eth0这种人类可以理解的方式的话如何修改呢,方法如下
编辑/etc/sysconfig/grub文件内容,增加“net.ifnames=0”,如下—— GRUB_CMDLINE_LINUX="vconsole.keymap=us crashkernle=auto vconsole.font=latarcyrheb-sun16 net.ifnames=0 rhgb quiet" 执行:grub2-mkconfig -o /boot/grub2/grub.cfg 然后重命名配置文件—— mv /etc/sysconfig/network-scripts/ifcfg-enp0s3 ifcfg-eth0 注意把配置文件里面的“NAME=enp0s3”修改成“eth0”。 最后重启系统,就一切OK了! |
Shell># vi/etc/sysconfig/network-script/ifcfg-eth0
DEVICE=eth0 HWADDR=00:0C:29:C9:F2:34 TYPE=Ethernet UUID=f7710b52-b28d-4435-8ae3-8c095a094677 ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=static IPADDR=10.10.2.31 NETMASK=255.255.255.0 GATEWAY=10.10.2.254 DNS1=10.10.2.250 DNS2=8.8.8.8 |
因ifcfg-ethx中的信息较多,大部分我们用不到,下表中我们来说明下网卡配置文件中的选项和其意义。
选项 |
说明 |
备注 |
DEVICE |
物理设备的逻辑名称,如eth0,或者eno16777736,如果是ppp设备,可以没有这个选项。 |
|
NAME |
网络链接的名称,可以为任意字符串,不包含特殊符号,一般与DEVICE名称一致,也可以根据现实情况修改。 |
可以不填写 |
HWADDR |
物理设备的MAC地址 |
可以不填写 |
MACAADR |
物理设备MAC地址,可以不设定,也可以与HWADDR同时设定,同时设定时,必须一致 |
可以不填写 |
TYPE |
物理设备类型,可以选下面中的任意一种。
|
写了这一片,我都想吐槽自己,这个东西真心没必要去写入到配置文件中。系统在启用网卡的时候会自动的判断这个设备是啥类型的,如果这点都做不到,就可以去死了。 |
UUID |
全球唯一标识符,干啥用的???? |
可以不填写 |
ONBOOT |
是否开机时启用该设备,布尔型输入
|
不用网络就填no |
NM_CONTROLLED |
NetManager服务控制,当NetManager服务启用时,当修改网卡配置文件时,系统自动应用网卡配置文件,布尔型输入
说明:默认值是no |
推荐设定成no或者不输入,更推荐关闭NetManger服务,避免领导找你喝茶,哈哈。 |
USERCTL |
是否允许非root用户控制该设备,布尔型输入
|
推荐设定成no, |
BOOTPROTO |
启动协议。这个是针对DHCP来说的,
|
看需要吧,对于服务器更多是时none或者static,也可以不写。 |
PEERDNS |
是否指定DNS,如果使用dhcp协议,默认为yes。布尔型输入
|
可以不输入,dhcp时默认为yes,其它推荐设置为no |
IPV6INIT |
是否初始化IPv6,布尔型输入
|
默认为yes |
DEFROUTE |
默认路由 |
|
PEERROUTES |
布尔型输入
|
|
IPV4_FAILURE_FATAL |
||
IPV6_AUTOCONF |
||
IPV6_DEFROUTE |
||
IPV6_PEERDNS |
||
IPV6_FAILURE_FATAL |
||
IPADDR |
网卡IPv4地址设定,格式为点分十进制,示例如下 IPADDR=192.168.1.1 |
|
NETMASK |
网卡IPv4子网掩码设定,格式为点分十进制,示例如下 NETMASK=255.255.255.0 |
|
PREFIX |
子网掩码长度,可以单独使用,也可以与NETMASK一起使用。推荐不要写入这个,偶尔会出问题!哈哈。示例如下 PREFIX=24 |
推荐不使用 |
NETWORK |
网卡IPv4网络地址设定,格式为点分十进制 |
可以不设定 |
BROADCAST |
网卡IPv4广播地址设定,格式为点分十进制 |
可以不设定 |
GATEWAY |
网卡IPv4网关设定,格式为点分十进制 |
可以不设定 |
IPV6ADDR |
网卡IPv6地址,格式为十六进制 |
|
IPV6DEFAULTGW |
网卡IPv6网关地址, |
|
DNS1 |
网卡主DNS服务器地址设定 |
|
DNS2 |
网卡辅DNS服务器地址设定 |
|
MASTER |
这个不属于网络配置选项,在双网卡绑定时使用 |
|
SLAVE |
这个不属于网络配置选项,在双网卡绑定时使用 |
配置完成后,重新启动网络服务
RHEL6 |
Shell># service network restart |
RHEL7 |
Shell># service network restart 或者 Shell># systemctl restart network.service |
验证
RHEL6 |
Shell># ip addr Shell># ifconfig –a |
RHEL7 |
Shell># ip addr Shell># ifcfg –a |
说到这里了,我们说下linux下动态修改ip和其它网络配置的命令及其方法吧。
说明: RHEL7中最小化安装时不在包括ifconfig命令了,在RHEL7中,可以使用ifcfg命令来实现部分ifconfig的功能接口地址全部使用eth0 作为示例,如RHEL7中有明显不同的,会特别指出。 |
查看接口详细信息
Shell># ifconfig [ ] [ -a ] [ -v ]
输出如下
eth0 Link encap:Ethernet HWaddr 00:0C:29:A4:9A:76 inet addr:192.168.8.140 Bcast:192.168.8.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fea4:9a76/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:983 errors:0 dropped:0 overruns:0 frame:0 TX packets:456 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:77387 (75.5 KiB) TX bytes:62593 (61.1 KiB) Interrupt:19 Base address:0x2000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) |
查看接口数据包统计
RHEL6 |
Shell># ifconfig –s [device]
|
|
RHEL7 |
Shell>#ifstat [device]
|
关闭接口
Shell># ifconfig eth0 down
Shell># ifcfg eth0 down
开启接口
Shell># ifconfig eth0 up
Shell># ifcfg eth0 up
配置或者修改网络地址(以IPv4为例)
Shell># ifconfig eth0 192.168.8.145/24
Shell># ifcfg eth0 192.168.8.145/24(存在疑问?好像在RHEL7中有问题)
添加第二(或更多)地址
Shell># ifconfig eth0 add192.168.8.140/24
删除第二(或更多)地址
Shell># ifconfig eth0 del192.168.8.140/24
修改子网掩码
Shell># ifconfig eth0 netmask 255.255.254.0
修改默认网关(仅RHEL6可用)
Shell>#route add default gw192.168.8.2
修改DNS
shell># vi /etc/resolv.conf
内容如下 nameserver ip_addr 示例 nameserver 8.8.8.8 可以填写多个,一般填两个就好了。 |
修改主机名称
Shell># hostname your_new_hostname
永久化保存
Shell># vi /etc/sysconfig/network
NETWORKING=yes HOSTNAME=your_new_hostname |
好了,说多了,就先这样了,RHEL7的后期在补充吧。