一、查看及测试网络
1.1 查看网络配置
1.1.1 查看网络接口地址
常使用的方法有为ifconfig(如果为找到该命令,则需要安装net-tools软件包):直接使用此命令会显示出物理网卡(一般为ens33)和虚拟的回环接口lo的信息,具体的显示如下:
其中每一项的含义为:
- ens33:第一块网络接口的名称。"en"是"EtherNet"的缩写,表示网卡的类型为以太网,"s"表示插槽,"33"表示插槽编号。在不同的操作系统上,网络接口名称看可能也不同。
- inet:ipv4地址。
- inet6:ipv6地址。
- netmask:子网掩码。
- broadcast:广播地址。
- prefixlen:表示子网掩码的长度。
- txqueuelen:表示传输队列的长度。当网络接口向网络发送数据时,它不会立即发送每个数据包,而是将它们放入一个队列中,然后按照某种策略(如先进先出)发送它们。
- ether:MAC地址。
- lo:lo:“回环”网络接口,“lo”是“loopback”的缩写,它不代表真正的网络接口,而是一个虚拟的网络接口,其IP地址默认是“127.0.0.1”。回环地址通常仅用于对本机的网络测试。
- RX:接收的包。
- TX:发送的包。
使用ifconfig可以指定网络接口的名称来查看指定的网卡的信息。
1.1.2 查看主机名称
可以直接使用hostname命令查看当前主机的名称。该命令也可以用来暂时修改主机名称,后面指定要修改的名称即可。
1.1.3 查看路由表条目
Linux操作系统中的路由b表决定着从本机向其他主机、其他网络发送数据的去向,是排除网络故障的关键信息。可以直接执行"route"命令查看当前主机中的路由表信息:
- Destination:目的IP地址。
- Gateway:要去目的地所要经过的网关。
- Genmask:子网掩码
- Flags:表示路由的标记,U代表路由是开启状态,G代表是网关路由。
- Metric:表示路由的度量值或权重,度量值可以反映跃点的数量、路径的速度、路径的可靠性、路径的吞吐量以及管理属性等。用于在路由表中的多个路由中选择与目标地址最匹配的路由。
- Use:表示路由已被使用的次数。
- Iface:表示与该路由相关联的网络接口,当数据包需要被转发到目标地址时,它们将使用这个接口。
若结合"-n"选项使用,可以将路由记录表中的地址显示为数字形式。
1.1.4 查看网络连接情况
通过netstat可以查看当前操作系统的网络连接状态、路由表、接口统计等信息,以下是netstat命令常用的选项:
- -a:显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)。
- -n:以数字的形式显示相关的主机地址和端口等信息。
- -f:显示路由表的信息。
- -l:显示处于监听状态的网络连接及端口信息。
- -t:查看TCP相关的信息。
- -u:查看UDP相关的信息。
- -p:显示与网络连接相关联的进程号、进程名信息。
除了netstat命令,也可以使用ss(socket statistic)命令查看网络连接情况,主要用于socket统计信息。与netstat相比的优势在于能显示更多的有关TCP和连接状态的信息,而且比netstat更快速高效。注意需要先安装iproute程序包已被安装,以下是ss命令的常用选项:
- -h:--help,通过该选项获取更多的使用帮组。
- -V:--version,显示软件的版本号。
- -t:--tcp,显示TCP协议的socket。
- -u:--udp,显示UDP协议的socket。
- -n:--numeric,不解析服务的名称,如“22”端口不会显示成"ssh"。
- -l:--listening,只显示处于监听状态的端口。
- -p:--processec,显示监听端口的进程。
- -a:--all,对TCP协议来说,既包含监听的端口,也包含建立的连接。
- -r:--resolve,把IP解释为域名,把端口号解释为协议名称。
使用此命令结合"-t state established"可以显示TCP协议下已经建立的连接。
1.2 测试网络连接
当网络连接出现问题时,需要通过测试网络连接的命令来确定故障点。
1.2.1 测试网络连通性
使用ping命令可以向目标主机持续地发送测试数据包,使用方式为:
ping IP地址
连接正常时会收到返回的数据包。若们没有接收到目标主机发送的反馈数据包,则表示在本机到目标主机之间存在网络连通性故障。比如:
- Destination Host Unsearchable:表示目的主机不可达。可能目标地址不存在或主机以关闭。
- Network is Unsearchable:表示没有可用的路由记录,无法到达目标主机所在的网络。
- Request timeout:表示与目标主机之间的连接超时(数据包响应慢或丢失),即当前网络中存在影响通信过程稳定性的因素(如网卡故障、病毒或网络攻击等)。除此之外,若目标主机的防火墙有严格的限制时,也可能会受到这样的反馈信息。
1.2.2 跟踪数据包的路由途径
linux可以使用traceroute(需要先安装traceroute软件包)。此命令可以测试从本机到目标主机之间经过了哪些网络节点,并显示中间节点的显示状态,对于无法显示的点,使用“*”来代替。
使用方式为:
traceroute IP地址
1.2.3 测试DNS域名解析
经常使用两种命令来测试:
- nslookup:需要先安装"bind-utils",使用命令的方法为:
nslookup 域名
显示的信息如下(以百度为例):
图上显示了百度的其他域名和相应的IP地址,最上方则显示解析域名的服务器的地址。但是若显示的不是这样的信息,而是如下几种信息,则代表域名解析出现问题:
- "......no server could be reached":表示不能连接到指定的DNS服务器。
- "......can`t find www.baidu.com:NXDOMAIN":表示要查询的百度域名不存在。
- dig(domain information groper)
相较于nslookup命令,dig可以获取更多的域名信息。dig在查询过程中,可以指定DNSf服务器,如果不指定DNS服务器,默认会使用/etc/resolve.conf里面的地址作为DNS服务器。
使用方式为:
dig [@IP地址] 域名
二、设置网络地址参数
在Linux中,手动修改网络配置包括两种最基本的方法:
- 临时配置:通过命令直接修改当前正在使用主机的网络地址,修改后立刻生效。但此修改并没有固定地存放在静态的文件中,因此当重启主机或重启对应服务时,此修改就会失效。
- 固定配置:通过配置文件来存放固定的各种网络地址,需要重启network服务或重启主机后才会生效,此修改是永久性的。
2.1 使用网络配置命令
2.1.1 修改网卡的地址、状态
ifconfig命令不仅可以用于查看网卡配置,还可以修改网卡的IP地址、子网掩码、也可以绑定虚拟网络接口、激活或禁用网络接口:
- 修改网卡的IP地址、子网掩码:有两种方法设置:
ifconfig 网络接口名称 IP地址 [netmask 子网掩码]
ifconfig 网络接口名称 IP地址 [/子网掩码的长度]
若不指定子网掩码的长度,则根据IP地址所属的默认分类设置子网掩码的长度。
- 禁用、激活网络接口:分别使用"up"和"down"开关选项来激活或禁用网络接口
ifconfig 网络接口的名称 up #开启接口
ifconfig 网络接口的名称 down #关闭接口
- 为网卡绑定虚拟接口:有时候需要临时在同一个网卡上使用一个新的IP地址,但是有不能覆盖原有IP地址。这时就可以给网卡绑定一个虚拟地址接口,然后为虚拟接口设置一个新的地址,使用方法是:
ifconfig 网络接口的名称:0 IP地址 #0可以是其他数字
2.1.2 添加、删除静态路由记录
route命令不仅可以查看路由表,也可以用来添加或删除路由记录:
- 添加静态路由记录
route add -net 目的网段网络地址/子网掩码长度 gw 网关地址
- 删除静态路由记录
route del -net 目的网段网络地址/子网掩码长度
- 添加默认网关记录
route add default gw 网关地址
- 删除默认网关记录
route del default gw 网关地址
2.2 修改网路配置文件
2.2.1 网络接口配置文件
网络接口的配置文件默认位于目录/etc/sysconfig/network-scripts/中,文件名的格式为"ifcfg-XXX",XXX为网络接口的名称。在网卡的配置文件中,可以看到设置静态IP地址的部分内容如下:
上述各配置项的含义及作用如下
- TYPE:设置网卡类型,“Ethernet”表示以太网。
- BOOTPROTO:设置网络接口的配置方式,值为“static”时表示使用静态指定的IP地址,为“dhcp”时表示通过 DHCP 的方式动态获取地址。
- DEVICE:设置网络接口的名称。
- ONBOOT:设置网络接口是否在 Linux 操作系统启动时激活。
- IPADDR:设置网络接口的IP 地址。
- NETMASK:设置网络接口的子网掩码。
- GATEWAY:设置网络接口的默认网关地址。
2.2.2 启用、禁用网络接口配置
在 CentOS7操作系统中,当修改了网络接口的配置文件以后,若要使新的配置生效,可以重新启动network服务或者重启主机。
systemctl restart network
默认情况下,重启network服务会先关闭所有的网络接口,再根据配置文件重新启用所有的网络接口。
如果只是禁用、启用某一个网络接口,可分别使用两个接口控制脚本ifdown、ifup。使用方法如下:
ifdown 网络接口的名称 #禁用该接口
ifup 网络接口的名称 #启用该接口
2.2.3 主机名称配置文件
若有永久修改主机的名称,则要修改配置文件/etc/hostname(该文件只会识别第一行),将要设置的主机名写入此文件,然后重启主机即可生效。
也可以用过命令进行修改,使用方法为:
hostnamectl set-hostname 要设置的主机名
2.2.4 域名解析配置文件
在linux操作系统中有两个与域名解析相关的配置文件:
- /etc/resolv.conf:用于为本机指定提供DNS解析服务的服务器地址。对该文件所作的修改会立刻生效。linux操作系统中最多可以指定3个不同的DNS服务器的地址,优先使用第一个。在CentOS7系统中,在此文件中的配置过一段时间就会被覆盖或清除,此时需要修改/etc/NetworkManager/NetworkManager.conf文件,在main部分添加"dns=none"配置项。之后需要重启 NetworkManager 服务。确保/etc/resolv.conf内有配置信息,此时就可以正常解析域名了。
- /etc/hosts:记录主机名与IP地址的映射关系,一般用来保存经常访问的主机的信息。当访问一个位置的域名时,先查找该文件中是否有相应的映射记录,如果找不到再去DNS服务器查询。只需要将"IP地址 域名"写入文件即可。可以将一些经常访问的网站域名写入该文件,可以提高上网速度,此外,这个文件只使用于当前主机,无法作用于整个网络。