如何通过脚本在 Ubuntu 18.04 中配置网络设置(如身份、IPv4 格式(地址、网络掩码、网关、DNS)、安全性和密码)?
我找不到任何 gsettings 模式。如果有人能给我指明正确的方向,我将不胜感激。
答案1
您可以使用该nmcli
工具通过 NetworkManager 编辑连接。
例如,假设您想为设备创建以太网连接:enp1s0
。
IP:192.168.1.10
网关:192.168.1.1
DNS:8.8.8.8
连接名称:“net-enp1s0”
sudo nmcli con add con-name "net-enp1s0" ifname enp1s0 type ethernet ipv4.method manual ip4 192.168.1.10/24 gw4 192.168.1.1 ipv4.dns 8.8.8.8
或作为脚本(您需要使用sudo
来运行该脚本):
#!/bin/bash
nmcli con add \
con-name "net-enp1s0" \
ifname enp1s0 \
type ethernet \
ipv4.method manual \
ip4 192.168.1.10/24 \
gw4 192.168.1.1 \
ipv4.dns 8.8.8.8
以下是选项:
con
= 连接add
= 添加con-name "net-enp1s0"
= 连接 IDifname enp1s0
= 连接接口名称type ethernet
= 连接类型ipv4.method manual
= 使用静态 IPip4 192.168.1.10/24
= 本地 IPv4 地址和网络掩码(24=255.255.255.0)gw4 192.168.1.1
= 网关ipv4.dns 8.8.8.8
= DNS 服务器
您还可以编辑现有连接。
我们的“net-enp1s0”连接的配置文件是:/etc/NetworkManager/system-connections/net-enp1s0
。该文件应如下所示:
[connection]
id=net-enp1s0
uuid=5099a1ae-1ae0-42d7-acf8-178ef3772f4f
type=ethernet
interface-name=enp1s0
permissions=
[ethernet]
mac-address-blacklist=
[ipv4]
address1=192.168.1.10/24,192.168.1.1
dns=8.8.8.8;
dns-search=
method=manual
[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto
如果您编辑网络的配置文件,则可以运行以下命令来应用更改:
sudo nmcli con reload
以下示例是在名为“freewifi”的网络上使用名为“coffee-shop”的 PSK 和密码“freepassword”的 WPA 无线连接:
sudo nmcli con add con-name "coffee-shop" type wifi ifname wlp2s0 ssid "freewifi" -- wifi-sec.key-mgmt wpa-psk wifi-sec.psk "freepassword" ipv4.method manual ip4 192.168.1.10/24 gw4 192.168.1.1 ipv4.dns 8.8.8.8
脚本如下:
#!/bin/bash
nmcli con add \
con-name "coffee-shop" \
type wifi \
ifname wlp2s0 \
ssid "freewifi" \
-- wifi-sec.key-mgmt wpa-psk \
wifi-sec.psk "freepassword" \
ipv4.method manual \
ip4 192.168.1.10/24 \
gw4 192.168.1.1 \
ipv4.dns 8.8.8.8
链接:
此外,Arch Linux 维基页面有一个示例列表nmcli
。
CertDepot 教程适用于 RedHat,但几乎所有nmcli
内容都适用于 Ubuntu。不过,Ubuntu 配置文件已包含在内/etc/NetworkManager/system-connections
,您可以直接编辑这些文件。