linux开发——网络配置(含VM网络配置)

使用场景:

  • 开发板ip:192.168.0.232

  • window 电脑有wifi 和 有线网口,其中 wifi 连接了互联网;

  • window 装有Ubuntu 虚拟机;

VM 需要实现的功能:

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

实现方法:

  1. window 端设置 ,开发板用网线连接

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

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

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


  1. 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                 # 检查网卡状态
相关推荐
_F_y2 小时前
NAT技术、内网穿透、代理服务
网络·智能路由器
KingRumn2 小时前
玩转DBus命令行工具之gdbus使用
linux·算法
东东的脑洞2 小时前
【面试突击】TCP 四次挥手详解
网络·tcp/ip·面试
QT 小鲜肉2 小时前
【Linux命令大全】001.文件管理之mdir命令(实操篇)
linux·运维·服务器·chrome·笔记
摇滚侠2 小时前
镜像容器相关命令,docker export/import/save/load/commit,导出容器给别人使用
运维·docker·容器
这儿有一堆花2 小时前
拒绝性能缩水:如何甄别真正的高性能 VPS
运维·服务器
不染尘.2 小时前
cookie和session技术及实现
服务器·网络·网络协议·计算机网络
大聪明-PLUS2 小时前
企鹅网:Linux 网络
linux·嵌入式·arm·smarc
_F_y2 小时前
五种IO模型
服务器·网络