通过 gsettings/script/terminal 在 Linux 中配置网络设置

通过 gsettings/script/terminal 在 Linux 中配置网络设置

如何通过脚本在 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"= 连接 ID

  • ifname enp1s0= 连接接口名称

  • type ethernet= 连接类型

  • ipv4.method manual= 使用静态 IP

  • ip4 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,您可以直接编辑这些文件。

相关内容