Linux网络配置和维护命令(二)



本篇讲解:lsof、ping、traceroute、nslookup-dig、route、static-routes文件、设置网络参数的方式等。

列出系统中打开的文件-lsof

简介

lsof(List Open Files)是一个用于列出系统中打开文件的命令行工具。它可以显示当前系统中打开的文件、目录、套接字、管道等资源,以及与它们相关联的进程信息。通过 lsof,可以轻松查看文件被哪些进程占用,排查文件锁定、网络端口被占用等问题。

格式

lsof [选项]

常用选项(参数)

  • -a:逻辑与操作,用于结合多个选项进行筛选。
  • -c <命令名>:列出指定命令打开的文件。
  • -i:显示网络连接信息,支持指定协议或端口号。
  • -p :列出指定进程 ID(PID)打开的文件。
  • -u <用户名>:列出指定用户打开的文件和网络连接。
  • -t:仅显示进程 ID。
  • -r <秒数>:持续监控,按指定秒数刷新显示。

常用示例

列出所有打开的文件和网络连接。

lsof

列出指定进程 ID(如 1234)打开的文件和网络连接。

lsof -p 1234

列出 root 用户打开的文件和网络连接。

lsof -u root

列出指定端口(如 22)被哪些进程占用。

lsof -i:22

以监听模式查看网络连接。

lsof -i -sTCP:LISTEN

列出 ssh 命令打开的文件。

lsof -c ssh

显示进程 ID 为 5678 的进程打开的网络连接,仅显示符合条件的条目。

lsof -i -a -p 5678

输出结果简要说明

  • COMMAND:进程名。
  • PID:进程 ID。
  • USER:拥有进程的用户名。
  • FD:文件描述符,表示文件在进程中的打开状态。
  • TYPE:文件类型(如文件、目录、套接字等)。
  • DEVICE:设备名。
  • SIZE/OFF:文件大小或偏移量。
  • NODE:节点号。
  • NAME:文件的名称或路径。

测试网络连接-ping

简介

ping 是一个用于测试网络连通性的命令行工具。它通过向目标主机发送 ICMP(Internet Control Message Protocol)回显请求消息,并等待回显应答,来检查网络连接是否正常以及计算数据包的往返时间(RTT)。是VRRP心跳检测的一种方式。

格式

ping [选项] <目标主机>

常用选项(参数)

  • -c <数量>:指定发送的请求次数。例如,-c 4 表示发送 4 次请求。
  • -i <间隔>:设置发送请求的间隔时间,单位为秒。例如,-i 2 表示每 2 秒发送一个请求。
  • -t :设置生存时间(TTL),指定数据包可以经过的最大路由数。默认值通常为 64。
  • -s <大小>:设置每个请求的数据包大小,单位为字节。例如,-s 56 表示每个数据包大小为 56 字节(不包括 ICMP 头部)。
  • -W <超时>:设置等待回复的超时时间,单位为秒。例如,-W 5 表示等待 5 秒后超时。
  • -w <时间>:设置 ping 命令的总运行时间。指定时间后,ping 将停止发送请求并退出。例如,-w 10 表示 ping 命令将运行 10 秒钟后停止。

示例

测试到 google.com 的网络连通性,并发送 4 次请求。

ping -c 4 google.com

设置每个请求的数据包大小为 128 字节,并测试到 example.com 的网络连通性。

ping -s 128 example.com

测试到 192.168.1.1 的网络连通性,每 3 秒发送一次请求。

ping -i 3 192.168.1.1

注意事项

  • TTL(生存时间):TTL 值帮助限制数据包在网络中的生命周期,以防止它们在网络中无限循环。如果 TTL 值过低,数据包可能在到达目的地之前就被丢弃。
  • 数据包大小:设置数据包的大小有助于检测网络中可能存在的 MTU(最大传输单元)问题。

跟踪数据包的路由途径-traceroute

简介

traceroute 是一个用于跟踪数据包从当前主机到目标主机之间经过的网络节点(路由器)的命令行工具。它可以帮助用户了解数据包的传输路径以及各节点的响应时间,从而诊断网络延迟或连接问题

格式

traceroute <目标主机>

常用选项(参数)

  • -n:以数字形式显示 IP 地址而不是主机名,避免进行 DNS 解析,从而加快输出速度。
  • -m <跳数>:设置最大跳数(即数据包可以经过的最大路由节点数)。例如,-m 30 表示最多经过 30 个节点。
  • -p <端口>:指定用于 traceroute 的目标端口,默认为 33434。适用于 TCP 连接的 traceroute。
  • -q <次数>:设置每个跳数发送的请求次数,默认为 3 次。例如,-q 4 表示每个节点发送 4 次请求。
  • -w <秒数>:设置等待每个响应的超时时间,单位为秒。例如,-w 5 表示等待 5 秒钟。

示例

测试从当前主机到 google.com 的数据包经过的路由节点。

traceroute google.com

以数字形式显示 IP 地址,并测试到 example.com 的数据包路径。

traceroute -n example.com

设置最大跳数为 20,测试到 192.168.1.1 的数据包路径。

traceroute -m 20 192.168.1.1

注意事项

  • TTL(生存时间)traceroute 通过逐跳增加 TTL 值来跟踪路径。每个路由器会减少 TTL 值并返回 ICMP 超时消息,以告知 traceroute 当前的跳数和延迟。
  • 响应时间:每个跳数的响应时间可以帮助识别延迟较高的网络节点。

设置网络参数的方式

临时配置—使用命令调整网络参数

  • 简单、快速,可直接修改运行中的网络参数
  • 一般只适合在调试网络的过程中使用
  • 系统重启以后,所做的修改将会失效

固定设置——通过配置文件修改网络参数

  • 修改各项网络参数的配置文件
  • 适合对服务器设置固定参数时使用
  • 需要重载网络服务或者重启以后才会生效

查询 DNS记录-nslookup

简介

nslookup 是一个用于查询 DNS(域名系统)记录的命令行工具。它可以帮助用户测试和诊断域名解析情况,查看特定域名对应的 IP 地址,或反向解析 IP 地址来获取域名信息。这个工具在网络问题排查中非常有用,特别是在处理与 DNS 相关的连接问题时。

格式

nslookup <目标主机地址> [DNS服务器地址]

常用选项(参数)

  • type=<记录类型>:指定查询的 DNS 记录类型,例如 A(主机地址记录)、MX(邮件交换记录)、NS(名称服务器记录)等。例如,type=MX 表示查询邮件交换记录。
  • timeout=<秒数>:设置查询的超时时间,单位为秒。默认值通常为 5 秒。
  • retry=<次数>:设置查询的重试次数,如果第一次查询失败,命令会自动重试指定的次数。
  • debug:启用调试模式,显示更多详细信息,包括 DNS 请求和响应的详细内容。

示例

测试 www.google.com 的 DNS 解析,使用默认 DNS 服务器。

nslookup www.google.com

测试 www.example.com 的 DNS 解析,指定使用 8.8.8.8 作为 DNS 服务器。

nslookup www.example.com 8.8.8.8

查询 example.com 的 MX 记录,显示邮件服务器信息。

nslookup -type=MX example.com

注意事项

  • DNS 服务器:如果未指定 DNS 服务器,nslookup 将使用系统默认的 DNS 服务器进行查询。指定 DNS 服务器可以帮助测试不同 DNS 提供商的解析情况。
  • 非权威应答:在 nslookup 的输出中,如果显示为 “Non-authoritative answer”,表示查询结果来自缓存 DNS 服务器,而非权威 DNS 服务器。

查看域名信息-dig

简介

dig (Domain Information Groper)是一个用于查询DNS信息的命令行工具。它通过向DNS服务器发送查询请求来获取指定域名的DNS记录,常用于调试和诊断DNS问题。

格式

dig [选项] [域名] [查询类型]

常用选项(参数)

  • @server:指定查询的DNS服务器。默认情况下,使用系统的默认DNS服务器。
  • +short:仅输出简短的查询结果,通常只显示IP地址或简单的记录信息。
  • -t:指定查询的DNS记录类型,如A(IPv4地址)、AAAA(IPv6地址)、MX(邮件交换记录)等。
  • -x:进行反向DNS查询,即通过IP地址查询域名。
  • +trace:显示查询过程中每一级DNS服务器的响应信息,帮助分析DNS查询路径。
  • +nocmd:省略输出中的命令和选项行,仅显示查询结果。
  • +noall +answer:只显示答案部分,去掉其他不必要的输出信息。

示例

查询域名 example.com 的A记录:

dig example.com A

使用Google的公共DNS服务器查询 example.com 的NS记录:

dig @8.8.8.8 example.com NS

查询 example.com 的简短结果:

dig example.com +short

追踪查询 example.com 的过程:

dig example.com +trace

注意事项

  • DNS缓存dig 查询的结果可能受DNS缓存的影响,查询同一域名时可能不会显示实时更新的结果。
  • 安全性:确保使用dig命令时所查询的DNS服务器是可信的,避免查询敏感信息时被DNS投毒或中间人攻击。

设置路由记录-route

简介

route 是一个用于显示和设置系统路由表的命令行工具。它允许用户查看当前的路由表条目,以及添加、删除或修改路由记录。通过路由表,操作系统能够确定数据包的传输路径,确保网络通信能够正确到达目的地。

格式

route [选项] [参数]

常用选项(参数)

  • -n:以数字形式显示路由表条目,而不是解析主机名。这可以加快输出速度,并避免 DNS 查询。
  • add:添加一个新的路由条目。例如,route add 用于向路由表中添加一条路由记录。
  • del:删除一个现有的路由条目。例如,route del 用于从路由表中删除一条路由记录。
  • -net:用于指定路由目标为网络地址。例如,-net 192.168.1.0 表示网络地址为 192.168.1.0。
  • -host:用于指定路由目标为主机地址。例如,-host 192.168.1.10 表示主机地址为 192.168.1.10。
  • gw <网关地址>:指定数据包应通过的网关地址。
  • metric <值>:设置路由的度量值(优先级)。度量值越小,路由优先级越高。

示例

  1. 添加到指定网段的路由记录

设置到 192.168.1.0/24 网络的路由,网关为 192.168.0.1

route add -net 192.168.1.0/24 gw 192.168.0.1
  1. 删除到指定网段的路由记录

删除到 10.0.0.0/8 网络的路由记录。

route del -net 10.0.0.0/8
  1. 向路由表中添加默认网关记录

设置默认网关为 192.168.0.1

route add default gw 192.168.0.1
  1. 删除路由表中默认的网关记录

删除默认网关 192.168.0.1

route del default gw 192.168.0.1
  1. 显示当前的路由表

显示路由表的当前内容,以数字形式展示。

route -n
  1. 设置路由的度量值

设置路由到 192.168.2.0/24 网络的度量值为 10,网关为 192.168.0.1

route add -net 192.168.2.0/24 gw 192.168.0.1 metric 10

注意事项

  • 网关地址:指定的网关必须在路由表中有效且可达。否则,数据包将无法通过指定网关转发。
  • 路由优先级:度量值(metric)用于决定不同路由的优先级。系统会选择度量值最小的路由作为首选路径。

配置项说明

直接 route 命令输出时显示,也表示/etc/sysconfig/static-routes 文件中的配置项。

  • Destination: 目标网段或主机。
  • Gateway: 网关地址,`` 表示目标是本主机所属的网络,不需要路由。
  • Genmask: 网络掩码,可以设定 netmask 决定网域的大小。
  • Flags: 标记,指示路由的状态和类型。
    • U: 路由是活动的,可以使用。
    • H: 目标是一个主机,即该路由是到一个特定主机。
    • G: 路由指向网关。
    • R: 恢复动态路由产生的表项。
    • D: 由路由的后台程序动态地安装。
    • M: 由路由的后台程序修改。
    • !: 拒绝路由。
  • Metric: 路由距离,到达指定网络所需的中转数(Linux 内核中未使用)。
  • Ref: 路由引用次数(Linux 内核中未使用)。
  • Use: 此路由项被路由软件查找的次数。
  • Iface: 转发的网络设备或虚拟网卡名称。

永久添加路由-static-routes文件

永久添加路由是在系统中配置静态路由,使得即使系统重启,这些路由也能保持生效。这些路由规则通过修改系统配置文件来实现,并且需要重启网络服务以应用更改。

格式
/etc/sysconfig/static-routes 文件中(若没有需要创建),使用以下格式配置静态路由:

常用配置

  • any net any gw 192.168.233.21:将所有网络流量路由到 192.168.233.21 网关。
  • any net 192.168.3.0/24 gw 192.168.233.21:将目的网络为 192.168.3.0/24 的所有流量路由到 192.168.233.21 网关。
  • any net 10.0.0.0 netmask 255.0.0.0 gw 192.168.233.21:将目的网络为 10.0.0.0 且使用子网掩码 255.0.0.0 的所有流量路由到 192.168.233.21 网关。
  • any host 192.168.100.100 gw 192.168.233.21:将目的 IP 为 192.168.100.100 的所有流量路由到 192.168.233.21 网关。

重启网络服务

systemctl restart network

网络接口配置-network-scripts文件

网络接口配置文件用于配置网络接口的各项参数,使网络接口在系统启动时能够正常工作。

配置文件位置

网络接口的配置文件通常位于 /etc/sysconfig/network-scripts/ 目录下,文件名格式为 ifcfg-<接口名>。例如,ifcfg-ens33 用于配置 ens33 接口。

示例配置文件内容

示例1:简单基础示例(基本够用)

TYPE=Ethernet          # 设置网卡类型为以太网
DEVICE=ens33           # 设置网卡名称
ONBOOT=yes             # 设置网卡在系统启动时自动激活
BOOTPROTO=static       # 设置网卡使用静态IP地址
IPADDR=192.168.80.3    # 设置网卡的IP地址
NETMASK=255.255.255.0  # 设置网卡的子网掩码
GATEWAY=192.168.80.2   # 设置网卡的默认网关地址
DNS1=192.168.80.2      # 设置DNS服务器的IP地址

配置项说明

  • TYPE: 通常为 Ethernet,表示以太网接口。
  • DEVICE: 指定网络接口名称。
  • ONBOOT: 控制网卡是否在系统启动时激活,常设置为 yes
  • BOOTPROTO: 配置 IP 地址的获取方式,static 表示静态配置,dhcp 表示通过 DHCP 动态获取。
  • IPADDR: 配置静态 IP 地址。
  • NETMASK: 定义子网掩码,用于确定网络部分和主机部分。
  • GATEWAY: 设置默认网关地址,未指定目标地址的流量将通过该网关。
  • DNS1: 配置 DNS 服务器的 IP 地址,用于域名解析。

示例2:更完整的示例

TYPE=Ethernet              # 设置网卡类型为以太网
DEVICE=ens33               # 设置网卡名称为 ens33
ONBOOT=yes                 # 设置网卡在系统启动时自动激活
BOOTPROTO=static           # 配置为静态 IP 地址
IPADDR=192.168.80.3        # 设置网卡的 IP 地址为 192.168.80.3
NETMASK=255.255.255.0      # 设置网卡的子网掩码为 255.255.255.0
GATEWAY=192.168.80.2       # 设置网卡的默认网关地址为 192.168.80.2
DNS1=192.168.80.2          # 设置 DNS 服务器的 IP 地址为 192.168.80.2
DNS2=8.8.8.8               # 设置备用 DNS 服务器的 IP 地址为 8.8.8.8
DEFROUTE=yes               # 设置是否使用该接口作为默认路由,默认值为 yes
IPV4_FAILURE_FATAL=no      # 是否在 IPv4 配置失败时终止配置,默认值为 yes
IPV6INIT=no                # 设置是否启用 IPv6,默认值为 no
HWADDR=00:1A:2B:3C:4D:5E   # 设置网卡的硬件地址(MAC 地址)
MTU=1500                   # 设置最大传输单元(MTU),通常为 1500
NAME="System ens33"        # 为该网络接口配置一个名称标签
UUID="123e4567-e89b-12d3-a456-426614174000"  # 设置网络接口的唯一标识符

其他配置项解释

  • DNS2: 设置备用的 DNS 服务器 IP 地址。
  • DEFROUTE: yes 表示使用该接口作为默认路由,no 表示不使用。
  • IPV4_FAILURE_FATAL: no 表示在 IPv4 配置失败时不会终止网络配置过程。
  • IPV6INIT: no 表示禁用 IPv6 支持,yes 表示启用。
  • HWADDR: 设置网卡的物理地址(MAC 地址),通常系统会自动检测,不需要手动设置。
  • MTU: 设置网络接口的最大传输单元,通常是 1500 字节。
  • NAME: 设置该网络接口的名称标签,供识别使用。
  • UUID: 用于唯一标识网络接口,特别是在虚拟化或大规模部署中常用。

远程复制文件-scp

scp(Secure Copy Protocol)用于在不同主机之间安全地传输文件。

示例

/etc/hosts 文件从 server1 复制到远程服务器

[root@server1 ~]# scp /etc/hosts root@192.168.110.131:/etc/hosts

解释:

使用 scp 命令将本地服务器 server1 上的 /etc/hosts 文件复制到IP地址为 192.168.110.131 的远程服务器的 /etc/hosts 路径下。

定义主机名与IP地址的关系-hosts文件

/etc/hosts 文件是一个静态的、手动配置的IP地址与主机名映射文件,用于本地解析主机名。其定义了主机名与IP地址的对应关系。本地系统会首先查找这个文件以确定某个主机名对应的IP地址。一般只做内网映射。

与DNS的关系

  • 优先级:系统会先查询/etc/hosts文件,只有在未找到对应的映射时,才会查询DNS服务器。
  • 局限性/etc/hosts文件适用于小规模网络或特定的内网环境,大型网络或互联网环境下,通常依赖DNS进行域名解析。

示例

打开并编辑文件

vim /etc/hosts

文件内容示例

127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4
::1        localhost localhost.localdomain localhost6 localhost6.localdomain6

添加本地IP的主机名

192.168.110.132 server1
192.168.110.131 server2

解释:配置 192.168.110.132 的主机名为 server1 ,配置 192.168.110.131 主机名为 server2。在网络中使用该 IP 地址时,可以使用主机名 server1 代替。

登录远程主机-ssh+IP/主机名

正常使用IP地址登录:

[root@server1 ~]# ssh 192.168.110.131
root@192.168.110.131's password:
Last Login: Wed Aug 14 13:45:00 2024
[root@server2 ~]#      ## 此时登录到了Server2的环境
[root@server2 ~]# exit ## 登出

使用主机名登录:

[root@server1 ~]# ssh server2
The authenticity of host 'server2(192.168.110.131)' can’t be established.
ECDSA key fingerprint is SHA256:apb8xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxJN5pQ.
ECDSA key fingerprint is MD5:76:3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx:4e.
Are you sure you want to cont inue connecting (yes/no)? yes  ## 输入
Warning: Permanently added 'server2‘(ECDSA)to the list of known hosts.
root@server2‘s password:
Last Login: Wed Aug 14 13:48:01 2024
[root@server2 ~]#        ## 此时登录到了Server2的环境
[root@server2 ~]# exit   ## 登出

配置DNS域名解析服务器-resolv.conf文件

配置DNS域名解析服务器可以让系统正确解析域名为IP地址。

配置方法如下。

修改DNS域名解析配置文件

修改文件 /etc/resolv.conf 来指定DNS服务器的地址。

配置文件解析

以下是 /etc/resolv.conf 文件的内容示例:

nameserver 192.168.233.21   
# nameserver表示DNS服务器名称,
# 192.168.233.21表示DNS解析服务器地址

nameserver 8.8.8.8          
# 设置备用的DNS解析服务器地址为8.8.8.8

重启网卡服务

修改完成后,需要重启网卡服务以使配置生效。

systemctl restart network

域名解析配置文件

  • /etc/resolv.conf: 保存DNS服务器的地址,用于域名解析。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值