当前位置: 首页 > news >正文

Linux入门(四)

计算机原理系列

欢迎大家关注「海拉鲁知识大陆」 多交流不迷路

Linux入门(四)

先问个问题:如何查看一个域名有哪些Name Server记录呢?

Linux 中提供了不少网络相关的指令,因为网络指令比较分散,我从下面几个维度梳理常用的网络指令:

  • 远程操作;
  • 查看本地网络状态;
  • 网络测试;
  • DNS 查询;
  • HTTP。

这块知识从体系上属于Linux指令哈,同时也关联了计算机网络的知识,比如说TCP/IP 协议、UDP协议等。

1.远程操作指令

远程操作指令用得最多的是ssh,ssh指令允许远程登录到目标计算机并进行远程操作和管理。还有一个比较常用的远程指令是scp,scp帮助我们远程传送文件。

ssh(Secure Shell)
有一种场景需要远程登录一个Linux系统,这时我们会用到ssh指令。比如你想远程登录一台机器,可以使用ssh root@ip的方式,如下图所示:
图片
使用了ssh指令从当前机器登录另一台虚拟机192.168.21.211。

scp
另一种场景是我需要拷贝一个文件到远程,这时可以使用scp指令,
从u1机器拷贝home目录下的文件a.txt到u2。home目录有一个简写就是用~。具体指令如下:

scp ~/a.txt root@u2:/home/a.txt

输入scp指令之后会弹出一个提示,要求输入密码,系统验证通过后文件会被拷贝。

2.查看本地网络状态

如果想要了解本地的网络状态,比较常用的网络指令是ifconfig和netstat。

ifconfig
当想要知道本地ip以及本地有哪些网络接口时,就可以使用ifconfig指令。你可以把一个网络接口理解成一个网卡,有时候虚拟机会装虚拟网卡,虚拟网卡是用软件模拟的网卡。

如VMware就会为每个虚拟机创造一个虚拟网卡,通过虚拟网卡接入虚拟网络。当然物理机也可以接入虚拟网络,它可以通过虚拟网络向虚拟机的虚拟网卡上发送信息哈。

如下是我的虚拟机用ifconfig查看网络接口信息。
图片
可以看到我的这台虚拟机一共有2个网卡,ens192和lo。lo是本地回路(local lookback),发送给lo就相当于发送给本机。ens192是一块连接着真实网络的虚拟网卡。

netstat
另一个查看网络状态的场景是想看目前本机的网络使用情况,这个时候可以用netstat。

默认行为
不传任何参数的netstat帮助查询所有的本地socket,下图是netstat | less的情况。
图片
如上我们看到的是socket文件。socket是网络插槽被抽象成了文件,负责在客户端、服务器之间收发数据。当客户端和服务端发生连接时,客户端和服务端会同时各自生成一个socket文件,用于管理这个连接。这里,可以用wc -l数一下有多少个socket。
图片

可以看到一共有145个socket文件,因为有很多socket在解决进程间的通信。就是将两个进程一个想成客户端,一个想成服务端。并不是真的有145多个连接着请求互联网哈。其实这里就跟我们性能瓶颈有点关系了哦,一台机器最大连接多少socket,默认是多少socket,是否存在不够的情况呢?

查看 TCP 连接
如果想看有哪些TCP连接,可以使用netstat -t。比如下面我通过netstat -t看tcp协议的网络情况:
图片
如上图所示,可以看到有3个TCP连接了。

查看端口占用
还有一种非常常见的情形,我们想知道某个端口是哪个应用在占用。如下图所示:
图片
这里我们看到22端口被sshd,也就是远程登录模块被占用了。

  • -n是将一些特殊的端口号用数字显示,
  • -t是指看 TCP 协议,
  • -l是只显示连接中的连接,
  • -p是显示程序名称。

3.网络测试

当我们需要测试网络延迟、测试服务是否可用时,可能会用到ping和telnet指令。

ping
想知道本机到某个网站的网络延迟,就可以使用ping指令。如下图所示:图片
ping一个地址需要使用ICMP协议。所以你可以在上图中看到icmp序号。 这里的时间time是往返一次的时间。ttl叫作time to live,是封包的生存时间。就是说,一个封包从发出就开始倒计时,如果途中超过128ms,这个包就会被丢弃。如果包被丢弃,就会被算进丢包率。

另外ping还可以帮助我们看到一个域名网址的IP地址。 通过网址获得IP地址的过程叫作DNS Lookup(DNS 查询)。ping利用了DNS查询,但是没有显示全部的DNS查询结果。

telnet
有时候我们想知道本机到某个IP+端口的网络是否通畅,也就是想知道对方服务器是否在这个端口上提供了服务。这个时候可以用telnet指令。 如下图所示:
图片
telnet执行后会进入一个交互式的界面,这个时候可以发送HTTP请求等。

4.DNS 查询

我们排查网络故障时想要进行一次DNS Lookup,想知道一个网址DNS的解析过程。这个时候有多个指令可以用。

host
host就是一个DNS查询工具。比如我们查询baidu的DNS,如下:

host www.baidu.com

如果想追查某种类型的记录,可以使用host -t。比如下图我们追查baidu的AAAA记录。

host -t AAAA www.baidu.com

dig
dig指令也是一个做DNS查询的。不过dig指令显示的内容更详细。大家可以试试哈。

dig www.baidu.com

5. HTTP相关

最后我们来说说http协议相关的指令。

curl
如果要在命令行请求一个网页,或者请求一个接口,可以用curl指令。curl支持很多种协议,比如LDAP、SMTP、FTP、HTTP等。

我们可以直接使用 curl 请求一个网址,获取资源,比如我用 curl 直接获取了百度的主页,如下图所示:
图片
如果只想看HTTP返回头,可以使用curl -I。

另外curl还可以执行POST请求,比如下面这个语句:

curl -d '{"x" : 1}' -H "Content-Type: application/json" -X POST http://localhost:3000/api

curl在向localhost:3000发送POST请求。-d后面跟着要发送的数据, -X后面是用到的 HTTP方法,-H是指定自定义的请求头。

6.总结

复习一下今天的指令:

  • 远程登录的ssh指令;
  • 远程拷贝文件的scp指令;
  • 查看网络接口的ifconfig指令;
  • 查看网络状态的netstat指令;
  • 测试网络延迟的ping指令;
  • 可以交互式调试和服务端的telnet指令;
  • 两个DNS查询指令host和dig;
  • 可以发送各种请求包括HTTPS的curl指令。

如何查看一个域名有哪些NS记录了呢?

【解析】host指令提供了一个-t参数指定需要查找的记录类型。我们可以使用host -t ns {网址}。另外dig也提供了同样的能力。如果你感兴趣,还可以使用man对系统进行操作。

http://www.dtcms.com/a/391604.html

相关文章:

  • 以下是与LoRa技术相关的数学公式整理
  • (3) rust和前端交互
  • TextFlux重磅发布:告别复杂控制信号!多语种高保真场景文本编辑新时代
  • A股大盘数据-20250919分析
  • [x-cmd] X-CMD 的依赖非常精简,即装即用,无需额外配置
  • TM52F1363 电子元器件 海速芯 8位高性能微控制器(MCU)技术解析
  • 打工人日报#20250919
  • vue3学习日记(十九):组件实例详解
  • 【开题答辩全过程】以 基于python的订餐系统为例,包含答辩的问题和答案
  • 题解:CF2143E Make Good
  • 鸿蒙:使用worker实现多线程通信
  • Spring MVC 常用注解及代码示例
  • 【DMA】DMA入门:外设数据到内存,以串口DMA接收为例,解析底层实现
  • Java 中 super 和 this关键字总结
  • 我的创作纪念日 ----- 第512天
  • 【docker】删除镜像
  • 亚马逊 MWS 关键字 API 实战:关键字搜索商品列表接口深度解析与优化方案
  • 博文干货 | Pulsar 平均负载器(AvgShedder)
  • 【硬件】嘉立创专业版layout流程(一)
  • PyQt6之分组框
  • 深度剖析 IM 单聊与群聊架构设计
  • 农业自动化:技术重塑传统农业的新范式
  • Nginx 日志文件在哪?
  • 小程序开发者转多端应用app调整视频播放功能
  • 九、Java-注解
  • Java学习笔记——AI插件、新建模块、算数运算符类型、隐式转换、强制转换、自增自减运算符、赋值运算符、关系运算符、逻辑运算符、三元运算符
  • 【从零开始刷力扣006】leetcode206
  • FreeRTOS——介绍及移植过程
  • Day 07 Physics list-----以B1为例
  • 重读一次IS015765-2,记录对错误和异常处理的方式