跳转到内容

树莓派Netplan网络配置

在较新的 Ubuntu 及 Debian 系系统(如树莓派官方系统)中,推荐使用 netplan 工具进行网络配置。

  • 编写配置文件

修改或新建 /etc/netplan/01-custom_network.yaml,配置有线与无线网卡的静态 IP(此处已隐藏敏感的 WiFi 凭据):

network:
version: 2
wifis:
wlan0:
dhcp4: false
optional: true
access-points:
"YOUR-WIFI-NAME":
password: "[WIFI密码已隐藏]"
# 设置无线网卡静态 IP
addresses:
- 192.168.31.108/24
# 默认路由配置 (代替已废弃的 gateway4)
routes:
- to: default
via: 192.168.31.1
metric: 200 // 数值越大优先级越低,无线网络作为备用
# 域名解析服务器
nameservers:
addresses:
- 114.114.114.114
- 8.8.8.8
- 1.1.1.1
ethernets:
eth0:
dhcp4: false
optional: true
# 设置有线网卡静态 IP
addresses:
- 192.168.8.201/24
# 默认路由配置
routes:
- to: default
via: 192.168.8.1
metric: 100 // 有线网络设置较小 Metric 优先出网
nameservers:
addresses:
- 8.8.8.8
- 1.1.1.1
  • 配置应用
Terminal window
# 测试配置是否存在语法错误,并在 120 秒内自动回滚防失联
sudo netplan try
# 确认无误后应用配置
sudo netplan apply
  • 检查当前 IPv6 启用状态
Terminal window
ip -6 addr show
# 如果输出为空,代表 IPv6 已禁用;若有输出相关 IP 则代表 IPv6 处于开启状态。
  • 修改内核参数

编辑 /etc/sysctl.conf 配置文件,在文件末尾追加以下配置:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
  • 重载内核配置使之生效
Terminal window
sudo sysctl -p
  • 临时清理本地 DNS 缓存
Terminal window
sudo resolvectl flush-caches
  • 配置彻底关闭系统缓存

编辑 /etc/systemd/resolved.conf 配置文件,调整 Cache 机制,确保每次解析请求都穿透向路由器查询实时结果:

[Resolve]
# 彻底关闭 systemd-resolved 缓存
Cache=no
# 对于本机发出的解析请求也不使用本地缓存
CacheFromLocalhost=no
  • 重启解析器守护进程
Terminal window
sudo systemctl restart systemd-resolved