完整教程: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。
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.与iftop和nload不同,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
待补充

浙公网安备 33010602011771号