网卡 IP 地址配置的是否正确是两台服务器是否可以相互通信的前提。
在 Linux 系统中,一切都是文件,因此配置网络服务的工作其实就是在编辑网卡配置文件。
图形化界面上修改
命令行修改临时修改: ifconfig 命令临时修改, 系统重启后丢失
永久修改: 编辑网卡配置文件实现
CentOS
在 RHEL 5、RHEL 6 中,网卡配置文件的前缀为 eth,第 1 块网卡为 eth0,第 2 块网卡为 eth1;以此类推。
而在 RHEL 7 中,网卡配置文件的前缀则以 ifcfg 开始,加上网卡名称共同组成了网卡配置文件的名字,例如 ifcfg-eno16777736;好在除了文件名变化外也没有其他大的区别。
现在有一个名称为 ifcfg-eno16777736 的网卡设备,我们将其配置为开机自启动,并且 IP 地址、子网、网关等信息由人工指定,其步骤应该如下所示。
第1步:首先切换到 /etc/sysconfig/network-scripts 目录中(存放着网卡的配置文件)。
第2步:使用 Vim 编辑器修改网卡文件 ifcfg-eno16777736,逐项写入下面的配置参数并保存退出。由于每台设备的硬件及架构是不一样的,因此请读者使用 ifconfig 命令自行确认各自网卡的默认名称。
设备类型:TYPE=Ethernet
地址分配模式:BOOTPROTO=static
网卡名称:NAME=eno16777736
是否启动:ONBOOT=yes
IP 地址:IPADDR=192.168.10.10
子网掩码:NETMASK=255.255.255.0
网关地址:GATEWAY=192.168.10.1
DNS 地址:DNS1=192.168.10.1
第3步:重启网络服务并测试网络是否联通。
进入到网卡配置文件所在的目录,然后编辑网卡配置文件,在其中填入下面的信息:[root@linuxprobe ~]# cd /etc/sysconfig/network-scripts/
[root@linuxprobe network-scripts]# vim ifcfg-eno16777736
TYPE=Ethernet
BOOTPROTO=static
NAME=eno16777736
ONBOOT=yes
IPADDR=192.168.10.10
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=192.168.10.1
执行重启网卡设备的命令(在正常情况下不会有提示信息),然后通过 ping 命令测试网络能否联通。由于在 Linux 系统中 ping 命令不会自动终止,因此需要手动按下 Ctrl-c 键来强行结束进程。[root@linuxprobe network-scripts]# systemctl restart network
[root@linuxprobe network-scripts]# ping 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.081 ms
64 bytes from 192.168.10.10: icmp_seq=2 ttl=64 time=0.083 ms
64 bytes from 192.168.10.10: icmp_seq=3 ttl=64 time=0.059 ms
64 bytes from 192.168.10.10: icmp_seq=4 ttl=64 time=0.097 ms
^C
--- 192.168.10.10 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 2999ms
rtt min/avg/max/mdev = 0.059/0.080/0.097/0.013 ms
Ubuntu
第一步:查看网卡信息
输入 ifconfig 命令查看网卡信息,获取要修改的网卡名称 (如这里的 ens33)。point@world:~$ ifconfig
ens33: flags=4163 mtu 1500
inet 192.168.239.180 netmask 255.255.255.0 broadcast 192.168.239.255
inet6 fe80::a2a2:a63:f59c:7c9a prefixlen 64 scopeid 0x20
ether 00:0c:29:88:90:70 txqueuelen 1000 (Ethernet)
RX packets 2170 bytes 1112368 (1.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1544 bytes 190089 (190.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73 mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 386 bytes 33580 (33.5 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 386 bytes 33580 (33.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
第二步:配置网卡文件
注意:不同的 linux 系统,网卡配置文件是不同的,这里 ubuntu 的网卡配置文件是 /etc/network/interfaces。
输入下面命令进行编辑网卡文件sudo vi /etc/network/interfaces
默认的文件内容如下:auto lo
iface lo inet loopback
现在修改配置文件。修改方式有两种
方式一:静态 ip
修改内容如下:下面的 ens33 需要改成自己的网卡名称。ip 地址,掩码网关自己合理配置就行了。记得 wq! 保存退出。auto ens33
iface ens33 inet static
address 192.168.0.1
netmask 255.255.255.0
gateway 192.168.0.1
方式二:动态获取 ip 配置auto ens33
iface ens33 inet dhcp
注意上面的网卡写成自己的网卡名称。记得 wq! 保存退出。
第三步:修改 DNS 服务器地址
方法一
通过 /etc/network/interfaces,在它的最后增加一句下面的内容:下面的 223.5.5.5 是阿里的 dns 地址,可以自己选择适合的 dns 地址。dns-nameservers 223.5.5.5
重启后 DNS 就生效了,这时候再看 /etc/resolv.conf,最下面就多了一行:# 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
nameserver 223.5.5.5
方法二
在 /etc/resolvconf/resolv.conf.d/ 目录下的 base 文件里面,写入下面的命令, 然后重启,DNS 生效。nameserver 223.5.5.5
第四步:重启网卡使配置生效sudo ip addr flush dev ens33 && sudo ifdown ens33 && sudo ifup ens33
orsudo systemctl restart networking.service
测试ping www.baidu.com