这是来自如何在 Ubuntu 16.04 中使用命令行设置 mac 地址?,我无法联系 the_velour_fog
我也遇到了同样的问题,但我坚持使用 adonis 提出的解决方案:
nmcli connection modify --temporary 802-11-wireless.cloned-mac-address 00:60:1B:EB:F8:73
这是命令吗?我应该用什么来代替connection_name
?我不知道在哪里可以找到它。
nmcli connection up
如果这是一条完整的命令,我应该&&
在它们之间做什么吗?
答案1
是的,“nmcli”是一个命令。它是 NetworkManager 命令行界面的缩写版本。您可以使用“which”命令找到它,如下所示(但它应该已经在您的 PATH 中)
[jcall@laptop ~]$ which nmcli
/usr/bin/nmcli
“连接名称”将是您之前创建的名称。您可以从命令行创建连接,但我通常只使用 GUI 来创建它们(尤其是无线连接)。您可以使用命令“nmcli connection show”或缩写方式“nmcli c s”列出您的连接。以下是我的连接示例...
[jcall@laptop ~]$ nmcli connection show
NAME UUID TYPE DEVICE
Home_WiFi c1c95bd9-78f3-4764-9922-971339702735 802-11-wireless --
Hotel_WiFi 921ad0bf-e18e-4d90-87d9-0f1c852c3dc7 802-11-wireless --
Google Starbucks d5242485-ebd6-4152-a839-eaedacc49b4a 802-11-wireless --
enp0s25 6c6036d5-4739-3540-ac21-bf7a04669ed6 802-3-ethernet --
最后,您需要按顺序一个接一个地执行命令。如果您想创建一个较长的单行命令,可以使用 && 来执行此操作。我通常只创建一个小脚本文件以使事情变得简单。这是我的示例。
[jcall@laptop ~]$ cat ~/bin/mac-changer.sh
#!/bin/bash
DEV=wlp3s0
NEWMAC=9c:d9:17:2e:ae:5f
if [ $# -lt 1 ]
then
echo "You forgot to tell me which network to connect to..."
echo "Please run \`nmcli con show\` for ideas..."
exit 1
fi
if $(nmcli -t -f NAME con show | grep -q $1)
then
nmcli connection modify --temporary $1 802-11-wireless.cloned-mac-address $NEWMAC
nmcli connection up $1
else
echo "Error: $1 is not a known network. Please run \`nmcli con show\` for ideas..."
fi
答案2
您可以使用 && 或按顺序执行一个完整的命令。< 连接名称 > 是您当前连接的 wifi 的名称。您不必输入 <> 只需输入字符串名称,例如 MyWifi