程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

Linux常用指令简介(9):网络相关

balukai 2025-03-11 13:04:51 文章精选 70 ℃

在这一系列文章中,将介绍一些常见的Linux命令,帮助您快速熟悉并开始在Linux系统上进行日常操作。具体的指令使用方法可能会因系统而异,注意根据其自身的 Linux 系统进行适当的调整,可以通过man或--help指令查询。

我将常用指令分成了如下几类介绍:用户和权限管理、文件和目录管理、压缩和解压缩、系统信息查看、软件包管理、日志查看和管理、文件搜索和过滤、文本处理、网络相关、数据备份和同步。

九、网络相关

1. ifconfig:显示当前网络接口的配置信息,如IP地址、子网掩码等。

1)显示所有接口信息:

ifconfig

这会列出系统上所有的网络接口信息,包括接口名称、MAC 地址、IP 地址、网络掩码等。

2)显示指定接口信息:

ifconfig eth0

将 eth0 替换为要查看的接口名称,以仅显示该特定接口的详细信息。示例输出:

eth0: flags=4163 mtu 1500
inet 192.168.0.10 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::a00:27ff:fe8e:2c2f prefixlen 64 scopeid 0x20
ether 08:00:27:8e:2c:2f txqueuelen 1000 (Ethernet)
RX packets 17402 bytes 25789148 (24.6 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 21548 bytes 4783613 (4.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

上述示例展示了一个名为 eth0 的网络接口的配置信息。其中包括了 IPv4 地址(inet)、子网掩码(netmask)、广播地址(broadcast)、IPv6 地址(inet6)、MAC地址(ether)、发送和接收的数据包统计等信息。

3)启用接口:

ifconfig eth0 up

这会启用名为 eth0 的接口,使其进入 UP(激活)状态。

4)禁用接口:

ifconfig eth0 down

这会禁用名为 eth0 的接口,使其进入 DOWN(非激活)状态。

5)配置接口的 IP 地址:

ifconfig eth0 

使用此命令,将 替换为要为 eth0 接口设置的 IP 地址。例如:

ifconfig eth0 192.168.0.10

6)设置接口的网络掩码:

ifconfig eth0 netmask 

替换为要为 eth0 接口设置的网络掩码。例如:

ifconfig eth0 netmask 255.255.255.0

7)配置网络接口的 MAC 地址:

sudo ifconfig  hw ether 

备注:以上IP、掩码、MAC地址修改命令在运行命令时生效,并且是临时的。当系统重新启动或网络服务重新加载时,这些更改将不会保持。

如果你希望永久设置接口的 IP 、掩码和mac地址,可以修改网络配置文件。具体的操作取决于你使用的 Linux 发行版和网络管理工具。例如,在大多数常见的 Linux 发行版中,你可以编辑 /etc/network/interfaces

2. ping:发送 ICMP Echo 探测数据包(网络层协议)请求到目标主机并接收响应,用于检测网络可达性和测量往返时间。

用法:

ping <目标主机或 ip>

其中,目标主机可以是域名(如 google.com)或 IP 地址(如 8.8.8.8),常用的选项有:

-c <次数>:指定要发送的 ICMP 回显请求消息的数量。
-w <超时时间>:设置等待目标主机回应的超时时间。

3. traceroute:从本机到目标主机的路由路径,显示经过的每一跳路由器的IP地址。

基本语法如下:

sudo traceroute [选项] <目标主机>

其中,<目标主机> 可以是目标主机的 IP 地址或域名。

1)在 Windows 操作系统中,使用 tracert 命令

2)Linux虚拟机在traceroute时,默认使用UDP报文,而不是使用ICMP报文;而防火墙为了方便网络调试是放行了ICMP报文,但没有放行UDP报文,这就导致了linux虚拟机的traceroute报文(UDP)被防火墙拦截了,可以使用-I选项指定使用 ICMP 协议进行 traceroute 的操作。

执行指令如下:

sudo traceroute –I www.baidu.com

输出结果:

4. netstat:显示网络连接、监听端口以及相关的统计数据。

netstat 命令的基本语法如下:

netstat [options]

netstat 命令可以接受不同的选项,以便提供不同类型的网络信息。以下是几个常用的 netstat 选项:

-a(或 --all):显示所有连接和侦听中的套接字,包括 TCP、UDP 和 UNIX 套接字。
-p(或 --program):显示正在使用套接字的进程或程序的相关信息。
-t : 用于指定仅查看 TCP 连接的信息。
-u: 选项用于指定仅查看 UDP 连接的信息。

备注:默认情况下,netstat 命令通常只显示已建立(established)的连接。

1. wget:从网络上下载文件,支持 HTTP、HTTPS、FTP 协议。

以下是一些常用的wget命令示例:

下载单个文件:

wget <文件url>

保存文件到指定目录:

wget -P <目标目录> <文件url>

断点续传下载(继续从之前下载的位置开始):

wget -c <文件url>

限速下载(限制下载速度):

wget --limit-rate=<下载速度> <文件url>

递归下载整个目录或网站:

wget -r <目录url>

默认情况下,wget 命令用于从网络上下载文件时使用的协议是 HTTP。如果你提供的 URL 是以 http:// 或者 https:// 开头的,wget 将使用相应的协议进行下载。

例如:

wget http://example.com/file.txt

如果需要使用其他协议如 FTP,你可以在 URL 中明确指定协议类型,例如:

wget ftp://example.com/file.txt

这将告诉 wget 使用 FTP 协议来下载文件。

一些公开可用的测试URL,如:

测试下载文件:

http://speedtest.ftp.otenet.gr/files/test100Mb.db (100MB测试文件)
http://speedtest.ftp.otenet.gr/files/test1Gb.db (1GB测试文件)

测试查看HTML内容:

https://www.example.com (示例网站)

5. nslookup:查询 DNS 记录,获取主机名对应的 IP 地址或反向查询 IP 地址对应的主机名。

查询域名的 IP 地址:

nslookup example.com

该命令将返回 example.com 的 IP 地址。您可以替换 example.com 为您希望查询的域名。

查询 IP 地址的域名:

nslookup 192.0.2.1

该命令将返回与 IP 地址 192.0.2.1 关联的域名。您可以替换 IP 地址为您想要查询的 IP 地址。

指定其他 DNS 服务器:

nslookup example.com 8.8.8.8

该命令将使用 8.8.8.8 作为 DNS 服务器来查询 example.com 的信息。

6. route:显示和操作 IP 路由表,管理网络流量的路由规则。

查看当前的路由表:

route –n

输出示例:

内核 IP 路由表
目标 网关 子网掩码 标志 跃点 引用 使用 接口
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 enp0s3
10.0.0.0 0.0.0.0 255.255.0.0 U 100 0 0 enp0s3

每一列的含义:

目标(Destination):指定数据包的目标地址。
网关(Gateway):指定数据包发送到该目标地址时,要经过的下一跳网关地址。
子网掩码(Netmask):用于确定目标地址的网络范围。
标志(Flags):指示该路由的状态或特性。例如,UG 表示这是一个网关(Gateway)路由。
跃点(Metric):指定路由的跳数(通常表示距离或优先级)。
引用(Ref):路由被引用的次数。
使用(Use):路由被使用的次数。
接口(Interface):指定数据包发送的网络接口。

目标为0.0.0.0的数据包将被发送到网关10.0.2.2,子网掩码为0.0.0.0。标志为UG,表示这是一个默认路由(default gateway),即用于发送到非本地地址的数据包的路由。

目标为10.0.2.0的数据包将直接发送到目标地址,不需要经过网关。子网掩码为255.255.255.0,表示该目标地址在本地局域网的范围内。标志为U,表示这是一个可直接访问的局域网路由

备注:较新的Linux发行版使用ip来管理。

7. UFW /iptables:配置和管理 Linux 内核防火墙规则,控制网络流量的过滤和转发。

UFW 是对 iptables 的简化封装,在底层仍然使用 iptables,但提供了更高级的抽象层,隐藏了底层规则的复杂性,使得配置和管理更加方便,对于普通用户而言更加友好。

下面是一些常用的 UFW 指令:

ufw enable:启用防火墙,开启规则。
ufw disable:禁用防火墙,关闭规则。
ufw status:查看防火墙的状态和当前的规则。
ufw allow :允许指定端口的网络连接。
ufw deny :禁止指定端口的网络连接。
ufw allow from :允许来自指定 IP 地址的网络连接。
ufw deny from :禁止来自指定 IP 地址的网络连接。
ufw delete :删除指定的规则。
ufw reset:重置防火墙规则,删除所有自定义规则并恢复默认设置。

举几个例子来说明 UFW 和 iptables 的使用差异。

允许 SSH 连接:

使用 UFW:

sudo ufw allow ssh

使用 iptables:

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

拒绝特定端口的访问:

使用 UFW:

sudo ufw deny 80

使用 iptables:

sudo iptables -A INPUT -p tcp --dport 80 -j DROP

8. tcpdump:用于捕获和分析网络上的数据包。

tcpdump的常用用法:

1)监听指定网络接口上的所有流量:

tcpdump -i eth0

2)过滤指定协议的数据包,例如只显示 ICMP 数据包:

tcpdump icmp

其他常用协议如tcp、udp

3) 按端口过滤数据包,只显示源或目的端口为指定端口号(例如 80)的数据包:

tcpdump port 80

4) 将抓到的数据包保存到文件,以便后续分析:

 tcpdump -i eth0 -w capture.pcap

备注:保存为 .pcap 文件的好处是,它是一种通用的捕获文件格式,可以与其他分析工具进行配合使用,如 Wireshark。你可以使用 Wireshark 打开 .pcap 文件,查看和分析其中的数据包详细信息。

5)读取和显示 PCAP 文件中的数据包:

tcpdump -r capture.pcap

6)以十六进制形式显示每个数据包的字节数据。

tcpdump –x

输出:

22:31:09.277864 IP _gateway.50137 > Iot-Ubuntu.ssh: Flags [.], ack 76192, win 65535, length 0
0x0000: 4500 0028 1b1d 0000 4006 47a3 0a00 0202
0x0010: 0a00 020f c3d9 0016 0193 126e 4395 423a
0x0020: 5010 ffff 3a04 0000 0000 0000 0000

同时显示十六进制和 ASCII 字符表示,只需要使用一个大写的 -X 选项即可。

tcpdump -X

输出:

22:33:30.135623 IP _gateway.50137 > Iot-Ubuntu.ssh: Flags [.], ack 125696, win 65535, length 0
0x0000: 4500 0028 217a 0000 4006 4146 0a00 0202 	E..(!z..@.AF....
0x0010: 0a00 020f c3d9 0016 0193 232e 43a2 551a 		..........#.C.U.
0x0020: 5010 ffff 1657 0000 0000 0000 0000 								P....W........

7)通过过滤器进行数据包过滤,只显示源或目的 IP 为指定 IP 地址的数据包:

 tcpdump host 192.168.0.100

如果需要指定只过滤源IP为指定IP的数据包,则使用src关键词:

sudo tcpdump src host 192.168.0.100

如果需要指定只过滤源IP为目标IP的数据包,则使用src关键词:

sudo tcpdump dst host 192.168.0.100

9.iwconfig: 用于配置和显示无线网络接口的命令行工具。

以下是一些常用的iwconfig命令及其功能:

显示当前系统中的所有无线网络接口及其配置信息:

iwconfig

显示指定无线网络接口的配置信息:

iwconfig 

将指定无线网络接口连接到指定名称(SSID)的无线网络:

iwconfig  essid 

设置指定无线网络接口的工作模式,如managed(基础设施模式)、Master(主模式)等:

iwconfig  mode 

Managed(基础设施模式):这是最常用的无线工作模式(也称为STA模式,Managed是Linux系统中术语)。在这种模式下,无线接口通过无线访问点(AP)与其他设备进行连接。接口将会通过AP连接到网络,并能够访问该网络中的其他设备和资源。

Master(主模式):在这种模式下,无线接口充当一个无线访问点(AP)。它可以连接其他无线设备进入网络,并管理它们的连接。

10. scp/sftp/tftp:在本地主机和远程主机之间安全地复制文件和目录

SCP(Secure Copy Protocol)和SFTP(SSH File Transfer Protocol):SCP和SFTP是一种基于SSH(Secure Shell)协议的安全文件传输协议。

1) 默认端口号都是22

2) Linux平台作为文件服务器需要安装ssh-server

3) 默认路径是当前用户home目录

备注:SFTP提供了更丰富的功能集,支持文件和目录的上传、下载、删除、重命名以及查看目录结构等操作。

TFTP(Trivial File Transfer Protocol):TFTP是一种简单的文件传输协议,使用无连接的UDP协议进行文件传输

1)默认端口号是69 

2)Linux平台作为文件服务器需要安装tftpd-hpa

3)默认路径是/srv/tftp

备注:TFTP主要用于在局域网中进行快速文件传输,例如在启动过程中从服务器下载配置文件或固件文件。由于它的简洁性,TFTP在网络设备的固件刷新和配置过程中经常被使用。

最近发表
标签列表