文章目录
- 1.查看网络状态类命令
-
- [1.1 ifconfig](#1.1 ifconfig)
-
- [1.1.1 查看所有网络接口信息](#1.1.1 查看所有网络接口信息)
- [1.1.2 查看指定接口信息:](#1.1.2 查看指定接口信息:)
- [1.1.3 启用和禁用网络接口。](#1.1.3 启用和禁用网络接口。)
- [1.2 ip](#1.2 ip)
-
- [1.2.1 查看网络接口:](#1.2.1 查看网络接口:)
- [1.2.2 查看路由信息:](#1.2.2 查看路由信息:)
- [1.2.3 设置 IP 地址:](#1.2.3 设置 IP 地址:)
- [1.2.4 删除 IP 地址:](#1.2.4 删除 IP 地址:)
- [1.3 netstat](#1.3 netstat)
-
- [1.3.1 查看网络连接:](#1.3.1 查看网络连接:)
- [1.3.2 查看路由表:](#1.3.2 查看路由表:)
- [1.4 ss](#1.4 ss)
-
- [1.4.1查看所有 TCP 连接:](#1.4.1查看所有 TCP 连接:)
- 2.网络配置类命令
-
- [2.1 nmcli](#2.1 nmcli)
-
- [2.1.1 查看网络连接状态:](#2.1.1 查看网络连接状态:)
- [2.1.2 连接到 Wi-Fi:](#2.1.2 连接到 Wi-Fi:)
- [2.1.3 断开网络连接:](#2.1.3 断开网络连接:)
- [2.2 hostname](#2.2 hostname)
-
- [2.2.1 查看主机名:](#2.2.1 查看主机名:)
- [2.2.2 设置主机名:](#2.2.2 设置主机名:)
- [2.2.3 修改后需要重启系统生效](#2.2.3 修改后需要重启系统生效)
- [2.3 resolv.conf](#2.3 resolv.conf)
-
- [2.3.1编辑 DNS 配置文件:](#2.3.1编辑 DNS 配置文件:)
- [2.3.2 在文件中添加DNS 服务器地址:](#2.3.2 在文件中添加DNS 服务器地址:)
- 3.网络故障排除类命令
-
- [3.1 ping](#3.1 ping)
-
- [3.1.1 测试与远程主机的连接:](#3.1.1 测试与远程主机的连接:)
- [3.1.2 指定次数发送数据包:](#3.1.2 指定次数发送数据包:)
- [3.1.3 设置请求数据包大小](#3.1.3 设置请求数据包大小)
- [3.1.4 设置请求间隔时间](#3.1.4 设置请求间隔时间)
- [3.1.5 设置请求数据包的生存时间(TTL)](#3.1.5 设置请求数据包的生存时间(TTL))
- [3.1.6 查看详细的统计信息](#3.1.6 查看详细的统计信息)
- [3.1.7 设置超时时间](#3.1.7 设置超时时间)
- [3.2 traceroute](#3.2 traceroute)
-
- [3.2.1 追踪路由:](#3.2.1 追踪路由:)
- [3.3 mtr](#3.3 mtr)
- [3.4 nslookup](#3.4 nslookup)
- [3.5 dig](#3.5 dig)
-
- [3.5.1 查询域名解析结果:](#3.5.1 查询域名解析结果:)
- 4.网络安全类命令
-
- [4.1 iptables](#4.1 iptables)
-
- [4.1.1 查看现有规则:](#4.1.1 查看现有规则:)
- [4.1.2 允许特定端口的访问:](#4.1.2 允许特定端口的访问:)
- [4.2 ufw](#4.2 ufw)
-
- [4.2.1 启用/禁用防火墙:](#4.2.1 启用/禁用防火墙:)
- [4.2.2 查看防火墙状态](#4.2.2 查看防火墙状态)
- [4.2.3 设置默认策略](#4.2.3 设置默认策略)
- [4.2.4 允许和拒绝端口](#4.2.4 允许和拒绝端口)
- [4.2.5 允许和拒绝服务](#4.2.5 允许和拒绝服务)
- [4.2.6 允许和拒绝特定 IP 地址](#4.2.6 允许和拒绝特定 IP 地址)
- [4.2.7 删除规则](#4.2.7 删除规则)
- [4.2.8 配置规则永久生效](#4.2.8 配置规则永久生效)
- [4.2.9 设置日志记录](#4.2.9 设置日志记录)
- 5.网络性能优化命令
-
- [5.1 ethtool](#5.1 ethtool)
-
- [5.1.1 查看网卡信息:](#5.1.1 查看网卡信息:)
- [5.1.2 设置网卡速率:](#5.1.2 设置网卡速率:)
- [5.2 netperf](#5.2 netperf)
-
- [5.2.1 进行网络性能测试:](#5.2.1 进行网络性能测试:)
- 6.常用网络命令补充
-
- [6.1 wget](#6.1 wget)
-
- [6.1.1 下载一个文件:](#6.1.1 下载一个文件:)
- [6.1.2 断点续传:](#6.1.2 断点续传:)
- [6.1.3 下载整个网站:](#6.1.3 下载整个网站:)
- [6.2 curl](#6.2 curl)
-
- [6.2.1 下载文件:](#6.2.1 下载文件:)
- [6.2.2 获取网站内容:](#6.2.2 获取网站内容:)
- [6.2.3 发送 POST 请求:](#6.2.3 发送 POST 请求:)
- [6.3 telnet](#6.3 telnet)
-
- [6.3.1 测试连接远程主机的端口:](#6.3.1 测试连接远程主机的端口:)
- [6.3.2 退出 telnet:](#6.3.2 退出 telnet:)
- [6.4 lsof](#6.4 lsof)
-
- [6.4.1 查看所有打开的文件:](#6.4.1 查看所有打开的文件:)
- [6.4.2 查看占用特定端口的进程:](#6.4.2 查看占用特定端口的进程:)
- [6.5 iftop](#6.5 iftop)
-
- [6.5.1 启动 iftop:](#6.5.1 启动 iftop:)
- [6.5.2 按 IP 地址查看流量:](#6.5.2 按 IP 地址查看流量:)
- [6.6 nethogs](#6.6 nethogs)
-
- [6.6.1 启动 nethogs:](#6.6.1 启动 nethogs:)
- [6.6.2 查看特定网络接口的流量:](#6.6.2 查看特定网络接口的流量:)
- [6.7 nload](#6.7 nload)
-
- [6.7.1 语法](#6.7.1 语法)
- [6.7.2 选项](#6.7.2 选项)
- [6.7.3 Devices参数](#6.7.3 Devices参数)
- [6.7.4 示例](#6.7.4 示例)
- [6.7.4.1 监测指定的网络接口:](#6.7.4.1 监测指定的网络接口:)
- [6.7.4.2 设置速率的显示单位(以Kbps为单位):](#6.7.4.2 设置速率的显示单位(以Kbps为单位):)
- [6.7.4.3 调整速率的因子:](#6.7.4.3 调整速率的因子:)
- [6.7.4.4 设置每隔2秒更新一次显示:](#6.7.4.4 设置每隔2秒更新一次显示:)
- [6.8 vnstat](#6.8 vnstat)
- 7.其他命令
-
- [7.1 iptraf](#7.1 iptraf)
- 8.学习资料
1.查看网络状态类命令
1.1 ifconfig
ifconfig是最常见的网络接口配置命令,它能够查看和设置网络接口的状态。
1.1.1 查看所有网络接口信息
cpp
ifconfig


1.1.2 查看指定接口信息:
cpp
ifconfig eth0
1.1.3 启用和禁用网络接口。
cpp
sudo ifconfig eth0 up #启用接口
sudo ifconfig eth0 down #禁用接口
1.2 ip
ip命令是ifconfig的替代工具,它能进行更细粒度的网络配置
1.2.1 查看网络接口:
查看所有网络接口信息:
cpp
ip addr show
只查看某个接口,如 eth0:
cpp
ip addr show dev eth0
1.2.2 查看路由信息:
cpp
ip route
1.2.3 设置 IP 地址:
给 eth0 设置 192.168.1.100/24 的 IP 地址:
cpp
sudo ip addr add 192.168.1.100/24 dev eth0
1.2.4 删除 IP 地址:
移除 IP 地址:
cpp
sudo ip addr del 192.168.1.100/24 dev eth0

1.3 netstat
netstat命令用于显示网络连接、路由表和网络接口的统计信息。
1.3.1 查看网络连接:
cpp
netstat -tuln
这里-t 表示查看 TCP 连接,-u 表示查看 UDP 连接,-l 表示查看正在监听的端口,-n 表示以数字形式显示地址和端口。
1.3.2 查看路由表:
cpp
netstat -r
1.4 ss
ss命令是一个快速且更强大的 netstat 替代品,它提供有关网络连接的详细信息。
1.4.1查看所有 TCP 连接:
用于显示网络统计信息的命令行工具。虽然它们本身不直接显示网络流量,但您可以使用它们来获取有关网络连接和套接字的信息,这有助于您了解网络活动。
cpp
ss -tuln
2.网络配置类命令
2.1 nmcli
nmcli 是NetworkManager提供的命令行工具,常用于管理网络连接。
2.1.1 查看网络连接状态:
cpp
nmcli device status
2.1.2 连接到 Wi-Fi:
cpp
nmcli dev wifi connect "SSID" password "password"
2.1.3 断开网络连接:
cpp
nmcli connection down "连接名"
2.2 hostname
hostname用于查看或设置 Linux 系统的主机名。
2.2.1 查看主机名:
cpp
hostname
2.2.2 设置主机名:
cpp
sudo hostname newhostname
2.2.3 修改后需要重启系统生效
cpp
sudo systemctl restart systemd-hostnamed
2.3 resolv.conf
Linux 系统使用/etc/resolv.conf文件来配置DNS服务器。可以通过编辑此文件来修改 DNS 设置。
2.3.1编辑 DNS 配置文件:
cpp
sudo nano /etc/resolv.conf
2.3.2 在文件中添加DNS 服务器地址:
cpp
nameserver 8.8.8.8
nameserver 8.8.4.4
3.网络故障排除类命令
3.1 ping
ping命令用于检查两个网络节点之间的连通性,帮助判断网络是否正常。
3.1.1 测试与远程主机的连接:
cpp
ping www.baidu.com
3.1.2 指定次数发送数据包:
如果只想发送指定次数的请求,可以使用 -c 选项:
cpp
ping -c 4 www.baidu.com
该命令将只发送 4 次请求,之后自动停止。
3.1.3 设置请求数据包大小
使用 -s 选项,可以指定每个 ICMP 请求数据包的大小,单位为字节:
cpp
ping -s 1000 www.baidu.com
该命令将发送大小为 1000字节的数据包。
3.1.4 设置请求间隔时间
默认情况下,ping 每秒发送一次请求。
如果希望调整发送请求的间隔时间,可以使用 -i 选项。设置请求间隔为2秒:
cpp
ping -i 2 www.baidu.com
3.1.5 设置请求数据包的生存时间(TTL)
通过 -t选项设置ICMP请求的生存时间(TTL):
cpp
ping -t 50 www.baidu.com
该命令将设置TTL值为50,表示数据包可以经过50个路由器。
3.1.6 查看详细的统计信息
使用 -v 选项可以查看更详细的 ping 输出,包括发送和接收的详细数据包信息:
cpp
ping -v www.baidu.com
3.1.7 设置超时时间
使用 -w 选项可以指定等待每个回应的最大时间,单位为秒。
如果在指定时间内没有收到响应,ping 将停止等待:
cpp
ping -w 5 www.baidu.com
该命令将设置最大等待时间为 5 秒。
3.2 traceroute
traceroute用于追踪数据包从本机到目标主机的路由路径,能够帮助排查网络中断的原因。
3.2.1 追踪路由:
traceroute www.baidu.com
3.3 mtr
mtr是ping和traceroute的结合体,能够实时显示每一跳的丢包率和响应时间。
3.3.1启动mtr路由跟踪:
cpp
mtr www.baidu.com
3.4 nslookup
nslookup用于查询 DNS 记录,帮助排查 DNS 解析问题。
3.4.1查询域名解析结果:
cpp
nslookup www.baidu.com
3.5 dig
dig是一个功能更强大的 DNS 查询工具,比 nslookup 提供更详细的解析信息。
3.5.1 查询域名解析结果:
cpp
dig www.baidu.com
4.网络安全类命令
4.1 iptables
iptables是 Linux 系统下常用的防火墙管理工具,用于配置访问控制规则。
4.1.1 查看现有规则:
cpp
sudo iptables -L
4.1.2 允许特定端口的访问:
cpp
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
4.2 ufw
ufw是 Ubuntu 系统中常用的简单防火墙工具,适合初学者使用。
在大多数基于 Ubuntu 的 Linux 系统中,ufw 默认已经安装。如果没有安装,可以通过以下命令进行安装:
cpp
sudo apt-get install ufw
4.2.1 启用/禁用防火墙:
cpp
sudo ufw enable #启用防火墙
sudo ufw disable #禁用防火墙
4.2.2 查看防火墙状态
要查看 ufw 当前的状态,可以使用以下命令:
cpp
sudo ufw status
如果想要查看更详细的状态信息,可以加上 verbose 选项:
cpp
sudo ufw status verbose
4.2.3 设置默认策略
ufw允许你设置默认策略,以便在没有明确规则时,系统会如何处理流量。默认策略包括:
默认拒绝所有流量 :如果没有特别的规则,所有的流量都将被拒绝。
默认允许所有流量:如果没有特别的规则,所有的流量都会被允许。
设置默认拒绝所有流量的命令:
cpp
sudo ufw default deny
设置默认允许所有流量的命令:
cpp
sudo ufw default allow
4.2.4 允许和拒绝端口
使用ufw,你可以轻松地允许或拒绝某个端口的访问。例如,要允许端口80(HTTP)上的流量:
cpp
sudo ufw allow 80
或者,如果你要允许TCP协议上的端口8080:
cpp
sudo ufw allow 8080/tcp
同样,你可以拒绝某个端口的流量。
例如,拒绝端口23(Telnet)上的流量:
cpp
sudo ufw deny 23
4.2.5 允许和拒绝服务
ufw还支持直接使用服务名称来允许或拒绝流量。例如,要允许SSH 服务:
cpp
sudo ufw allow ssh
如果想要拒绝某个服务,可以使用:
c
sudo ufw deny ssh
ufw 会根据预定义的服务规则(通常位于 /etc/services 中)自动解析服务的端口和协议。
4.2.6 允许和拒绝特定 IP 地址
还可以根据 IP 地址来允许或拒绝流量。
例如,允许来自IP地址192.168.1.100 的所有流量:
cpp
sudo ufw allow from 192.168.1.100
如果要拒绝来自某个 IP 地址的流量:
cpp
sudo ufw deny from 192.168.1.100
4.2.7 删除规则
要删除某条规则,可以使用delete命令。
例如,删除允许端口80的规则:
cpp
sudo ufw delete allow 80
4.2.8 配置规则永久生效
ufw的规则默认在每次系统启动时都会生效,因此你无需额外手动保存配置。
但是,如果需要对防火墙规则进行永久保存,可以使用 --permanent 选项。
4.2.9 设置日志记录
如果需要查看哪些流量被允许或拒绝,ufw提供了日志功能。
启用日志记录:
cpp
sudo ufw logging on
查看日志文件通常位于 /var/log/ufw.log。
5.网络性能优化命令
5.1 ethtool
ethtool是用于查看和调整网卡性能的命令,可以设置网卡的速率、双工模式等。
5.1.1 查看网卡信息:
cpp
ethtool eth0
5.1.2 设置网卡速率:
cpp
sudo ethtool -s eth0 speed 1000 duplex full
5.2 netperf
netperf是一个用于测量网络性能的工具,可以测试带宽、延迟等。
5.2.1 进行网络性能测试:
cpp
netperf -H <server-ip>
6.常用网络命令补充
6.1 wget
wget 是一个强大的命令行下载工具,可以用于从网络上下载文件。它支持 HTTP、HTTPS 和 FTP 协议,非常适合在没有图形界面的环境中下载文件。
6.1.1 下载一个文件:
cpp
wget http://example.com/file.tar.gz
6.1.2 断点续传:
如果下载过程中断开了,可以使用 -c 选项继续下载:
cpp
wget -c http://example.com/file.tar.gz
6.1.3 下载整个网站:
cpp
wget -r -np -k http://example.com
这里 -r 表示递归下载,-np 表示不下载父目录,-k 表示下载后转换链接为本地链接。
6.2 curl
curl 是一个功能非常强大的命令行工具,支持多种协议(如 HTTP、HTTPS、FTP、SFTP 等),可以用来发送请求、下载文件或与 API 交互。
6.2.1 下载文件:
cpp
curl -O http://example.com/file.tar.gz
6.2.2 获取网站内容:
cpp
curl http://example.com
6.2.3 发送 POST 请求:
cpp
curl -X POST -d "name=value" http://example.com
6.3 telnet
telnet 是一个非常古老的协议,它可以用于连接远程主机并测试某个端口的可达性。虽然现在更推荐使用 ssh 或 nc,但 telnet 在一些情况下仍然非常有用。
6.3.1 测试连接远程主机的端口:
cpp
telnet example.com 80
如果能成功连接,说明端口是开放的;如果连接失败,可能是防火墙阻止了该端口。
6.3.2 退出 telnet:
在连接时按下 Ctrl + ],然后输入 quit。
6.4 lsof
lsof(List Open Files)命令用于列出当前系统中打开的文件,包括网络连接、文件描述符等。它是排查进程、端口占用等问题的强大工具。
6.4.1 查看所有打开的文件:
lsof
6.4.2 查看占用特定端口的进程:
cpp
lsof -i :80
$ 6.4.3 查看某个进程的打开文件:
```cpp
lsof -p