使用场景:
-
开发板
ip:192.168.0.232 -
window 电脑有wifi 和 有线网口,其中 wifi 连接了互联网;
-
window 装有Ubuntu 虚拟机;
VM 需要实现的功能:
- 能够通过SSH连接到开发板;
- 能否访问互联网;
实现方法:
-
window 端设置 ,开发板用网线连接

-
VM端
菜单栏依次:编辑------虚拟网络编辑器

之后,菜单栏依次 虚拟机------设置

添加两个网络设配器,一个用于访问互联网,另一个用于连接开发板。
- ubuntu 端
查看网卡

查看路由

ping测试

相关网络操作
1. 网络接口配置
ifconfig (传统命令,已逐渐被弃用)
bash
ifconfig # 查看所有网络接口
ifconfig eth0 # 查看指定接口
ifconfig eth0 up # 启用接口
ifconfig eth0 down # 禁用接口
ifconfig eth0 192.168.1.10 # 配置IP地址
ifconfig eth0 netmask 255.255.255.0 # 配置子网掩码
使用场景:快速查看和临时配置网络接口(配置重启后失效)
ip (现代推荐命令)
bash
# 查看接口
ip addr show # 查看所有接口IP地址
ip addr show eth0 # 查看指定接口
ip -s link # 查看接口统计信息
ip link show # 查看接口状态
# 配置接口
ip link set eth0 up # 启用接口
ip link set eth0 down # 禁用接口
ip addr add 192.168.1.10/24 dev eth0 # 添加IP地址
ip addr del 192.168.1.10/24 dev eth0 # 删除IP地址
# MAC地址
ip link set eth0 address 00:11:22:33:44:55 # 修改MAC地址
使用场景:所有网络接口配置和管理操作
2. 路由管理
route (传统命令)
bash
route -n # 查看路由表
route add default gw 192.168.1.1 # 添加默认网关
route del default gw 192.168.1.1 # 删除默认网关
route add -net 10.0.0.0/8 gw 192.168.1.254 # 添加静态路由
使用场景:管理系统路由表
ip route (现代推荐)
bash
ip route show # 查看路由表
ip route add default via 192.168.1.1 # 添加默认网关
ip route del default # 删除默认网关
ip route add 10.0.0.0/8 via 192.168.1.254 # 添加静态路由
ip route get 8.8.8.8 # 查看到指定IP的路由
使用场景:现代Linux系统的路由管理
3. 网络诊断工具
ping
bash
ping 8.8.8.8 # 测试网络连通性
ping -c 4 baidu.com # 发送4个包后停止
ping -i 0.5 192.168.1.1 # 设置发送间隔0.5秒
ping -s 1000 192.168.1.1 # 设置包大小1000字节
使用场景:测试网络连通性、延迟、丢包率
traceroute / tracepath
bash
traceroute google.com # 追踪数据包路径
tracepath google.com # 无需root权限的traceroute
mtr google.com # 结合ping和traceroute的工具
使用场景:诊断网络路径问题,找出哪个节点出现故障
netstat (传统命令)
bash
netstat -tulnp # 查看所有监听端口
netstat -anp # 查看所有连接
netstat -r # 查看路由表
netstat -i # 查看网络接口统计
netstat -s # 查看协议统计信息
使用场景:查看网络连接、端口监听、路由表
ss (现代推荐)
bash
ss -tulnp # 查看所有监听端口
ss -anp # 查看所有连接
ss -s # 统计信息
ss dst 192.168.1.100 # 查看到指定IP的连接
使用场景:比netstat更快的socket统计工具
nmap
bash
nmap 192.168.1.1 # 扫描主机开放端口
nmap -sP 192.168.1.0/24 # 扫描网段内存活主机
nmap -O 192.168.1.1 # 检测操作系统
使用场景:端口扫描、网络安全审计、主机发现
tcpdump
bash
tcpdump -i eth0 # 抓取eth0接口的所有包
tcpdump -i eth0 port 80 # 抓取80端口的包
tcpdump -i eth0 host 192.168.1.1 # 抓取指定主机的包
tcpdump -w capture.pcap # 保存到文件
使用场景:网络抓包分析、故障排查
nc (netcat)
bash
nc -l 1234 # 监听1234端口
nc 192.168.1.1 1234 # 连接到指定端口
nc -zv 192.168.1.1 20-80 # 扫描端口范围
echo "test" | nc 192.168.1.1 1234 # 发送数据
使用场景:端口测试、简单的TCP/UDP通信、文件传输
telnet
bash
telnet 192.168.1.1 80 # 测试端口是否开放
使用场景:测试TCP端口连通性
curl / wget
bash
# curl
curl http://example.com # 获取网页内容
curl -I http://example.com # 只获取HTTP头
curl -o file.zip http://example.com/file.zip # 下载文件
# wget
wget http://example.com/file.zip # 下载文件
wget -c http://example.com/file.zip # 断点续传
使用场景:HTTP请求测试、文件下载
4. DNS相关
nslookup
bash
nslookup baidu.com # 查询域名解析
nslookup baidu.com 8.8.8.8 # 使用指定DNS服务器查询
使用场景:DNS查询和故障排查
dig
bash
dig baidu.com # 详细DNS查询
dig @8.8.8.8 baidu.com # 使用指定DNS服务器
dig +short baidu.com # 简洁输出
dig -x 8.8.8.8 # 反向DNS查询
使用场景:详细的DNS诊断工具
host
bash
host baidu.com # 简单的DNS查询
host 8.8.8.8 # 反向查询
使用场景:快速DNS查询
5. DHCP相关
dhclient
bash
dhclient eth0 # 获取DHCP地址
dhclient -r eth0 # 释放DHCP地址
dhclient -v eth0 # 详细输出
使用场景:手动获取或释放DHCP地址
6. 网络配置文件管理
nmcli (NetworkManager命令行)
bash
nmcli device status # 查看设备状态
nmcli connection show # 查看连接配置
nmcli connection up eth0 # 启用连接
nmcli connection down eth0 # 禁用连接
nmcli device wifi list # 列出Wi-Fi网络
nmcli device wifi connect SSID password PASSWORD # 连接Wi-Fi
使用场景:使用NetworkManager的系统(如Ubuntu Desktop)
nmtui
bash
nmtui # 打开文本界面网络管理工具
使用场景:文本界面下配置网络(无图形界面时)
systemd-networkd 相关
bash
networkctl status # 查看网络状态
networkctl list # 列出所有网络接口
使用场景:使用systemd-networkd的系统
netplan (Ubuntu 18.04+)
bash
netplan generate # 生成配置
netplan apply # 应用配置
netplan try # 测试配置(120秒后自动回滚)
使用场景:Ubuntu 18.04及以后版本的网络配置
7. 防火墙相关
iptables
bash
iptables -L # 查看规则
iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允许80端口
iptables -D INPUT -p tcp --dport 80 -j ACCEPT # 删除规则
iptables -F # 清空所有规则
使用场景:防火墙规则管理(传统方式)
firewall-cmd (firewalld)
bash
firewall-cmd --state # 查看防火墙状态
firewall-cmd --list-all # 查看所有规则
firewall-cmd --add-port=80/tcp # 开放端口
firewall-cmd --permanent --add-port=80/tcp # 永久开放端口
firewall-cmd --reload # 重载配置
使用场景:CentOS/RHEL 7+的防火墙管理
ufw (Ubuntu)
bash
ufw status # 查看状态
ufw enable # 启用防火墙
ufw allow 22 # 允许22端口
ufw deny 80 # 拒绝80端口
ufw delete allow 22 # 删除规则
使用场景:Ubuntu的简易防火墙管理
8. 网络监控
iftop
bash
iftop -i eth0 # 实时查看网络流量
使用场景:实时监控网络接口流量
nethogs
bash
nethogs eth0 # 按进程显示网络使用情况
使用场景:查看哪个进程占用带宽
iptraf-ng
bash
iptraf-ng # 交互式网络监控工具
使用场景:详细的网络流量统计
vnstat
bash
vnstat -d # 按天统计流量
vnstat -m # 按月统计流量
vnstat -l # 实时监控
使用场景:长期网络流量统计
nload
bash
nload eth0 # 实时带宽监控
使用场景:简单直观的带宽监控
9. ARP相关
arp
bash
arp -a # 查看ARP缓存表
arp -d 192.168.1.1 # 删除ARP条目
arp -s 192.168.1.1 00:11:22:33:44:55 # 添加静态ARP条目
使用场景:ARP缓存管理、排查ARP欺骗
ip neigh
bash
ip neigh show # 查看邻居表(ARP缓存)
ip neigh flush dev eth0 # 清空指定接口的ARP缓存
使用场景:现代ARP管理方式
10. 其他实用命令
ethtool
bash
ethtool eth0 # 查看网卡信息
ethtool -s eth0 speed 1000 duplex full # 设置网卡速度
ethtool -S eth0 # 查看网卡统计信息
使用场景:网卡硬件配置和诊断
iwconfig (无线网络)
bash
iwconfig wlan0 # 查看无线网卡信息
iwconfig wlan0 essid "SSID" # 设置SSID
使用场景:无线网络配置
iw (现代无线工具)
bash
iw dev # 查看无线设备
iw wlan0 scan # 扫描无线网络
iw wlan0 link # 查看连接信息
使用场景:现代无线网络管理
hostname
bash
hostname # 查看主机名
hostname newhostname # 临时修改主机名
hostnamectl set-hostname newhostname # 永久修改(systemd)
使用场景:主机名管理
快速参考表
| 功能类别 | 传统命令 | 现代推荐 |
|---|---|---|
| 接口配置 | ifconfig |
ip addr, ip link |
| 路由管理 | route |
ip route |
| 连接查看 | netstat |
ss |
| ARP管理 | arp |
ip neigh |
| 无线网络 | iwconfig |
iw, nmcli |
常见使用场景组合
场景1:虚拟机无法上网
bash
ip addr show # 检查IP地址
ip route show # 检查路由
ping 8.8.8.8 # 测试网络
cat /etc/resolv.conf # 检查DNS
场景2:开发板无法连接
bash
ip addr show # 确认IP配置
ping 192.168.0.100 # 测试连通性
arp -a # 检查ARP缓存
tcpdump -i eth0 icmp # 抓包分析
场景3:网络性能问题
bash
iftop -i eth0 # 查看实时流量
nethogs # 查看进程占用
ss -s # 查看连接统计
ethtool eth0 # 检查网卡状态