LINUX下网络配置、查看IP地址、网关信息,DNS信息(以CENTOS7为例)
一、CentOS7网络配置相关文件:
/etc/resolv.conf # DNS配置文件
/etc/hosts #主机名到IP地址的映射 ,不该主机名基本不会动他。
/etc/sysconfig/network #所有的网络接口和路由信息,网关只有最后一个有效。
/etc/sysconfig/network-script/ifcfg-<interface-name> #每一个网络接口的配置信息
每一个网卡只能使用一个配置文件,当有多个配置文件时,后面读取的配置文件信息会覆盖前面的配置信息。所以,一个网卡最好只写一个配置文件。或者之设置一个文件开机自启动,同时/etc/sysconfig/network-script/ifcfg-<interface-name>中不要写网关信息,交给/etc/sysconfig/network来配置。
二、查看网卡名称
CentOS7最小化安装后是没有 ifconfig 命令的,所以没有办法通过 ifconfig 查看网卡相关配置信息的,这个时候通过新的ip 命令来查看网卡相关配。
[root@localhost~]# ip addr
或 ip addr show
通过 ip 命令加参数 addr 则是查看当前网卡的配置信息, 从下图中可以看出, 当前系统的 ens33 网卡并没有 ipv4 及 ipv6, 没有 ip地址 则只能说明一个问题, 当前linux系统是没有办法上网的,lo 这块网卡每一个系统中都会有, 这个称之为回环网卡,另一片就是我的网卡名:ens33.
三、CENTOS7默认网卡接口配置文件
CentOS7默认网络接口文件存放于 /etc/sysconfig/network-scripts/ 目录下, 有于CentOS的发行及系统升级或许可能会存在网络接口名称与之前版本不一致的情况, 这也很容易理解, 网络接口名称在linux系统中它只是一个标志, 它并不能说明什么问题, 关键是这个网络接口文件的配置参数, 我当前CentOS7的网络接口名称是 :eno16777736,配置文件是:ifcfg-eno16777736(上一步找到的网卡名:ens33,一般情况下配置文件默认是:ifcfg-网卡名,但我的不是。如果没有,随便新建一个也行,格式:ifcfg-XXX)
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736 通过 cat 查看CentOS7最小化安装默认网卡设备配置信息, 如下:
TYPE=Ethernet # 网卡类型:为以太网 PROXY_METHOD=none # 代理方式:关闭状态 BROWSER_ONLY=no # 只是浏览器:否 BOOTPROTO=dhcp # 网卡的引导协议:DHCP[中文名称: 动态主机配置协议] DEFROUTE=yes # 默认路由:是, 不明白的可以百度关键词 `默认路由` IPV4_FAILURE_FATAL=no # 是不开启IPV4致命错误检测:否 IPV6INIT=yes # IPV6是否自动初始化: 是[不会有任何影响, 现在还没用到IPV6] IPV6_AUTOCONF=yes # IPV6是否自动配置:是[不会有任何影响, 现在还没用到IPV6] IPV6_DEFROUTE=yes # IPV6是否可以为默认路由:是[不会有任何影响, 现在还没用到IPV6] IPV6_FAILURE_FATAL=no # 是不开启IPV6致命错误检测:否 IPV6_ADDR_GEN_MODE=stable-privacy # IPV6地址生成模型:stable-privacy [这只一种生成IPV6的策略] NAME=eno16777736 # 网络接口名称,即配置文件名后半部分。 UUID=f47bde51-fa78-4f79-b68f-d5dd90cfc698 # 通用唯一识别码, 每一个网卡都会有, 不能重复, 否两台linux只有一台网卡可用 DEVICE=ens33 # 网卡设备名称 ONBOOT=no # 是否开机启动, 要想网卡开机就启动或通过 `systemctl restart network`控制网卡,必须设置为 `yes`
四、设置网络
(1)配置为:开机启动、动态获取ip方式(如果你在一个局域网中,如:连接了路由或在校园网中,并且你不知道网关等网络信息时采用此配置。):
1、vi /etc/sysconfig/network-scripts/ifcfg-eno16777736 (不会vi请先百度),按i进入插入模式,更改 下列各值,保存退出,如下:
ONBOOT=yes #设置为开机启动
BOOTPROTO=dhcp # 网卡的引导协议:DHCP[动态主机配置协议]
DEVICE=ens33 # 要配置的网卡名
2、重启网络服务:
systemctl restart network 或者 service network restart #重启网络
动态ip到此结束。
(2)配置为:开机启动、静态ip:
先找到配置相关信息,比如我的信息如下:
网卡名:ens33
网络接口名:eno16777736
ip: 192.168.189.130
网关: 192.168.189.2
主 DNS:115.156.76.144
备用DNS:8.8.4.4
配置方式如下:
1)、 只通过一个网卡配置文件:/etc/sysconfig/network-script/ifcfg-<interface-name>来配置:
1、vi /etc/sysconfig/network-scripts/ifcfg-ens33,更改最后结果为:
DEVICE=ens33 #要配置的网卡 ONBOOT=yes #开机自启动 BOOTPROTO="static" #静态ip方式 IPADDR=192.168.189.130 # ipv4地址 PREFIX=24GATEWAY0=192.168.189.2 #设置网关
DNS1=115.156.76.144 #设置主DNS DNS2=8.8.4.4 #设置备用DNS
2、重启网络服务:
systemctl restart network 或者 service network restart #重启网络
2)、应用全局配置文件配置
1、开启网络,再次设置网关(一般情况下重启电脑都会自动配置好网关)
vi /etc/sysconfig/network ,将NETWORKING值设为yes,设置GATEWAY值为现在的网关,如下:
NETWORKING=yes #表示系统是否使用网络,一般设置为yes。如果设为no,则不能使用网络。
HOSTNAME=centos #设置本机的主机名,这里设置的主机名要和/etc/hosts中设置的主机名对应
GATEWAY=192.168.189.2 #设置本机连接的网关的IP地址。
2、DNS配置
如果没有DNS服务就会出现无法解析域名的情况,如: ping www.baidu.com
解决方式一、打开 /etc/hosts 文件
[root@localhost ~]# vi /etc/hosts 输入IP与域名的对应记录, 保存退出。
解决方式二、域名无穷无尽,只能采用配置DNS方式解决域名解析问题,NDS配置文件如下:
vi /etc/resolv.conf 添加如下内容:
nameserver 115.156.76.144 #默认域名服务器
nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务
3、 设置网卡
vi /etc/sysconfig/network-scripts/ifcfg-ens33 (不会vi请先百度)
更改相关项的值如下:
TYPE=Ethernet BOOTPROTO=static #启用静态IP地址,也可写成 none 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=eno16777736 #图形界面选择网络接口时的名字,不使用网络图形化管理工具时可不写,名称随意。 DEVICE=ens33 #必须是网卡名,有可能和 网卡名:ifcfg-xxx不一样。 UUID=ae0965e7-22b9-45aa-8ec9-3f0a20a85d11 ONBOOT=yes #开启自动启用网络连接 IPADDR0=192.168.189.130 #设置IP地址 PREFIX=24 #设置子网掩码 或者使用 NETMASK=255.255.255.0 或 PREFIXO0=24 # GATEWAY0=192.168.189.2 #设置网关,此处为局部变量设置,它会覆盖/etc/sysconfig/network中的全局设置,不建议在此配置。 # DNS1=115.156.76.144 #设置主DNS,此处为局部变量设置,总的DNS=/etc/resolv.conf 中的全局设置+此处的局部设置,此处可写可不写。 # DNS2=8.8.4.4 #设置备用DNS,同上。
由于一般情况下我们用不到ipv6的地址等,所以可以把并重要的去掉,最终结果如下:
DEVICE=ens33 ONBOOT=yes BOOTPROTO="static" IPADDR=192.168.189.130 PREFIX=24
4、重启网络服务
ip link set ens33 down #ens33网卡名,每个人电脑不一样。
ip link set ens33 up
systemctl restart network 或者 service network restart #重启网络
静态ip到此网络就算配置完成了。
五、安装 net-tools 工具包(不使用ifconfig命令可以不用安装,仅为学习所写)
net-tools 工具包, 包含以下命令:arp, hostname, ifconfig, ipmaddr, iptunnel, mii-tool, nameif, netstat, plipconfig, rarp, route und slattach. 关于net-tools 更多的详情信息请参考:net-tools详情
如果没有安装net-tools 工具包,使用ifconfig命令会有如下结果:
[root@localhost ~]# ifconfig
ifconfig找不到 , 通过: yum whatprovides package_name 来查找包名了, 比如现在要查找 ifconfig 这个命令, 具体包含在哪个包里就可以这么做:
yum whatprovides ifconfig
找到是 net-tools 这个包,然后在安装此包:
yum install -y net-tools
之后就可使用ifconfig命令了
从上图可以看出:
- ip: 192.168.1.111
- 子网掩码: 255.255.255.0
- 广播地址:192.168.1.255
六、补充命令
ip [选项] 操作对象{link|addr|route...}
# 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 link show # 显示网络接口信息
# ip link set eth0 up # 开启网卡
# 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 route show 或 ip route list 或 route -n # 查看路由(网关)信息
# 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 # 删除默认路由
#查看NDS服务器地址,使用nslookup命令,输入命令:
比如:nslookup www.baidu.com