armbian netplan静态 IP 配置全攻略,从动态到静态的详细步骤
背景知识
netplan 的引入:
- 在较新的 Linux 发行版中(包括 Armbian),传统的
/etc/network/interfaces文件已被弃用,取而代之的是netplan工具。 - netplan 使用 YAML 格式的配置文件来管理网络接口。
静态 IP 的优势:
- 静态 IP 地址不会随时间变化,便于远程访问和管理。
- 对于需要长期运行的服务(如 NAS、Web 服务器等),静态 IP 是必需的。
设置ip静态地址
方法一:直接修改文件
找到 netplan 配置文件,在这个文件夹一般只有一个文件,,位于*"/etc/netplan/"*目录下,文件名通常为类似以下之一:01-netcfg.yaml
50-cloud-init.yaml
00-default-use-network-manager.yaml
10-dhcp-all-interfaces.yaml通过以下命令查看该目录下的文件:
ls /etc/netplan/
备份原始文件:sudo cp /etc/netplan/<文件名>.yaml /etc/netplan/<文件名>.yaml.bak
使用文本编辑器打开配置文件:
nano /etc/netplan/10-dhcp-all-interfaces.yaml.yaml
原始代码如下:
# Added by Armbian
#
# Reference: https://netplan.readthedocs.io/en/stable/netplan-yaml/
#
# Let systemd-networkd manage all Ethernet devices on this system, but be configured by Netplan.
network:
version: 2
renderer: networkd
ethernets:
all-eth-interfaces:
match:
name: "e*"
dhcp4: yes
dhcp6: yes
ipv6-privacy: yes # Enabled by default on most current systems, but networkd currently doesn't enable IPv6 privacy by default, see https://man.archlinux.org/man/systemd.network.5
all-lan-interfaces: # include interfaces that are renamed to 'lanX' by udev, e.g. nanopi-r2s
match:
name: "lan[0-9]*"
dhcp4: yes
dhcp6: yes
ipv6-privacy: yes # Enabled by default on most current systems, but networkd currently doesn't enable IPv6 privacy by default, see https://man.archlinux.org/man/systemd.network.5
all-wan-interfaces: # include interfaces that are renamed to 'wanX' by udev, e.g. nanopi-r1
match:
name: "wan[0-9]*"
dhcp4: yes
dhcp6: yes
ipv6-privacy: yes # Enabled by default on most current systems, but networkd currently doesn't enable IPv6 privacy by default, see https://man.archlinux.org/man/systemd.network.5获取物理网卡的名称:
# 显示所有网卡
root@uefi-x86:~# ls /sys/class/net/
br-5463f2193db1 docker0 ens33 lo
# 显示虚拟网卡
root@uefi-x86:~# ls /sys/devices/virtual/net
br-5463f2193db1 docker0 lo
# 显示物理网卡
root@uefi-x86:~# ls /sys/class/net/ | grep -v "`ls /sys/devices/virtual/net/`"
ens33
## 以下命令也可以检查网卡名称
root@uefi-x86:~# ip link
# 显示的第一个网卡 lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
# 显示的第二个网卡 ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:37:52:a3 brd ff:ff:ff:ff:ff:ff
altname enp2s1
altname enx000c293752a3
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 0a:53:cc:0c:07:3c brd ff:ff:ff:ff:ff:ff
4: br-5463f2193db1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 1a:5b:b3:95:7c:93 brd ff:ff:ff:ff:ff:ff
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether f6:f9:95:5d:97:38 brd ff:ff:ff:ff:ff:ff
root@uefi-x86:~#手动修改的代码如下:
network:
version: 2
renderer: networkd
ethernets:
ens33: # 查得的物理网卡
dhcp4: no # 禁用 DHCP
addresses: [192.168.50.22/24] # 静态 IP 和子网掩码
routes: # 定义默认路由
- to: default # 表示所有流量
via: 192.168.50.1 # 默认网关
nameservers: # 设置 DNS 服务器
addresses: [8.8.8.8,8.8.4.4] # DNS 服务器
dhcp6: yes # 开启ipv6
ipv6-privacy: yes # Enabled by default on most current systems, but networkd currently doesn't enable IPv6 privacy by default, see https://man.archlinux.org/man/systemd.network.5
all-lan-interfaces: # include interfaces that are renamed to 'lanX' by udev, e.g. nanopi-r2s
match:
name: "lan[0-9]*"
dhcp4: yes
dhcp6: yes
ipv6-privacy: yes # Enabled by default on most current systems, but networkd currently doesn't enable IPv6 privacy by default, see https://man.archlinux.org/man/systemd.network.5
all-wan-interfaces: # include interfaces that are renamed to 'wanX' by udev, e.g. nanopi-r1
match:
name: "wan[0-9]*"
dhcp4: yes
dhcp6: yes
ipv6-privacy: yes # Enabled by default on most current systems, but networkd currently doesn't enable IPv6 privacy by default, see https://man.archlinux.org/man/systemd.network.5# 以下命令用以检查以上的配置
# 应用新的网络配置
netplan apply
# 检查网络接口:
ip addr show ens33
# 检查默认路由:
ip routearmbian-config工具修改
输入以下命令以打开“armbian-config”工具armbian-config
在菜单中选择“Network”,然后选择“Interfaces”,选择您想要配置的网络接口,通常是“ens33”。
选择“Static”以配置静态IP地址,然后输入您想要设置的IP地址、子网掩码(默认的好像是24,不用改)和网关。完成配置后,选择“OK”以保存更改。
最后,您可以通过输入“ifconfig”命令来验证您的IP地址是否已更改。root@uefi-x86:~# ifconfig
-bash: ifconfig: 未找到命令 # 如果出现这个,改用下面的命令
root@uefi-x86:~# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
link/ether 00:0c:29:37:52:a3 brd ff:ff:ff:ff:ff:ff
altname enp2s1
altname enx000c293752a3
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 0a:53:cc:0c:07:3c brd ff:ff:ff:ff:ff:ff
inet 192.168.50.22/24 brd 192.168.50.255 scope global br0
valid_lft forever preferred_lft forever
inet6 240e:386:826:e700::1000/128 scope global dynamic noprefixroute
valid_lft 1544sec preferred_lft 1544sec
inet6 240e:386:826:e700:853:ccff:fe0c:73c/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 1241sec preferred_lft 1241sec
inet6 fe80::853:ccff:fe0c:73c/64 scope link
valid_lft forever preferred_lft forever
4: br-5463f2193db1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether 1a:5b:b3:95:7c:93 brd ff:ff:ff:ff:ff:ff
inet 172.18.0.1/16 brd 172.18.255.255 scope global br-5463f2193db1
valid_lft forever preferred_lft forever
5: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default
link/ether f6:f9:95:5d:97:38 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
root@uefi-x86:~#修改完成之后会在*
"/etc/netplan/"*文件夹下有一个新的文件【armbian.yaml】,大概内容如下:network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: false
dhcp6: true
bridges:
br0:
addresses:
- "192.168.50.22/24"
nameservers:
addresses:
- 8.8.8.8
- 8.8.4.4
interfaces:
- ens33
routes:
- metric: 200
to: "0.0.0.0/0"
via: "192.168.50.1"