完整教程:Ubuntu网络基础

文章目录

1.查看网络状态类命令

1.1 ifconfig

  ifconfig是最常见的网络接口配置命令,它能够查看和设置网络接口的状态。

1.1.1 查看所有网络接口信息

ifconfig

在这里插入图片描述
在这里插入图片描述

1.1.2 查看指定接口信息:

ifconfig eth0

1.1.3 启用和禁用网络接口。

sudo ifconfig eth0 up #启用接口
sudo ifconfig eth0 down #禁用接口

1.2 ip

  ip命令是ifconfig的替代工具,它能进行更细粒度的网络配置

1.2.1 查看网络接口:

  查看所有网络接口信息:

 ip addr show

  只查看某个接口,如 eth0:

 ip addr show dev eth0

1.2.2 查看路由信息:

ip route

1.2.3 设置 IP 地址:

  给 eth0 设置 192.168.1.100/24 的 IP 地址:

sudo ip addr add 192.168.1.100/24 dev eth0

1.2.4 删除 IP 地址:

  移除 IP 地址:

sudo ip addr del 192.168.1.100/24 dev eth0

在这里插入图片描述

1.3 netstat

  netstat命令用于显示网络连接、路由表和网络接口的统计信息。

1.3.1 查看网络连接:

netstat -tuln

  这里-t 表示查看 TCP 连接,-u 表示查看 UDP 连接,-l 表示查看正在监听的端口,-n 表示以数字形式显示地址和端口。

1.3.2 查看路由表:

netstat -r

1.4 ss

  ss命令是一个快速且更强大的 netstat 替代品,它提供有关网络连接的详细信息。

1.4.1查看所有 TCP 连接:

  用于显示网络统计信息的命令行工具。虽然它们本身不直接显示网络流量,但您可以使用它们来获取有关网络连接和套接字的信息,这有助于您了解网络活动。

ss -tuln

2.网络配置类命令

2.1 nmcli

  nmcli 是NetworkManager提供的命令行工具,常用于管理网络连接。

2.1.1 查看网络连接状态:

nmcli device status

2.1.2 连接到 Wi-Fi:

nmcli dev wifi connect "SSID" password "password"

2.1.3 断开网络连接:

nmcli connection down "连接名"

2.2 hostname

  hostname用于查看或设置 Linux 系统的主机名。

2.2.1 查看主机名:

hostname

2.2.2 设置主机名:

sudo hostname newhostname

2.2.3 修改后需要重启系统生效

sudo systemctl restart systemd-hostnamed

2.3 resolv.conf

  Linux 系统使用/etc/resolv.conf文件来配置DNS服务器。可以通过编辑此文件来修改 DNS 设置。

2.3.1编辑 DNS 配置文件:

sudo nano /etc/resolv.conf

2.3.2 在文件中添加DNS 服务器地址:

nameserver 8.8.8.8
nameserver 8.8.4.4

3.网络故障排除类命令

3.1 ping

  ping命令用于检查两个网络节点之间的连通性,帮助判断网络是否正常。

3.1.1 测试与远程主机的连接:

ping www.baidu.com

3.1.2 指定次数发送数据包:

  如果只想发送指定次数的请求,可以使用 -c 选项:

ping -c 4 www.baidu.com

  该命令将只发送 4 次请求,之后自动停止。

3.1.3 设置请求数据包大小

  使用 -s 选项,可以指定每个 ICMP 请求数据包的大小,单位为字节:

ping -s 1000 www.baidu.com

  该命令将发送大小为 1000字节的数据包。

3.1.4 设置请求间隔时间

  默认情况下,ping 每秒发送一次请求。
  如果希望调整发送请求的间隔时间,可以使用 -i 选项。设置请求间隔为2秒:

ping -i 2 www.baidu.com

3.1.5 设置请求数据包的生存时间(TTL)

  通过 -t选项设置ICMP请求的生存时间(TTL):

ping -t 50 www.baidu.com

  该命令将设置TTL值为50,表示数据包可以经过50个路由器。

3.1.6 查看详细的统计信息

  使用 -v 选项可以查看更详细的 ping 输出,包括发送和接收的详细数据包信息:

ping -v www.baidu.com

3.1.7 设置超时时间

  使用 -w 选项可以指定等待每个回应的最大时间,单位为秒。
  如果在指定时间内没有收到响应,ping 将停止等待:

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路由跟踪:

mtr www.baidu.com

3.4 nslookup

  nslookup用于查询 DNS 记录,帮助排查 DNS 解析问题。

3.4.1查询域名解析结果:

nslookup www.baidu.com

3.5 dig

  dig是一个功能更强大的 DNS 查询工具,比 nslookup 提供更详细的解析信息。

3.5.1 查询域名解析结果:

dig www.baidu.com

4.网络安全类命令

4.1 iptables

  iptables是 Linux 系统下常用的防火墙管理工具,用于配置访问控制规则。

4.1.1 查看现有规则:

sudo iptables -L

4.1.2 允许特定端口的访问:

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

4.2 ufw

  ufw是 Ubuntu 系统中常用的简单防火墙工具,适合初学者使用。
  在大多数基于 Ubuntu 的 Linux 系统中,ufw 默认已经安装。如果没有安装,可以通过以下命令进行安装:

sudo apt-get install ufw

4.2.1 启用/禁用防火墙:

sudo ufw enable  #启用防火墙
sudo ufw disable #禁用防火墙

4.2.2 查看防火墙状态

  要查看 ufw 当前的状态,可以使用以下命令:

sudo ufw status

  如果想要查看更详细的状态信息,可以加上 verbose 选项:

sudo ufw status verbose

4.2.3 设置默认策略

  ufw允许你设置默认策略,以便在没有明确规则时,系统会如何处理流量。默认策略包括:

默认拒绝所有流量:如果没有特别的规则,所有的流量都将被拒绝。
默认允许所有流量:如果没有特别的规则,所有的流量都会被允许。

  设置默认拒绝所有流量的命令:

sudo ufw default deny

  设置默认允许所有流量的命令:

sudo ufw default allow

4.2.4 允许和拒绝端口

  使用ufw,你可以轻松地允许或拒绝某个端口的访问。例如,要允许端口80(HTTP)上的流量:

sudo ufw allow 80

  或者,如果你要允许TCP协议上的端口8080:

sudo ufw allow 8080/tcp

  同样,你可以拒绝某个端口的流量。
  例如,拒绝端口23(Telnet)上的流量:

sudo ufw deny 23

4.2.5 允许和拒绝服务

  ufw还支持直接使用服务名称来允许或拒绝流量。例如,要允许SSH 服务:

sudo ufw allow ssh

  如果想要拒绝某个服务,可以使用:

sudo ufw deny ssh

  ufw 会根据预定义的服务规则(通常位于 /etc/services 中)自动解析服务的端口和协议。

4.2.6 允许和拒绝特定 IP 地址

  还可以根据 IP 地址来允许或拒绝流量。
  例如,允许来自IP地址192.168.1.100 的所有流量:

sudo ufw allow from 192.168.1.100

  如果要拒绝来自某个 IP 地址的流量:

sudo ufw deny from 192.168.1.100

4.2.7 删除规则

  要删除某条规则,可以使用delete命令。
  例如,删除允许端口80的规则:

sudo ufw delete allow 80

4.2.8 配置规则永久生效

  ufw的规则默认在每次系统启动时都会生效,因此你无需额外手动保存配置。
  但是,如果需要对防火墙规则进行永久保存,可以使用 --permanent 选项。

4.2.9 设置日志记录

  如果需要查看哪些流量被允许或拒绝,ufw提供了日志功能。
  启用日志记录:

sudo ufw logging on

  查看日志文件通常位于 /var/log/ufw.log。

Linux 防火墙工具 ufw:简化的防火墙管理

5.网络性能优化命令

5.1 ethtool

  ethtool是用于查看和调整网卡性能的命令,可以设置网卡的速率、双工模式等。

5.1.1 查看网卡信息:

ethtool eth0

5.1.2 设置网卡速率:

sudo ethtool -s eth0 speed 1000 duplex full

5.2 netperf

  netperf是一个用于测量网络性能的工具,可以测试带宽、延迟等。

5.2.1 进行网络性能测试:

netperf -H <server-ip>

6.常用网络命令补充

6.1 wget

  wget 是一个强大的命令行下载工具,可以用于从网络上下载文件。它支持 HTTP、HTTPS 和 FTP 协议,非常适合在没有图形界面的环境中下载文件。

6.1.1 下载一个文件:

wget http://example.com/file.tar.gz

6.1.2 断点续传:

  如果下载过程中断开了,可以使用 -c 选项继续下载:

wget -c http://example.com/file.tar.gz

6.1.3 下载整个网站:

wget -r -np -k http://example.com

  这里 -r 表示递归下载,-np 表示不下载父目录,-k 表示下载后转换链接为本地链接。

6.2 curl

  curl 是一个功能非常强大的命令行工具,支持多种协议(如 HTTP、HTTPS、FTP、SFTP 等),可以用来发送请求、下载文件或与 API 交互。

6.2.1 下载文件:

curl -O http://example.com/file.tar.gz

6.2.2 获取网站内容:

curl http://example.com

6.2.3 发送 POST 请求:

curl -X POST -d "name=value" http://example.com

6.3 telnet

  telnet 是一个非常古老的协议,它可以用于连接远程主机并测试某个端口的可达性。虽然现在更推荐使用 ssh 或 nc,但 telnet 在一些情况下仍然非常有用。

6.3.1 测试连接远程主机的端口:

telnet example.com 80

  如果能成功连接,说明端口是开放的;如果连接失败,可能是防火墙阻止了该端口。

6.3.2 退出 telnet:

  在连接时按下 Ctrl + ],然后输入 quit。

6.4 lsof

  lsof(List Open Files)命令用于列出当前系统中打开的文件,包括网络连接、文件描述符等。它是排查进程、端口占用等问题的强大工具。

6.4.1 查看所有打开的文件:

lsof

6.4.2 查看占用特定端口的进程:

lsof -i :80

$$$ 6.4.3 查看某个进程的打开文件:

lsof -p <PID>

6.5 iftop

  iftop 是一个实时流量监控工具,用于显示系统的网络流量。它可以按照每个连接对流量进行排序,帮助你快速识别哪些连接占用了大量带宽。

6.5.1 启动 iftop:

sudo iftop

  如在ubuntu系统上安装,请使用下面指令

sudo apt-get install iftop

  详细用法请参考:
  1.Linux流量监控工具
  2.网络流量实时监控带宽详情工具

6.5.2 按 IP 地址查看流量:

  iftop 默认按连接显示流量,你可以通过选项进行排序或过滤。使用 -ni 参数来显示本机流量。

6.6 nethogs

vnethogs 是一个非常实用的工具,它可以实时显示各个进程所消耗的网络带宽。它比 iftop 更侧重于显示每个进程的网络流量,有助于找出占用带宽的应用程序。

6.6.1 启动 nethogs:

sudo nethogs

6.6.2 查看特定网络接口的流量:

sudo nethogs eth0

  这里 eth0 是你想要监控的网络接口,可以根据实际情况更改为其他接口名。

6.7 nload

  是一个用于监测网络流量的命令行工具,它以图形化的方式显示实时的网络使用情况。使用该命令,可在命令行界面通过图形化方式实时显示网络流量,包括上传和下载速率、总流量等数据。
  在Ubuntu 系统上可使用如下命令进行安装:

 sudo apt install nload

6.7.1 语法

nload [options] [devices]

6.7.2 选项

-a:这个好像是全部数据的刷新时间周期,单位是秒,默认是 300-i <网络接口>:进入网卡的流量图的显示比例最大值设置,默认 10240 kBit/s。
  -m:不显示流量图,只显示统计数据。
  -o:出去网卡的流量图的显示比例最大值设置,默认 10240 kBit/s。
  -t <刷新时间>:显示数据的刷新时间间隔,单位是毫秒,默认 500-K <速率因子>: 设置速率的因子,用于调整显示的速率。
      -u <速率单位>:设置右边 Curr、Avg、Min、Max 的数据单位,默认是自动变的。注意大小写单位不同!
        h|b|k|m|g —— h: auto,b: Bit/s,k: kBit/s,m: MBit/s 等;
        H|B|K|M|G —— H: auto,B: Byte/s,K: kByte/s,M: MByte/s 等。
        -U:设置右边 TTL 的数据单位,默认是自动变的。注意大小写单位不同(与 -u 相同)!

6.7.3 Devices参数

devices:自定义监控的网卡,默认是全部监控的,使用左右键切换。

6.7.4 示例

  实时监测默认网络接口:

nload

注意:默认情况下,nload 会实时监测第一个找到的网络接口的上传和下载速率。

6.7.4.1 监测指定的网络接口:

nload -i eth0

6.7.4.2 设置速率的显示单位(以Kbps为单位):

nload -u Kbps

6.7.4.3 调整速率的因子:

nload -K 1024

6.7.4.4 设置每隔2秒更新一次显示:

nload -t 2

在这里插入图片描述
实时网络流量监控

6.8 vnstat

  1.vnstat是一个用于监视网络流量的轻量级命令行工具。
  2.与iftopnload不同,vnstat主要用于收集并显示网络接口的流量统计数据,而不是实时监视。

安装vnstat:
sudo apt update
sudo apt install vnstat

  然后,您可以使用 vnstat 命令查看历史流量数据。
  例如,要查看eth0接口的流量数据,可以运行下面指令:

vnstat -i eth0。

7.其他命令

7.1 iptraf

  iptraf 是一个基于文本的实时网络监视工具,它可以显示各种网络接口的流量信息。
  但是,iptraf 在现代Ubuntu发行版中的可用性可能有限。如果您需要它,可以尝试安装:

sudo apt update
sudo apt install iptraf

待补充

8.学习资料

  1.代码酷
  2.Ubuntu Linux网络设置完全指南

posted on 2026-02-02 12:06  ljbguanli  阅读(0)  评论(0)    收藏  举报