跳转到内容
新建笔记

Linux开发:网络配置(含VM网络配置)

使用场景: - 开发板ip:192.168.0.232 - window 电脑有wifi 和 有线网口,其中 wifi 连接了互联网; - window 装有Ubuntu 虚拟机;

VM 需要实现的功能:

  1. 能够通过SSH连接到开发板;
  2. 能否访问互联网;

实现方法: 3. window 端设置 ,开发板用网线连接

  1. VM端 菜单栏依次:编辑——虚拟网络编辑器 之后,菜单栏依次 虚拟机——设置 添加两个网络设配器,一个用于访问互联网,另一个用于连接开发板。

  1. ubuntu 端 查看网卡

查看路由 ping测试


ifconfig (传统命令,已逐渐被弃用)

跳转到“ifconfig (传统命令,已逐渐被弃用)”
终端窗口
ifconfig # 查看所有网络接口
ifconfig eth0 # 查看指定接口
ifconfig eth0 up # 启用接口
ifconfig eth0 down # 禁用接口
ifconfig eth0 192.168.1.10 # 配置IP地址
ifconfig eth0 netmask 255.255.255.0 # 配置子网掩码

使用场景:快速查看和临时配置网络接口(配置重启后失效)


终端窗口
# 查看接口
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地址

使用场景:所有网络接口配置和管理操作


终端窗口
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 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系统的路由管理


终端窗口
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 google.com # 追踪数据包路径
tracepath google.com # 无需root权限的traceroute
mtr google.com # 结合ping和traceroute的工具

使用场景:诊断网络路径问题,找出哪个节点出现故障


终端窗口
netstat -tulnp # 查看所有监听端口
netstat -anp # 查看所有连接
netstat -r # 查看路由表
netstat -i # 查看网络接口统计
netstat -s # 查看协议统计信息

使用场景:查看网络连接、端口监听、路由表


终端窗口
ss -tulnp # 查看所有监听端口
ss -anp # 查看所有连接
ss -s # 统计信息
ss dst 192.168.1.100 # 查看到指定IP的连接

使用场景:比netstat更快的socket统计工具


终端窗口
nmap 192.168.1.1 # 扫描主机开放端口
nmap -sP 192.168.1.0/24 # 扫描网段内存活主机
nmap -O 192.168.1.1 # 检测操作系统

使用场景:端口扫描、网络安全审计、主机发现


终端窗口
tcpdump -i eth0 # 抓取eth0接口的所有包
tcpdump -i eth0 port 80 # 抓取80端口的包
tcpdump -i eth0 host 192.168.1.1 # 抓取指定主机的包
tcpdump -w capture.pcap # 保存到文件

使用场景:网络抓包分析、故障排查


终端窗口
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 192.168.1.1 80 # 测试端口是否开放

使用场景:测试TCP端口连通性


终端窗口
# 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请求测试、文件下载


终端窗口
nslookup baidu.com # 查询域名解析
nslookup baidu.com 8.8.8.8 # 使用指定DNS服务器查询

使用场景:DNS查询和故障排查


终端窗口
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 baidu.com # 简单的DNS查询
host 8.8.8.8 # 反向查询

使用场景:快速DNS查询


终端窗口
dhclient eth0 # 获取DHCP地址
dhclient -r eth0 # 释放DHCP地址
dhclient -v eth0 # 详细输出

使用场景:手动获取或释放DHCP地址


nmcli (NetworkManager命令行)

跳转到“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 # 打开文本界面网络管理工具

使用场景:文本界面下配置网络(无图形界面时)


终端窗口
networkctl status # 查看网络状态
networkctl list # 列出所有网络接口

使用场景:使用systemd-networkd的系统


终端窗口
netplan generate # 生成配置
netplan apply # 应用配置
netplan try # 测试配置(120秒后自动回滚)

使用场景:Ubuntu 18.04及以后版本的网络配置


终端窗口
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 --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 status # 查看状态
ufw enable # 启用防火墙
ufw allow 22 # 允许22端口
ufw deny 80 # 拒绝80端口
ufw delete allow 22 # 删除规则

使用场景:Ubuntu的简易防火墙管理


终端窗口
iftop -i eth0 # 实时查看网络流量

使用场景:实时监控网络接口流量


终端窗口
nethogs eth0 # 按进程显示网络使用情况

使用场景:查看哪个进程占用带宽


终端窗口
iptraf-ng # 交互式网络监控工具

使用场景:详细的网络流量统计


终端窗口
vnstat -d # 按天统计流量
vnstat -m # 按月统计流量
vnstat -l # 实时监控

使用场景:长期网络流量统计


终端窗口
nload eth0 # 实时带宽监控

使用场景:简单直观的带宽监控


终端窗口
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 show # 查看邻居表(ARP缓存)
ip neigh flush dev eth0 # 清空指定接口的ARP缓存

使用场景:现代ARP管理方式


终端窗口
ethtool eth0 # 查看网卡信息
ethtool -s eth0 speed 1000 duplex full # 设置网卡速度
ethtool -S eth0 # 查看网卡统计信息

使用场景:网卡硬件配置和诊断


终端窗口
iwconfig wlan0 # 查看无线网卡信息
iwconfig wlan0 essid "SSID" # 设置SSID

使用场景:无线网络配置


终端窗口
iw dev # 查看无线设备
iw wlan0 scan # 扫描无线网络
iw wlan0 link # 查看连接信息

使用场景:现代无线网络管理


终端窗口
hostname # 查看主机名
hostname newhostname # 临时修改主机名
hostnamectl set-hostname newhostname # 永久修改(systemd)

使用场景:主机名管理


功能类别传统命令现代推荐
接口配置ifconfigip addr, ip link
路由管理routeip route
连接查看netstatss
ARP管理arpip neigh
无线网络iwconfigiw, nmcli

场景1:虚拟机无法上网

跳转到“场景1:虚拟机无法上网”
终端窗口
ip addr show # 检查IP地址
ip route show # 检查路由
ping 8.8.8.8 # 测试网络
cat /etc/resolv.conf # 检查DNS

场景2:开发板无法连接

跳转到“场景2:开发板无法连接”
终端窗口
ip addr show # 确认IP配置
ping 192.168.0.100 # 测试连通性
arp -a # 检查ARP缓存
tcpdump -i eth0 icmp # 抓包分析
终端窗口
iftop -i eth0 # 查看实时流量
nethogs # 查看进程占用
ss -s # 查看连接统计
ethtool eth0 # 检查网卡状态

来源:CSDN 原文,首次发布于 2025-12-27。