CentOS 7 网络配置详解

554次阅读
没有评论

CentOS 7 网络配置详解
文章来自 boy_hxm

今天在一台 PC 上安装了 CentOS 7,当时选择了最小安装模式,安装完成后马上用 ifconfig 查看本机的 ip 地址(局域网已经有 DHCP),发现报错, 提示 ifconfig 命令没找到。

[root@centos1 ~]# ifconfig
-bash: ifconfig: command not found

首先,习惯性的输入echo $PATH(查看当前 PATH 环境变量,跟 DOS 的 path 命令一样的功能,注意 Linux 系统中的命令是区分大小写的),显示结果如下:

[root@centos1 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

从上面显示结果看,放置系统管理程序的路径 /usr/sbin 已存在,就是放外部命令的路径。直接用 ls 查看 /usr/sbin/ 目录,也没看到ifconfig,怎么回事?

[root@centos1 ~]# ls /usr/sbin/

我还是不死心,再用 find 命令也没找到ifconfig?

[root@centos1 ~]# find / -name “ifconfig”

此时心里有底了,应该是用某个命令代替了 ifconfig 了。上百度一查,果不其然,已经用 ip 命令代替 ifconfig 命令了。下面列出 ip 命令常用参数。

Ip  [选项]  操作对象{link|addr|route…}

# ip link show                           # 显示网络接口信息

# ip link set eth0 upi                   # 开启网卡

# ip link set eth0 down                  # 关闭网卡

# ip link set eth0 promisc on            # 开启网卡的混合模式

# ip link set eth0 promisc offi          # 关闭网卡的混个模式

# ip link set eth0 txqueuelen 1200       # 设置网卡队列长度

# ip link set eth0 mtu 1400              # 设置网卡最大传输单元

# ip addr show                           # 显示网卡 IP 信息

# ip addr add 192.168.0.1/24 dev eth0    # 设置 eth0 网卡 IP 地址 192.168.0.1

# ip addr del 192.168.0.1/24 dev eth0    # 删除 eth0 网卡 IP 地址

# ip route list                                            # 查看路由信息

# ip route add 192.168.4.0/24  via  192.168.0.254 dev eth0 # 设置 192.168.4.0 网段的网关为 192.168.0.254, 数据走 eth0 接口

# ip route add default via  192.168.0.254  dev eth0        # 设置默认网关为 192.168.0.254

# ip route del 192.168.4.0/24                              # 删除 192.168.4.0 网段的网关

# ip route del default                                     # 删除默认路由

输入 ip addr 命令后,发现 enp2s0 网卡(这个 enp2s0 是我这里的网卡)中没有 ip 地址。

[root@centos1 ~]# ip addr

既然没有 ip 地址,那直接去 /etc/sysconfig/network-scripts 目录中看一下的网卡 ip 信息的配置文件名吧。

[root@centos1 ~]# ls /etc/sysconfig/network-scripts/
ifcfg-enp2s0  ifdown-eth   ifdown-post    ifdown-Team      ifup-aliases  ifup-ipv6   ifup-post    ifup-Team      init.ipv6-global
ifcfg-lo      ifdown-ippp  ifdown-ppp     ifdown-TeamPort  ifup-bnep     ifup-isdn   ifup-ppp     ifup-TeamPort  network-functions
ifdown        ifdown-ipv6  ifdown-routes  ifdown-tunnel    ifup-eth      ifup-plip   ifup-routes  ifup-tunnel    network-functions-ipv6
ifdown-bnep   ifdown-isdn  ifdown-sit     ifup             ifup-ippp     ifup-plusb  ifup-sit     ifup-wireless

从结果看,之前保存网卡 ip 信息的配置文件名也由以前的 ifcfg-eth0 变成了 ifcfg-enp2s0,如果你的还是 ifcfg-eth0,那就修改这个名称的配置文件就好了,我这里已经变成了 ifcfg-enp2s0,好吧,既然系统给他命了这么个名,那就直接修改这个配置文件就行了。先cat 一下ifcfg-enp2s0

[root@centos1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp2s0
HWADDR=00:E0:69:01:6A:96
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp2s0
UUID=5b0a7d76-1602-4e19-aee6-29f57618ca01
ONBOOT=no

从上面的配置中有看到虽然 BOOTPROTO=dhcp,但是ONBOOT=no,这里用viONBOOT=no改成 ONBOOT=yes,然后用shutdown -r 重启 CentOS(当然也可以用 ifdown 和 ifup,network 命令重启网卡,后面有介绍,我这里是习惯性的用 shutdown - r 重启,vi 是 linux 下的文本编辑器,类似于 windows 下的 notepad.exe[记事本软件],不会用的朋友请自行百度 vi)。

[root@centos1 ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp2s0

HWADDR=00:E0:69:01:6A:96
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp2s0
UUID=5b0a7d76-1602-4e19-aee6-29f57618ca01
ONBOOT=yes

重启系统:

[root@centos1 ~]# shutdown -r

重启完成后输入帐号和密码进入命令提示操作符继续用 ip addr 查看网卡信息。结果如下:

[root@centos1 ~]# ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:e0:69:01:6a:96 brd ff:ff:ff:ff:ff:ff
inet 172.8.1.200/24 brd 172.8.1.255 scope global enp2s0
valid_lft forever preferred_lft forever
inet6 fe80::2e0:69ff:fe01:6a96/64 scope link
valid_lft forever preferred_lft forever

从上面结果看到,通过 DHCP 分配到的 ip 地址是172.8.1.200,虽然是测试机,但为了便于今后的远程连接,我们还是给这台机配置一个固定 ip 吧。

再次用 vi 打开 vi /etc/sysconfig/network-scripts/ifcfg-enp2s0,输入以下参数,再用#BOOTPROTO=dhcp注释。
IPADDR0=172.8.1.211
PREFIX0=24
GATEWAY0=172.8.1.1
DNS1=172.8.1.1

完整参数如下,好了,网络配通了。明天继续其它功能测试。

[root@centos1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp2s0
HWADDR=00:E0:69:01:6A:96
TYPE=Ethernet
#BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp2s0
UUID=5b0a7d76-1602-4e19-aee6-29f57618ca01
ONBOOT=yes
IPADDR0=172.8.1.211
PREFIX0=24
GATEWAY0=172.8.1.1
DNS1=172.8.1.1

当联上互联网后,我们可以用 yum install net-tools 安装 net-tools 组件,将 ifconfig 命令找回来。有了互联网一切都好办了。net-tools工具包安装好以后 netstat 命令也有了。

[root@centos1 ~]#yum install net-tools

=======================================

linux 下启动和关闭网卡命令汇总:

linux 命令 1: ifup、ifdown:

实时地手动修改一些网络接口参数,可以利用 ifconfig 来实现,如果是要直接以配置文件,亦即是在 /etc/sysconfig/network-scripts 里面的 ifcfg-ethx 等文件的设置参数来启动的话,那就得要通过 ifdown 或 ifup 来实现了。

[root@linux ~]# ifup {interface}

[root@linux ~]# ifdown {interface}

[root@linux ~]# ifup eth0

ifup 与 ifdown 真是太简单了。这两个程序其实是 script 而已,它会直接到 /etc/ sysconfig/network-scripts 目录下搜索对应的配置文件,例如 ifup eth0,它会找出 ifcfg-eth0 这个文件的内容,然后加以设置。关于 ifcfg-eth0 的设置请参考前一章连上 Internet 的说明。

不过,由于这两个程序主要是搜索设置文件(ifcfg-ethx)来进行启动与关闭的,所以在使用前请确定 ifcfg-ethx 是否真的存在于正确的目录内,否则会启动失败。另外,如果以 ifconfig eth0 来设置或者是修改了网络接口后,就无法再以 ifdown eth0 的方式来关闭了。因为 ifdown 会分析比较目前的网络参数与 ifcfg-eth0 是否相符,不符的话,就会放弃这次操作。因此,使用 ifconfig 修改完毕后,应该要以 ifconfig eth0 down 才能够关闭该接口。

linux 命令 2: /etc/init.d/network restart

[root@CentOS2 ~]# /etc/init.d/network restart

正在关闭接口 eth1:[确定]

关闭环回接口:[确定]

弹出环回接口:[确定]

弹出界面 eth1:Determining if ip address 10.0.0.168 is already in use for device eth1…

[确定]

linux 命令 3: service network restart

[root@CentOS2 ~]# service network restart

正在关闭接口 eth1:[确定]

关闭环回接口:[确定]

弹出环回接口:[确定]

弹出界面 eth1:Determining if ip address 10.0.0.168 is already in use for device eth1…

[确定]

如何让 LINUX 网卡开机自动启动

激活网卡的命令是:ifconfig eth0 up 你既然知道了命令,自己做一个脚本,放在启动项目就可以了。

通过编辑网卡配置文件修改网卡配置文件保存在 /etc/sysconfig/network-scripts 目录下面。

第一块网卡的文件是 ifcfg-eth0

第二块网卡的文件是 ifcfg-eth1

以此类推,如果如果你有一块,那么你就输入一下命令

[root@linux ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

打开之后,将 ONBOOT=no,改为 ONBOOT=yes,(如果没有,手动添加 ONBOOT=yes),:wq 保存退出,重启服务。

echo “ONBOOT=yes” >> /etc/sysconfig/network-script/ifcfg-eth0

在 /etc/sysconfig/network-scripts 中添加 ONBOOT=yes 设置网络开机自动启动

——————– 完 ————————–

正文结束
 
欢迎加入 Telegram 群 https://t.me/Fit10086
文章教程好用记得留言支持啊
评论(没有评论)
载入中...