问题:
我怎样才能专门更改Mac地址恩普3s0和wlp2s0接口通过/etc/网络/接口文件?我必须在里面包含什么代码?我已经尝试了一段时间了,但遗憾的是没有成功。
阐述:
所以我在网上发现了这篇很棒的文章,解释了如何通过/etc/网络/接口我的 Ubuntu 上的文件。
文章中说:
在 Debian、Ubuntu 和类似系统上,将以下内容放置在 /etc/network/interfaces 的相应部分中(在 iface 节内,例如,紧接网关行之后),以便在网络设备启动时设置 MAC 地址:
hwaddress 以太 02:01:02:03:04:08
来源:https://en.wikibooks.org/wiki/Changing_Your_MAC_Address/Linux
现在当我使用以下代码时:
cat /etc/network/interfaces
我得到以下输出
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback
当我在 ubuntu 上执行 ifconfig 时,我得到 3 个不同的接口:
恩普3s0
罗
wlp2s0
我想更改所有接口的 MAC 地址(enp3s0、wlp2s0)(lo 是环回,所以不需要),但我不熟悉/etc/网络/接口文件。我一直在网上看教程,但我似乎无法把东西弄对,之后我的电脑甚至开始表现得非常奇怪。
答案1
使用hwaddress ether
接口配置块内部。例子:
auto enp3s0
iface enp3s0 inet static
address 192.0.2.7
netmask 255.255.255.0
gateway 192.0.2.254
hwaddress ether 00:11:22:33:44:55
或者,如果是 dhcp:
allow-hotplug enp3s0
iface enp3s0 inet dhcp
hwaddress ether 00:11:22:33:44:55
我错过了一个细节:hwaddress
如果您要设置静态 IP 地址,则配置项需要位于网关节之后。
相关内容: /etc/network/interfaces 语法的详细解释?
但是,如果你在更换 mac 时遇到问题,network/interfaces
你可以通过udev
udev 方法 -etc/udev/rules.d/75-mac-spoof.rules
创建包含以下内容的文件:
ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="XX:XX:XX:XX:XX:XX", RUN+="/usr/bin/ip link set dev %k address YY:YY:YY:YY:YY:YY"
您还可以使用 systemd 单元来完成此操作,如下所述:使用 systemd 单位更改 mac。但归根结底,它们也只是执行ip link set
和 的包装器macchanger
。
答案2
要永久更改您的 MAC 地址,请将以下行附加到您的/etc/network/interfaces
:
pre-up ifconfig <interface> hw ether xx:xx:xx:yy:yy:yy
NetworkManager 将在 Wi-Fi 扫描期间重置您的 MAC 地址。要禁用此功能,您可以/etc/NetworkManager/NetworkManager.conf
按如下方式编辑:
[main]
plugins=ifupdown,keyfile
[ifupdown]
managed=false
[device]
wifi.scan-rand-mac-address=no
[keyfile]
然后重新启动。
有一些关于 Wi-Fi 扫描期间 MAC 地址随机化的有用信息建筑维基百科:
配置 MAC 地址随机化
从版本 1.4.0 开始,NetworkManager 支持两种类型的 MAC 地址随机化:扫描过程中的随机化和稳定随机化。两种模式都可以通过修改来配置
/etc/NetworkManager/NetworkManager.conf
从版本 1.2.0 开始,Wi-Fi 扫描过程中的随机化默认启用,可以通过添加以下行来禁用它
/etc/NetworkManager/NetworkManager.conf
:
[device] wifi.scan-rand-mac-address=no
答案3
MAC 地址已在其 wifi 设备中注册,通常无法更改为其他 MAC 地址。
所以如果你改变了MAC地址,那么你不可避免地必须使用另一个wifi设备。
正如您在评论中提到的,
重新启动后重新出现相同的 MAC 地址,操作系统只是从 wifi 设备中读取 MAC 地址。
这是正常行为。
顺便说一句,在虚拟环境中,您可以自由设置MAC地址。