Bạn rất có thể sử dụng phương pháp "chính xác" để thay đổi địa chỉ MAC, nếu bạn đang thực hiện việc này trong cài đặt mạng nâng cao trong VirtualBox. Tuy nhiên, một thay đổi tạm thời như trong câu trả lời khác của Zuul có thể là tốt nhất cho mục đích của bạn, vì nó sẽ thay đổi MAC mà không gây ra quá nhiều vấn đề khác - tuy nhiên nó sẽ không tồn tại khi khởi động lại.
Thay đổi nó trong VirtualBox tất nhiên sẽ tồn tại khi khởi động lại, nhưng vấn đề bạn gặp phải là udev
. Đây là quá trình xem xét phần cứng và thiết lập phần cứng đó /dev
(hoặc bất cứ điều gì khác có thể cần phải được thực hiện). Một trong những điều nó làm theo mặc định là cố gắng duy trì các tên liên tục cho thẻ giao diện mạng [nics]. Điều này là do khi bạn có nhiều nics, bạn muốn chúng luôn có cùng tên ethX, để /etc/network/interfaces
cấu hình của bạn nhắm đúng nic mỗi lần khởi động. Hệ điều hành không thể dựa vào chúng chỉ ở cùng một vị trí mỗi lần - bạn có thể di chuyển chúng xung quanh hoặc một số hệ thống không báo cáo các kết nối vật lý của chúng theo cùng một trình tự mỗi lần khởi động.
Vì vậy, udev
sử dụng quy tắc kiên trì dựa trên địa chỉ MAC của card mạng. Nếu nó có một mục nhập cho eth1 với một địa chỉ MAC đã biết và một thẻ xuất hiện với một địa chỉ MAC khác, nó sẽ phân bổ một tên thiết bị ethX khác cho giao diện.
Để chống lại điều này, bạn chỉ cần cập nhật các udev
quy tắc. Biên tập:
vi /etc/udev/rules.d/70-persistent-net.rules
và tìm dòng với MAC hiện tại của bạn:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="11:22:33:44:55:66", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
Nếu bạn thay đổi địa chỉ MAC ở đây thành địa chỉ mới mà bạn đã chọn trong cài đặt VirtualBox, thì địa chỉ đó sẽ giữ lại số nhà phát triển ethX tương tự.
Trình tự tốt nhất có lẽ là chỉnh sửa nó ở đây trước, sau đó tắt VM, sau đó chỉnh sửa cài đặt VB MAC, sau đó khởi động.