01-Linux网络设置

news2025/1/16 5:34:37

1、查看及测试网络

查看及测试网络配置是管理Linux网络服务的第一步,其中的大多数命令以普通用户的权限就可以完成操作,但普通用户在执行/sbin目录中的命令时需要指定命令文件的决对路径。

1.1 查看网络接口地址

主机的网卡通常称为网络接口,在Linux操作系统中,使用ifconfig命令可查看网络接口的地址配置信息。

注:在不带任何选项和参数执行ifconfig命令时,将显示当前主机中已启用的网络接口信息。

例如,直接执行ifconfig命令后可以看到ens33、lo这两个网络接口的信息,如下图:

在上图显示结果中,ens33对应为第一块物理网卡,lo对应为虚拟的回环接口。

补充:

  • ens33:第一块以太网卡的名称,en是EtherNet的缩写,表示网卡类型为以太网;s表示热插拔插槽上的设备,数字33表示插槽编号。(注意,在不同的操作系统上,网络接口名称可能不同)
  • lo:“回环”网络接口,lo是loopback的缩写,它并不代表真正的网络接口,而是一个虚拟的网络接口,其IP地址默认是127.0.0.1(注意,回环地址通常仅用于对本机的网络测试)

1.2 查看指定的网络接口信息

可以使用网络接口的名称作为ifconfig命令的参数,来查看其中某一个网络接口的信息(不论该网络接口是否处于激活状态)。

例如,执行ifconfig ens33命令后可以只查看网卡ens33的配置信息,如下图:

                        注:         RX——接收的数据包

                                        TX——发送的数据包

在上图中,可以获知ens33网卡的一些基本信息:

                inet——表示网络接口的IP地址,如192.168.10.100

                netmask——表示网络接口的子网掩码,如255.255.255.0

                broadcast——表示网络接口所在网络的广播地址,如192.168.10.255

                ether——表示网络接口的物理地址(MAC地址),如00:0c:29:76:99:66

另外,还可以通过TX和RX等信息了解通过该网络接口发送和接收的数据包个数、流量等更多属性。

1.3 查看主机名称

在Linux系统中,相当一部分网络服务都会通过主机名来识别主机,如果主机名配置不当,可能会导致程序功能出现故障。

可使用hostname命令来查看当前主机的主机名(不添加任何选项或参数),如下图:

1.4 查看路由表的条目

路由表决定着从本机向其他主机、其他网络发送数据的去向,是排除网络故障的关键信息。

可直接执行route命令来查看当前主机中的路由表信息,如下图:

在图中的输出结果里:

  • Destination列——对应目标网段的地址(当目标网段是default时,表示此行是默认网关记录)
  • Gateway列——对应下一跳路由器的地址(当下一跳为gateway时,表示目标网段是与本机直接相连的)

注:直接执行route命令时,无法直接看出默认网关地址。

  • iface列——对应发送数据的网络接口

route若结合-n选项使用,可以将路由记录中的地址显示为数字形式(这在路由表条目较多的情况下,能够加快执行速度)。

例如,下图中执行route -n命令后,输出信息中的gateway地址将显示为:192.168.10.254,

默认网关记录中的default也将显示为0.0.0.0

1.5 查看网络连接情况

(1)netstat命令——查看网络连接状况

可以通过netstat命令来查看当前操作系统的网络连接状态、路由表、接口统计等信息。该命令的常用选项有:

-a——显示主机中所有活动的网络连接信息

-n——以数字形式显示相关的主机地址、端口等信息

-r——显示路由表信息

-I——显示处于监听状态的网络连接及端口信息

-t——查看TCP相关的信息

-u——显示UDP相关的信息

-p——显示与网络连接相关联的进程号、进程名称信息(该选项需要root权限)

注:通常使用-anpt组合选项,以数字形式显示当前系统中所有的TCP连接信息(同时会显示对应的进程信息),如下图:

还可结合管道符使用,如下图中执行命令后,可查看本机中是否有监听TCP25端口的服务程序:

(2)ss命令——查看网络连接状况

它是Socket Statistics的缩写,主要用于获取socket的统计信息,可以显示和netstat命令类似的输出内容。

但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

注:使用ss命令之前要先确保iproute程序包已被安装(可通过yum方式进行安装)。

ss命令常用的选项有:

-h --help 通过该选项获取更多的使用帮助

-V --version 显示软件的版本号

-t --tcp 显示TCP协议的sockets

-u --udp 显示UDP协议的sockets

-l --listening 只显示处于监听状态的端口

-p --processes 显示监听端口的进程

-r --resolve 把IP解释为域名,把端口号解释为协议名称

注:在ss命令的输出结果中,可以提供TCP和UDP的socket信息,以及各种服务建立的持久连结。

例如,执行下图中的命令可以显示TCP协议下已经建立的连接:

其中,Local Address:Port——表示本地监听的IP和端口,

Peer Address:Port——表示远程连接的IP和端口

1.6 测试网络连接

要访问网络服务的前提是网络连接处于正常状态,若网络连接不稳定,甚至无法连接时

用户是无法正常访问网络服务的。所以使用网络连接测试的命令来确定故障点就先尤为重要了。

(1)测试网络连通性

使用ping命令可以向目标主机持续地发送测试数据包,并获得反馈结果(直到按Ctrl+C的组合键后终止测试)

例如,下图中的命令可以测试从本机到另一台主机192.168.10.101的连通性情况:

注:使用ping命令测试连通性时,如果本主机和目标主机之间连接正常,将会收到返回的数据包。

若不能获得从目标主机发回的反馈数据包——表示在本主机到目标主机之间存在网络连通型故障:

  • 若看到Destination Host Unreachable的反馈信息——表示目标主机不可达(可能目标地址不存在或者主机已经关闭)
  • 若看到Network is unreachable的反馈信息——表示没有可用的路由记录(如默认网关),无法到达目标主机所在的网络
  • 若看到Request timeout的反馈结果——表示数据包响应缓慢或丢失(与目标主机之间的连接超时)

补充:当目标主机有严格的防火墙限制时,也可能收到Request timeout的反馈结果。

在xshell上关闭防火墙的命令是:systemctl stop firewalld,如下图:

(2)跟踪数据包的路由途径

使用traceroute命令之前,需要先通过yum方式安装traceroute软件包。

traceroute命令——可用于测试从当前主机到目的主机之间经过了哪些网络节点(并显示各中间节点的连接状态——即响应时间)。

注:对于无法响应的节点,连接状态将显示为*。

如下图中,可以看出从本机到目标主机192.168.7.7之间,中间需要跨越一个

路由器192.168.4.1:

虽然使用traceroute命令能够比ping命令更加准确的定位网络连接的故障点,但是traceroute的执行速度会比ping命令稍慢。

通常情况下,会先用ping命令测试与目标主机的网络连接,如果发现网络连接有故障,再使用traceroute命令跟踪查看是在哪个中间节点存在故障。

如下图:

2、测试DNS域名解析

当域名解析出现故障的时候,将无法使用域名的形式访问网络中的Web站点、电子邮件系统等服务。

2.1 使用nslookup命令来测试DNS域名解析

nslookup——是用来测试域名解析的专用工具(使用时指定要解析的目标域名作为参数即可)。

注:在使用nslookup命令之前,要先通过yum安装bind-utils程序包。

例如,在下图中执行命令后,nslookup程序将提交查询请求,询问站点www.baidu.com对应得IP地址是多少:

上图中,Server那一行指出了所使用的DNS服务器是114.114.114.114

Non-authoritative answer:下面是DNS解析反馈的结果。

若能成功反馈出要查询域名的IP地址,则表示域名解析没有问题,否则的话:

  • 若出现no severs could be reached的信息——表示不能连接到指定的DNS服务器
  • 若出现can't find xxx.yyy.zzz:NXDOMAIN的信息——表示要查询的域名不存在

2.2 使用dig命令来测试域名解析

dig命令是一个用于查询DNS域名服务器的灵活的工具,它相比于nslookup命令可以得到更多的域名信息。

dig命令也可以用来测试域名解析,大多数系统管理员都是利用dig作为DNS问题的故障判断工具,因为它具有灵活性好、易用、输出清晰等特点。

注:dig命令可以用来查询单个主机的信息。

在使用dig查询的过程中,可以指定DNS服务器(如果不指定DNS服务器,默认会使用/etc/resolve.conf里面的地址作为DNS服务器):

3、设置网络地址参数

在Linux主机中,手动修改网络配置有两种最基本的方法:

  • 临时配置:通过命令行直接修改当前正在使用的网络地址(这种方式简单迅速),修改后立即可以上生效,一般在调试网络的过程中使用。

注:由于这种方式所做的修改并没有固定的存放在静态的文件中,因此当重启network服务或重启主机后将会失效。

  • 固定配置:通过配置文件来存放固定的各种网络地址,需要重启network服务或重启主机后才会生效。

注:这种方式操作上要相对复杂一些,但相当于永久配置,一般在需要为服务器设置固定的网络地址时使用。

3.1 使用网络配置命令

(1)、修改网卡的地址、状态

使用ifconfig命令不仅可以查看网卡的配置,还可以修改网卡的IP地址、子网掩码,还可以绑定虚拟网络接口、激活或禁用网络接口。

需要设置网卡的地址时,命令格式如下:

注:当不指定子网掩码时,将使用IP地址所在分类的默认子网掩码。

指定新的IP地址和子网掩码后,原有的地址将会失效。

补充:使用这种命令修改的IP地址和子网掩码,虽然会立即生效,但是在重启主机之后修改就不存在了。

例如,执行下图中的命令,可以将网卡ens33的IP地址设置为192.168.10.192,子网掩码长度为24:

(2)禁用、激活网络接口

可以使用down和up命令,来临时禁用或重新激活指定的网络接口。

注:网络接口被禁用之后,将无法使用该网络接口与其他主机进行连接。

例如,执行下图中的命令后,将禁用网卡ens33:

禁用之后,可在虚拟机上使用ip a命令查看一下当前的IP信息,如下图:

会发现ens33的部分被禁用了,此时,该网络的IP地址将不能使用,

若要重新使用需执行下图中的命令:

然后再使用ifconfig命令查看一下ens33的状态,如下图:

(3)、为网卡绑定虚拟接口

在对服务器网络进行调试的过程中,有时候需要临时在同一个网卡上使用一个新的IP地址,但是又不能覆盖原有的IP地址而导致服务程序不可用。这时候,就可以为网卡绑定一个虚拟的网络接口,然后和为虚网络接口设置新的IP地址(相当于一块网卡配多个IP地址)。

例如,执行下图中的操作,可以为网卡ens33添加一个虚拟接口的ens33:0,

并将这个虚拟接口的IP地址设置为172.17.17.17。虚拟接口的IP地址和网卡原有的IP地址都可以正常使用:

注:可以根据需要来添加更多的虚拟接口,如ens33:1,ens33:2等

3.2 添加、删除静态路由记录

route命令不仅可用于查看路由表信息,还可添加、删除静态的路由表条目(包括设置默认网关地址,默认网关记录是一条特殊的静态路由条目)

(1)添加、删除到指定网段的路由记录

通过route add命令可以添加路由记录。

结合-net选项——可指定目标网段的地址;

结合gw选项可指定下一跳路由器的IP地址。

例如,若要使本机访问另一个网段192.168.3.0/24,那么数据包都应该发送给192.168.4.254,如下图:

使用route del命令可以删除路由记录(结合-net选项来指定对应路由记录中目标网段的地址即可)。例如,下图中的命令可以删除上文中添加到192.168.3.0/24网段的静态路由条目:

(2)添加、删除默认网关记录

与添加、删除静态路由记录的命令格式类似,但指定目标网段时只需简单地使用default表示即可,

如下图中的命令执行后,将删除已有的到192.168.4.1的默认网关记录,再添加新的192.168.4.254的默认网关记录:

注:在同一个主机的路由表中只应有一条默认网关记录,若同时存在多条默认网关记录,则可能会导致该主机的网络连接出现故障。

3.3 修改主机的名称

用hostname命令——可显示、修改当前主机的名称。

如下图,执行命令后可将主机名改为www.bdqn.com:

4、修改网络配置文件

当需要为Linux服务器设置固定的网络地址时,若仍使用ifconfig等网络命令来进行设置,将会大大降低服务器运行的可靠性。

若要使Linux主机在重启系统以后仍然能够使用相同的网络配置,那么直接修改配置文件是最好的方法。

4.1 网络接口配置文件

网络接口配置文件默认位于/etc/sysconfig/network-scripts中,文件名的格式是ifcfg-XXX(其中的XXX是网络接口的名称)。

例如说,网卡ens33的配置文件是ifcfg-ens33,回环接口lo的配置文件是ifcfg-lo。如下图所示,可查看当前网卡中的文件主要有哪些:

在网卡的配置文件ifcfg-ens33中,可以看到静态IP地址的部分内容,如下图:

上图中各配置项的含义是:

  • TYPE——设置网卡类型,如Ethernet表示以太网
  • BOOTPROTO——设置网络接口的配置方式

static——表示使用静态指定的IP地址;

dhcp——表示通过DHCP的方式动态获取地址

  • DEVICE——设置网络接口的名称
  • ONBOOT——设置网络接口是否在Linux操作系统启动时激活
  • IPADDR——设置网络接口的IP地址
  • NETMASK——设置网络接口的子网掩码
  • GATEWAY——设置网络接口的默认网关地址

4.2 启用、禁用网络

修改了网络接口的配置文件之后,若想要使新的配置生效,可以重启network服务或者重启主机。重启命令可以用下图中的操作:

注:如果只是禁用、启动某一个网络接口,可分别使用两个控制脚本ifdown、ifup命令。

例如,下图中的操作会先关闭ens33,然后根据配置文件启用ens33网卡:

4.3 修改主机名称配置文件

(1)若要修改Linux操作系统的主机名,可以修改配置文件/etc/hostname,

将要设置的主机名写入到此文件内。

注:如果文件内输入了多行内容,此时系统仅仅识别第一行的内容为系统主机名。

例如,执行下图中的操作之后,可以将主机名由默认的localhost.localdomain改为www.bdqn.com:

如果要让其生效,需要重启Linux系统。

(2)还可以通过hostnamectl命令来修改主机名,如下图:

注:这种方法修改后的主机名,不用重启Linux系统即可生效。

5、域名解析配置文件

在Linux系统中,有两个与域名解析相关的配置文件:

5.1 指定为本机提供DNS解析的服务器地址

在/etc/resolv.conf文件中记录了本机默认使用的DNS服务器的地址信息,

(对该文件所做的修改将会立刻生效)。

注:在Linux系统中,最多可以指定3个不同的DNS服务器地址,优先使用第一个DNS服务器。

例如,执行下图中的命令可以指定默认使用的两个DNS服务器地址分别位于

202.106.0.20和202.106.148.1:

5.2 本地主机映射文件

在/etc/hosts文件中记录着一份主机名与IP地址的映射关系表,一般用来保存经常需要访问的主机的信息。

注:当访问一个未知的域名时,先查找该文件中是否有相应的映射记录,如果找不到再去向DNS服务器查询。

例如,若在/etc/hosts文件中添加119.75.218.70 www.baidu.com的映射记录,则当访问网站www.baidu.com时,将会直接向IP地址119.75.218.70发送Web请求,省略了向DNS服务器解析IP地址的过程,如下图:

  • 注:对于经常访问的一些网站,可以通过在/etc/hosts文件里添加正确的映射记录,来减少DNS查询的过程,从而提高上网速度。
  • 若添加了错误的映射记录,则可能导致网站访问出现异常。
  • 因为hosts文件只保存在本地,所以其中的映射记录也只适用于当前主机,而无法作用于整个网络。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1810496.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

轻松驾驭视频节奏:灵活调整视频播放速度,让视频内容更出彩!

视频已经成为了我们生活中不可或缺的一部分。无论是观看电影、电视剧,还是浏览短视频、直播内容,我们都希望能够根据自己的喜好和需求来调整视频的播放速度,甚至精确控制每一秒的播放内容。那么,如何轻松实现这一愿望呢&#xff1…

torchmetrics,一个无敌的 Python 库!

更多Python学习内容:ipengtao.com 大家好,今天为大家分享一个无敌的 Python 库 - torchmetrics。 Github地址:https://github.com/Lightning-AI/torchmetrics 在深度学习和机器学习项目中,模型评估是一个至关重要的环节。为了准确…

Springboot结合redis实现关注推送

关注推送 Feed流的模式 Timeline:不做内容筛选,简单的按照内容发布时间排序。常用于好友与关注。例如朋友圈的时间发布排序。 优点:信息全面,不会有缺失。并且实现也相对简单 缺点:信息噪音较多,用户不一定感兴趣,内容获取效率…

打造精细化运维新玩法(三)

实践SLO,概括下就是在相对标准、统一的框架下指导和推动服务质量的数字化建设,形成对组织有价值的数据资产和流程规范。借用在人工智能和机器学习领域的观点,算法的上限受限于数据质量的好坏,所以从源头上建设高质量的数据非常重要…

【电赛】STM32-PID直流减速电机小车【寻迹+避障+跟随】【更新ing】

一.需求分析 1.主控:STM32C8T6(没什么好说的哈哈) 2.电机:JAG25-370电机 【问】为什么要用直流减速电机?? PID控制器需要依靠精确的反馈信号来调整其输出,确保电机按照预定的速度和位置运行…

独立游戏之路:Tap篇 -- Unity 集成 TapTap 广告详细步骤

Unity 集成 TapADN 广告详细步骤 前言一、TapTap 广告介绍二、集成 TapTap 广告的步骤2.1 进入广告后台2.2 创建广告计划2.3 选择广告类型三、代码集成3.1 下载SDK3.2 工程配置3.3 源码分享四、常见问题4.1 有展现量没有预估收益 /eCPM 波动大?4.2 新建正式媒体找不到预约游戏…

介绍Linux

目录 1.什么是操作系统 2.现实生活中的操作系统 3.操作系统的发展史 4.操作系统的发展 Linux的不同版本以及应用领域 1.Linux内核及发行版介绍 <1>Linux内核版本 <2>Linux发行版本 2.应用领域 个⼈桌⾯领域的应⽤ 服务器领域 嵌⼊式领域 3.文件和目录 …

HDFS 读写数据流程

优质博文&#xff1a;IT-BLOG-CN 一、HDFS 写数据流程 HDFS 文件写入流程图如下&#xff1a;三个模块&#xff08;客户端、NameNode、DataNode&#xff09; 【1】校验&#xff1a; 客户端通过 DistributedFileSystem 模块向 NameNode 请求上传文件&#xff0c;NameNode 会检…

Vue 面试通杀秘籍

理论篇&#xff1a; 1. 说说对 Vue 渐进式框架的理解&#xff08;腾讯医典&#xff09; a) 渐进式的含义&#xff1a; 主张最少, 没有多做职责之外的事 b) Vue 有些方面是不如 React&#xff0c;不如 Angular.但它是渐进的&#xff0c;没有强主张&#xff0c; 你可以在原有…

Java面向对象-Object类的toString方法、equals方法

Java面向对象-Object类的toString方法、equals方法 一、toString二、equals三、总结 一、toString Object的toString方法。 方法的原理&#xff1a; 现在使用toString方法的时候&#xff0c;打印出来的内容不友好。 现在想要知道对象的信息。 出现的问题&#xff1a;子类Stu…

SAP Build 2 PDF数据提取与决策树(未完成)

0. 安装desktop agent 在后续过程中发现要预先安装desktop agent&#xff0c;否则没法运行自动化流程… 0.1 agent下载 参考官方文档说明 https://help.sap.com/docs/build-process-automation/sap-build-process-automation/create-user-in-rbsc-download-repository?loca…

AI办公自动化:用Kimi批量在Excel文件名中加入日期

工作任务&#xff1a;在一个文件夹中所有的Excel文件后面加上一个日期 在Kimi中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;写一个Python脚本&#xff0c;具体步骤如下&#xff1a; 打开文件夹&#xff1a;F:\AI自媒体内容\AI行业数据分析\投融资 读取里面所…

18.2 HTTP服务器-处理函数、响应404错误

1. 处理函数 处理来自客户端的请求&#xff0c;并回之以特定的响应&#xff0c;这是处理函数的主要任务。在处理函数中&#xff0c;我们通常会完成如下工作&#xff1a; 验证请求路径 http.Request.URL.Pathhttp.NotFound(...) 当请求没有对应的处理函数时&#xff0c;返回4…

机器学习笔记:label smoothing

在传统的分类任务中&#xff0c;我们通常使用硬标签&#xff08;hard labels&#xff09; 即如果一个样本属于某个类别&#xff0c;其对应的标签就是一个全0的向量&#xff0c;除了表示这个类别的位置为1。例如&#xff0c;在一个3类分类任务中&#xff0c;某个样本的标签可能是…

【Vue】购物车案例-构建项目

脚手架新建项目 (注意&#xff1a;勾选vuex) 版本说明&#xff1a; vue2 vue-router3 vuex3 vue3 vue-router4 vuex4/pinia vue create vue-cart-demo需要勾选上vuex&#xff0c;由于这个项目只有一个页面&#xff0c;vuex可勾可不勾 将原本src内容清空&#xff0c;替换成教学…

缓存更新策略中级总结

背景 看到好些人在写更新缓存数据代码时&#xff0c;先删除缓存&#xff0c;然后再更新数据库&#xff0c;而后续的操作会把数据再装载的缓存中。然而&#xff0c;这个是逻辑是错误的。试想&#xff0c;两个并发操作&#xff0c;一个是更新操作&#xff0c;另一个是查询操作…

数据结构(常见的排序算法)

1.插入排序 1.1直接插入排序 在[0 end]区间上有序&#xff0c;然后将&#xff08;end1&#xff09;的数据与前面有序的数据进行比较&#xff0c;将&#xff08;end1&#xff09;的数据插入&#xff0c;这样[0 end1]区间上就是有序的&#xff0c;然后再向后进行比较。 例如&a…

VXLAN技术

VXLAN技术 一、VXLAN简介 1、定义 VXLAN&#xff08;Virtual eXtensible Local Area Network&#xff09;&#xff1a;采用MAC in UDP&#xff08;User Datagram Protocol&#xff09;封装方式&#xff0c;是NVO3&#xff08;Network Virtualization over Layer 3&#xff09…

机器学习算法 —— 贝叶斯分类之模拟离散数据集

&#x1f31f;欢迎来到 我的博客 —— 探索技术的无限可能&#xff01; &#x1f31f;博客的简介&#xff08;文章目录&#xff09; 目录 实战&#xff08;贝叶斯分类&#xff09;莺尾花数据模拟离散数据集库函数导入数据导入和分析模型训练和预测 总结 实战&#xff08;贝叶斯…

C语言 | Leetcode C语言题解之第144题二叉树的前序遍历

题目&#xff1a; 题解&#xff1a; int* preorderTraversal(struct TreeNode* root, int* returnSize) {int* res malloc(sizeof(int) * 2000);*returnSize 0;if (root NULL) {return res;}struct TreeNode *p1 root, *p2 NULL;while (p1 ! NULL) {p2 p1->left;if (…