使用场景:
- 开发板ip:192.168.0.232
- window 电脑有wifi 和 有线网口,其中 wifi 连接了互联网;
- window 装有Ubuntu 虚拟机;
VM 需要实现的功能:
- 能够通过SSH连接到开发板;
- 能否访问互联网;
实现方法:
3. window 端设置 ,开发板用网线连接
- VM端
菜单栏依次:编辑——虚拟网络编辑器
之后,菜单栏依次 虚拟机——设置
添加两个网络设配器,一个用于访问互联网,另一个用于连接开发板。
- ubuntu 端
查看网卡
查看路由
ping测试
相关网络操作
1. 网络接口配置
ifconfig(传统命令,已逐渐被弃用)
ifconfig# 查看所有网络接口ifconfigeth0# 查看指定接口ifconfigeth0 up# 启用接口ifconfigeth0 down# 禁用接口ifconfigeth0192.168.1.10# 配置IP地址ifconfigeth0 netmask255.255.255.0# 配置子网掩码使用场景:快速查看和临时配置网络接口(配置重启后失效)
ip(现代推荐命令)
# 查看接口ipaddr show# 查看所有接口IP地址ipaddr show eth0# 查看指定接口ip-slink# 查看接口统计信息iplinkshow# 查看接口状态# 配置接口iplinkseteth0 up# 启用接口iplinkseteth0 down# 禁用接口ipaddradd192.168.1.10/24 dev eth0# 添加IP地址ipaddr del192.168.1.10/24 dev eth0# 删除IP地址# MAC地址iplinkseteth0 address 00:11:22:33:44:55# 修改MAC地址使用场景:所有网络接口配置和管理操作
2. 路由管理
route(传统命令)
route -n# 查看路由表routeadddefault gw192.168.1.1# 添加默认网关route del default gw192.168.1.1# 删除默认网关routeadd-net10.0.0.0/8 gw192.168.1.254# 添加静态路由使用场景:管理系统路由表
ip route(现代推荐)
iproute show# 查看路由表iprouteadddefault via192.168.1.1# 添加默认网关iproute del default# 删除默认网关iprouteadd10.0.0.0/8 via192.168.1.254# 添加静态路由iproute get8.8.8.8# 查看到指定IP的路由使用场景:现代Linux系统的路由管理
3. 网络诊断工具
ping
ping8.8.8.8# 测试网络连通性ping-c4baidu.com# 发送4个包后停止ping-i0.5192.168.1.1# 设置发送间隔0.5秒ping-s1000192.168.1.1# 设置包大小1000字节使用场景:测试网络连通性、延迟、丢包率
traceroute/tracepath
traceroutegoogle.com# 追踪数据包路径tracepath google.com# 无需root权限的traceroutemtrgoogle.com# 结合ping和traceroute的工具使用场景:诊断网络路径问题,找出哪个节点出现故障
netstat(传统命令)
netstat-tulnp# 查看所有监听端口netstat-anp# 查看所有连接netstat-r# 查看路由表netstat-i# 查看网络接口统计netstat-s# 查看协议统计信息使用场景:查看网络连接、端口监听、路由表
ss(现代推荐)
ss -tulnp# 查看所有监听端口ss -anp# 查看所有连接ss -s# 统计信息ss dst192.168.1.100# 查看到指定IP的连接使用场景:比netstat更快的socket统计工具
nmap
nmap192.168.1.1# 扫描主机开放端口nmap -sP192.168.1.0/24# 扫描网段内存活主机nmap -O192.168.1.1# 检测操作系统使用场景:端口扫描、网络安全审计、主机发现
tcpdump
tcpdump -i eth0# 抓取eth0接口的所有包tcpdump -i eth0 port80# 抓取80端口的包tcpdump -i eth0host192.168.1.1# 抓取指定主机的包tcpdump -w capture.pcap# 保存到文件使用场景:网络抓包分析、故障排查
nc(netcat)
nc-l1234# 监听1234端口nc192.168.1.11234# 连接到指定端口nc-zv192.168.1.120-80# 扫描端口范围echo"test"|nc192.168.1.11234# 发送数据使用场景:端口测试、简单的TCP/UDP通信、文件传输
telnet
telnet192.168.1.180# 测试端口是否开放使用场景:测试TCP端口连通性
curl/wget
# curlcurlhttp://example.com# 获取网页内容curl-I http://example.com# 只获取HTTP头curl-o file.zip http://example.com/file.zip# 下载文件# wgetwgethttp://example.com/file.zip# 下载文件wget-c http://example.com/file.zip# 断点续传使用场景:HTTP请求测试、文件下载
4. DNS相关
nslookup
nslookupbaidu.com# 查询域名解析nslookupbaidu.com8.8.8.8# 使用指定DNS服务器查询使用场景:DNS查询和故障排查
dig
digbaidu.com# 详细DNS查询dig@8.8.8.8 baidu.com# 使用指定DNS服务器dig+short baidu.com# 简洁输出dig-x8.8.8.8# 反向DNS查询使用场景:详细的DNS诊断工具
host
hostbaidu.com# 简单的DNS查询host8.8.8.8# 反向查询使用场景:快速DNS查询
5. DHCP相关
dhclient
dhclient eth0# 获取DHCP地址dhclient -r eth0# 释放DHCP地址dhclient -v eth0# 详细输出使用场景:手动获取或释放DHCP地址
6. 网络配置文件管理
nmcli(NetworkManager命令行)
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
nmtui# 打开文本界面网络管理工具使用场景:文本界面下配置网络(无图形界面时)
systemd-networkd相关
networkctl status# 查看网络状态networkctl list# 列出所有网络接口使用场景:使用systemd-networkd的系统
netplan(Ubuntu 18.04+)
netplan generate# 生成配置netplan apply# 应用配置netplan try# 测试配置(120秒后自动回滚)使用场景:Ubuntu 18.04及以后版本的网络配置
7. 防火墙相关
iptables
iptables -L# 查看规则iptables -A INPUT -p tcp --dport80-j ACCEPT# 允许80端口iptables -D INPUT -p tcp --dport80-j ACCEPT# 删除规则iptables -F# 清空所有规则使用场景:防火墙规则管理(传统方式)
firewall-cmd(firewalld)
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)
ufw status# 查看状态ufwenable# 启用防火墙ufw allow22# 允许22端口ufw deny80# 拒绝80端口ufw delete allow22# 删除规则使用场景:Ubuntu的简易防火墙管理
8. 网络监控
iftop
iftop -i eth0# 实时查看网络流量使用场景:实时监控网络接口流量
nethogs
nethogs eth0# 按进程显示网络使用情况使用场景:查看哪个进程占用带宽
iptraf-ng
iptraf-ng# 交互式网络监控工具使用场景:详细的网络流量统计
vnstat
vnstat -d# 按天统计流量vnstat -m# 按月统计流量vnstat -l# 实时监控使用场景:长期网络流量统计
nload
nload eth0# 实时带宽监控使用场景:简单直观的带宽监控
9. ARP相关
arp
arp -a# 查看ARP缓存表arp -d192.168.1.1# 删除ARP条目arp -s192.168.1.1 00:11:22:33:44:55# 添加静态ARP条目使用场景:ARP缓存管理、排查ARP欺骗
ip neigh
ipneigh show# 查看邻居表(ARP缓存)ipneigh flush dev eth0# 清空指定接口的ARP缓存使用场景:现代ARP管理方式
10. 其他实用命令
ethtool
ethtooleth0# 查看网卡信息ethtool-s eth0 speed1000duplex full# 设置网卡速度ethtool-S eth0# 查看网卡统计信息使用场景:网卡硬件配置和诊断
iwconfig(无线网络)
iwconfig wlan0# 查看无线网卡信息iwconfig wlan0 essid"SSID"# 设置SSID使用场景:无线网络配置
iw(现代无线工具)
iw dev# 查看无线设备iw wlan0 scan# 扫描无线网络iw wlan0link# 查看连接信息使用场景:现代无线网络管理
hostname
hostname# 查看主机名hostnamenewhostname# 临时修改主机名hostnamectl set-hostname newhostname# 永久修改(systemd)使用场景:主机名管理
快速参考表
| 功能类别 | 传统命令 | 现代推荐 |
|---|---|---|
| 接口配置 | ifconfig | ip addr,ip link |
| 路由管理 | route | ip route |
| 连接查看 | netstat | ss |
| ARP管理 | arp | ip neigh |
| 无线网络 | iwconfig | iw,nmcli |
常见使用场景组合
场景1:虚拟机无法上网
ipaddr show# 检查IP地址iproute show# 检查路由ping8.8.8.8# 测试网络cat/etc/resolv.conf# 检查DNS场景2:开发板无法连接
ipaddr show# 确认IP配置ping192.168.0.100# 测试连通性arp -a# 检查ARP缓存tcpdump -i eth0 icmp# 抓包分析场景3:网络性能问题
iftop -i eth0# 查看实时流量nethogs# 查看进程占用ss -s# 查看连接统计ethtooleth0# 检查网卡状态