Linux系统学习之网络管理

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 网络接口配置使用ifconfig检查和配置网卡lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.

网络接口配置

使用ifconfig检查和配置网卡

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:3576 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3576 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1781256 (1.6 MiB)  TX bytes:1781256 (1.6 MiB)

venet0(eth0)    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00
-00-00-00 inet addr:127.0.0.1 P-t-P:127.0.0.1 Bcast:0.0.0.0 Mask:255.255.255.255 UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 RX packets:149510 errors:0 dropped:0 overruns:0 frame:0 TX packets:130564 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:34270807 (32.6 MiB) TX bytes:33492903 (31.9 MiB) venet0:0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:23.228.103.10 P-t-P:23.228.103.10 Bcast:23.228.103.10
   Mask:255.255.255.255 UP BROADCAST POINTOPOINT RUNNING NOARP MTU:1500 Metric:1 在我的虚拟机上eth0叫venet0,通常不管是eth0也好或venet0也罢,表示的都是以太网的第一块网卡。
其中eth是Ethernet的前三个字母,代表以太网,
0代表第一张网卡,第二块网卡则是eth1,以此类推。 Link encap是指 封装的方式为以太网;HWaddr是指网卡的硬件地址;
inet addr是指网卡当前的IP地址;Broadcast是广播地址
(这部分是由系统根据IP和掩码算出来的,一般不需要算出来的,一般不需要手工设置);
Mask是指掩码;UP说明了该网卡目前处于活动状态;
MTU代表最大的存储单位,即此网卡一次所能传输的最大分包;RX和TX分别代表接受和发送的包;
collision代表发送的冲突数,如果发现值不为0则很可能网络存在故障;txqueuelen代表传输缓冲区长度大小;
第二个设备是lo,表示主机的环回地址,这个地址是用于本地通信的。 关闭和启动网卡的命令是: ifconfig venet0 down ifconfig venet0 up 将IP配置信息写入配置文件 RedHat和CentOS系统的网络配置文件所在目录为/etc/sysconfig/network-scripts/,
通常所在配置文件为ifcfg-eth0,如果有第二块物理网卡,则配置文件为ifcfg-eth1,以此类推。
cat ifcft-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes

其中,DEVICE变量定义了设备的名称;BOOTPROTO变量定义了获取IP的方式,这里BOOTPROTO=dhcp的含义是:
系统在启用这块网卡时,IP将会通过dhcp的方式获得;还有一个可选的值为static,表示静态设置的IP;ONBOO
T变量定义了启动时是否激活使用该设备,yes表示激活,no表示不激活。

 

路由和网关的设置

Linux主机之间使用IP进行通信,假设A主机和B主机同在一个网段内且网卡都处于激活状态,
则A具备和B同样的直接通信的能力(通过交换机或简易的HUB)。
但是如果A主机和B主机处于两个不同的网段,则A必须通过路由器B才能和B通信。
一般来说,路由器属于IT设备的基础设置,每一个网段都应该有至少一个网关。
在Linux上可使用route命令添加默认网关。假设添加的网关是192.168.160.55,添加的方式如下: route add default gw 192.168.160.55 如果想删除的话只需将add改为del即可。 该命令可以简写为如下形式: route del default [root@Cfhost-170820-UCNK /]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 169.254.0.0 0.0.0.0 255.255.0.0 U 1004 0 0 venet0 0.0.0.0 192.168.160.55 0.0.0.0 UG 0 0 0 venet0 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 venet0 如果只使用route命令添加网关,一旦系统重启,配置信息就不存在了,必须将这种配置信息写入配置文件
中才能永久保存。可以进入到
/etc/sysconfig/network-scripts/目录下,找到ifcfg-eth0目录,
添加GATEWAYT=192.168.160.55就可以永久保存。

 DNS客户端配置

 

因特网发明初期,联网的主机数量有限,想要访问对方的主机只需要输入对方的IP地址
即可。
但是随着主机的不断增长,单凭人脑已经无法记忆越来越多的IP地址了。为了解决这个问题,
人们使用hosts主机来记录主机名和IP地址的对应关系,这样访问对方的主机时,就不需要使用IP了,只需
要使用主机名。这个文件在linux下就是/etc/hosts. hosts文件的具体作用如下: 1.为了加快域名解析。当访问网站时,系统会首先查看hosts文件中是否有记录,如果记录存在则直接解析
出对应的IP,这时则不需要请求DNS服务器。 2.方便小型局域网用户使用的内部设备。很多单位的局域网中都存在着不少内部应用系统(比如办公自动化
OA、公司论坛等),平时在工作中也都需要访问,但是由于这些局域网太小而不必为此专门设置DNS服务器,
那么此时使用hosts文件则能简单地解决这个问题。 假设公司里有两台主机,B主机的IP为10.1.1.145,为了方便访问B主机,可以再A主机的/etc/hosts文件中添加一条记录: 10.1.1.145 hostB 完成后再主机上使用ping命令测试B主机的连通性,再ping的输出中可以看到主机名hostB
被正确地解析为10..1.1.145,如果没有之前添加的记录,
这里将会显示ping:unknown host hostB的错误。

/etc/resolv.conf

使用hosts文件毕竟只能做有限的主机记录,无法将所有已知的主机名记录到hosts文件中。因此
,当今几乎所有的主机都在使用DNS来解析地址,从技术上来说,DNS就是全互联网上主机名
及其IP地址对应的数据库。设置主机为DNS客户端的配置文件就是/etc/resolv.conf,其中包含namesever、
、、search、domain这三个关键字。
[root@Cfhost-170820-UCNK ~]# cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver关键字后面会紧跟一个DNS主机的IP地址,可以设置2~3个nameserver,但是主机在查询域名时
,会首先查询第一个DNS,当该DNS不可用时,才会查询第二个DNS,以此类推。

注意:虽然你可以在该文件中定义多于3个的nameserver,但是这并没有意义,因为系统永远不会用
到第四个nameserve

search关键字后面跟的是一个域名。每个主机严格来说都应该有一个FQDN(全限定域名)
,所以往往域名就很长,如果这里写成search google.com,那么www就代表www.google.com,这个关键
字后面可以跟多个域名。

domain关键字和search类似,不同的是domain后面只能跟一个域名






 

网络测速工具

ping 程序的目的在于测试另外一台主机是否可到达,一般来说,如果ping不通某台机器,就是说明对方主机已经严重出问题,但是不排除由于链路防火墙的因素、ping包被丢弃等原因
造成ping不通情况。
ping命令最简单的使用方式是接收一个主机名或IP作为单一的参数,在按回车键后,
执行ping命令的主机会向对端主机发送一个ICMP的echo请求包,对端主机在接收到这个包后
会回应一个ICMP的reply回应包。在linux下ping命令并不会主动停止,需要使用Ctry+C    
组合键来停止,ping命令将会对发出的请求包和收到的回应包进行计数,这样就能计算网络丢包率。

[root@Cfhost-170820-UCNK ~]# ping www.baidu.com
PING www.a.shifen.com (14.215.177.39) 56(84) bytes of data.
64 bytes from 14.215.177.39: icmp_seq=1 ttl=50 time=149 ms
64 bytes from 14.215.177.39: icmp_seq=2 ttl=50 time=149 ms
64 bytes from 14.215.177.39: icmp_seq=3 ttl=50 time=150 ms
64 bytes from 14.215.177.39: icmp_seq=4 ttl=50 time=149 ms
64 bytes from 14.215.177.39: icmp_seq=5 ttl=50 time=149 ms
64 bytes from 14.215.177.39: icmp_seq=6 ttl=50 time=149 ms
64 bytes from 14.215.177.39: icmp_seq=7 ttl=50 time=149 ms
64 bytes from 14.215.177.39: icmp_seq=8 ttl=50 time=150 ms
^C

 host

host命令是用来查询DNS记录的,如果使用域名作为host的参数,命令返回该域名的IP,
如下所示:
[root@Cfhost-170820-UCNK ~]# host www.google.com
www.google.com has address 172.217.11.164
www.google.com has IPv6 address 2607:f8b0:4007:804::2004

注意:如果使用host www.google.com
出现-bash: host: command not found
说明缺包,执行yum install bing-utils命令即可解决

 

traceroute

在IP包结构中有一个定义数据包生命周期的TTL字段,该字段用于表明IP包的生命值,当IP数据包在网络上传输时,每经过一个路由器该值就减1,当该值减为0时此包就会被路由器丢弃。这种设计可用于避免出现一些由于某种原因始终无法到达目的地包不断地在互联网上传递(可以形象的称之为“幽灵包"),减少无谓的网络资源消耗。

 

不过路由器也不是无声无息地将TTL值为0的IP包丢弃的,它会同时给发生该IP数据包的主机发送一个ICMP”超时“信息,主机在接收到这个ICMP包后就同时能得到该路由的IP地址。

 

traceroute原理:它先构造一个TTL值为1的数据包发送给目的地主机,这个数据包在经由第一个路由器时,路由器先将TTL值减1变0,然后将该IP包丢弃,同时给发送一个ICMP消息,这样就得到了经过的第一台路由器的IP地址;然后再构造一个TTL值为2的数据包,以此类推,就能得到该IP包经历的整条链路的路由器IP。这里会有一个问题:traceroute如何确认该IP包成功地被目的主机接收了呢?因为目的主机即便收到了TTL值为1的数据包也不会发送ICMP通知给源主机的。这时traceroute所做的工作就是发送一个UDP包给目的主机,同时制定该UDP接收的端口为主机不可能存在的端口--

 

常见网络故障排查:

首先网络故障分为两类:硬件故障和软件故障

硬件故障又主要分为网卡物理损坏、链路故障等原因。其中网卡物理损坏指网卡设备由于使用中发送电子元件损坏而造成网卡设备无法继续使用的情况;链路故障横多时候表现为网线或者水晶头在制作过程中出现线路问题,或由于线路老化等原因造成物理链路断开,从而致使网络无法物理连通的情况。

 

软件主要表现为网卡驱动故障,也就是操作系统对网卡驱动的不兼容,这个问题往往需要安装对应的网卡设备驱动来解决。

基于以上两点,将解决网络在故障时采用的步骤如下:

 

第一步 是要确认网卡本身是否能正常工作?利用ping工具可以确认这一点。输入ping 127.0.0.1,然后看是否能正常ping通?这里的127.0.0.1被称为主机的回环接口,是TCP/IP协议栈正常工作的前提。如果ping不通,一般可以证实为本机TCP/IP协议栈有问题,自然就无法连接网络了,不过,出现这种现象的概率比较低。

第二步确认网卡是否出现物理或驱动故障,使用ping本机IP地址,如果ping通说明本地设备和驱动都正常。

第三步要确认能否ping通同网段的其他主机。这一步主要是确认二层网络设备(比如交换机或者HUB)工作是否正常。如果ping不通往往说明二层网络上出现了问题,可能涉及交换机的端口工作模式、 vlan划分等因素。

第四步要确认是否能ping通网关IP。如果数据包能正常到达网关,则说明主机和本地网络都正常。

第五步确认是否能ping通公网上的IP,如果可以则说明本地的路由设置正确、否则就要确认路由设备是否做了正确的net或路由设置。

第六步确认是否能ping通公网上的某个域名,如果能ping 通则说明DNS部分设置正确。

 

即便实际工作中可能受到诸如更复杂的网络环境、安全ACL、防火墙等众多的因素的影响,而加大了网络排查的困难,但以上步骤是排除网络故障的主要环节,在排除不同的网络个性化的设置之后,排查步骤都与此类似

 

目录
相关文章
|
13天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
167 55
|
11天前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
132 78
|
23天前
|
机器学习/深度学习 人工智能 算法
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
宠物识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了37种常见的猫狗宠物种类数据集【'阿比西尼亚猫(Abyssinian)', '孟加拉猫(Bengal)', '暹罗猫(Birman)', '孟买猫(Bombay)', '英国短毛猫(British Shorthair)', '埃及猫(Egyptian Mau)', '缅因猫(Maine Coon)', '波斯猫(Persian)', '布偶猫(Ragdoll)', '俄罗斯蓝猫(Russian Blue)', '暹罗猫(Siamese)', '斯芬克斯猫(Sphynx)', '美国斗牛犬
129 29
【宠物识别系统】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+图像识别
|
14天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
52 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
1天前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
47 7
|
10天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
65 13
|
9天前
|
数据采集 监控 安全
公司网络监控软件:Zig 语言底层优化保障系统高性能运行
在数字化时代,Zig 语言凭借出色的底层控制能力和高性能特性,为公司网络监控软件的优化提供了有力支持。从数据采集、连接管理到数据分析,Zig 语言确保系统高效稳定运行,精准处理海量网络数据,保障企业信息安全与业务连续性。
32 4
|
1月前
|
弹性计算 监控 数据库
制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程
本文通过一个制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程,展示了企业级应用上云的实践方法与显著优势,包括弹性计算资源、高可靠性、数据安全及降低维护成本等,为企业数字化转型提供参考。
61 5
|
1月前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
39 3
|
11天前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
31 0