我正在寻找在 Ubuntu Desktop 18.04 上使用静态 IP 配置网络的正确方法,但是从命令行而不是 GUI 进行。
谢谢
答案1
我认为这已经非常接近“正确方法”了。
首先,您必须找出您的接口名称。为此,只需ip address
从终端运行eno1
即可。在我的计算机上,它位于第一行:
me@pc:~$ ip address
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 90:b1:1c:aa:bb:cc brd ff:ff:ff:ff:ff:ff
inet 10.1.2.16/24 brd 10.1.2.255 scope global eno1
valid_lft forever preferred_lft forever
inet6 fe80::5cd1:3ee8:c461:6f12/64 scope link noprefixroute
valid_lft forever preferred_lft forever
然后您只需编辑该文件/etc/netplan/01-network-manager-all.yaml
并使其看起来像这样,以进行静态 IP 地址分配:
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
ethernets:
eno1:
renderer: networkd
match:
name: eno1
addresses: [10.1.2.16/24]
gateway4: 10.1.2.1
nameservers:
search: [example.com]
addresses: [10.1.2.10]
这说明网络计划使用网络化在界面上eno1
,而不是网络管理器。
答案2
总结
编辑 /etc/systemd/network/*.network
完整示例:
为了使 wifi 正常工作,请确保替换wlan0
使用与您的 WiFi 完全相同的名称。
您可以通过将配置文件添加到 /etc/systemd/network/*.network 来直接使用 systemd
编辑:/etc/systemd/network/10-eth0.network
[Match]
Name=eth0
[Network]
Address=10.10.10.9/24
Gateway=10.10.10.1
DNS=9.9.9.9
编辑:/etc/systemd/network/20-wlan0.network
[Match]
Name=wlan0
SSID=Wifi-SSID
[Network]
DHCP=ipv4
我不使用 netplan,所以我更愿意删除它:
apt purge netplan.io
rm -rf /etc/netplan
启用 systemd-networkd:
systemctl unmask systemd-networkd
systemctl enable systemd-networkd
设置Wifi密码并开机启动:
wpa_passphrase Wifi-SSID Sweet-Password >> /etc/wpa_supplicant/wpa_supplicant-wlan0.conf
systemctl enable [email protected]
通过拒绝在启动时等待网络来加快启动时间:
systemctl disable systemd-networkd-wait-online.service
解释:
我知道这已经过时了,但我在这里添加了一种不同的方法,它不使用抽象层,例如 netplan.io 或 NetworkManager,这可能更接近地回答了该线程的标题,如果不是问题的话。
就我个人而言,我更喜欢这种方法,因为:
- 现在每个主要发行版都使用 systemd,但很少使用 netplan。
- 这很简单
- 很容易排除故障
- 可以用于非常复杂的设置,包括桥接、绑定、VLAN 等
- 可用于重命名设备和更改 MAC 地址
- 可用于根据无线 SSID 和其他 [Match] 指令进行不同的设置
认真地看一下 Arch wiki 页面,它通过示例对此进行了非常详细的解释。请通读全文,因为其中有一些陷阱。 https://wiki.archlinux.org/index.php/Systemd-networkd