Computer >> Hướng Dẫn Máy Tính >  >> Phần Mềm >> Máy Ảo

Vấn đề Bridged Networking VirtualBox: Tại sao nó Ngừng Hoạt động & Cách Fix

Tôi thích V'box và tôi không thể nói dối, tất cả các nerd không thể deny. Cái là, tôi dùng VirtualBox cho mọi loại test và những gì. Fair deal. Nhưng thỉnh thoảng, chương trình hoàn hảo này quyết định misbehave và ngừng hợp tác với nỗ lực của tôi. Case in point, bridged networking.

Qua nhiều năm, tôi đã viết một đống hướng dẫn xoay quanh tính năng mạng VirtualBox, như tutorial network & sharing, cách share qua NAT với port-forwarding, và cách cấu hình NAT network. Như đã xảy ra, tôi cũng dùng bridged network functionality, vì nó đơn giản và tiện lợi, và dường như hoạt động reliable tốt, với adapter có dây và Wireless. Nhiều năm không có trouble, và đột ngột, có. Bridged networking stopped networking cho tôi trên Linux host chạy VirtualBox 6.X. Hiểu không? Network not-work. Ho ho. Theo chân mình nhé.

Vấn đề chi tiết hơn

Tôi gặp vấn đề này trên laptop Slimbook, chạy Kubuntu 18.04, với VirtualBox 6.1. Laptop có Intel dual-band Wireless adapter, và tôi có thể dùng nó cho bridged networking không có vấn đề gì lâu lắm. Vài tuần trước, tôi nhận thấy guest OS, cả Windows và Linux, không thể acquire IP address nữa với network config này.

Để loại trừ router, tôi test trên Windows host, chạy VirtualBox, và ở đó, không có issue nào nảy sinh. Để loại trừ Linux, tôi thử trên vài distro khác, với cùng kết quả (xấu), bất chấp sự khác biệt về kiến trúc và kernel version. Vì vậy, điều này dường như giới hạn trong build VirtualBox cho Linux, nhưng không phải vì Linux. Tất nhiên, nếu bạn vào forum chính thức, bạn sẽ tìm thấy nhiều thread về chủ đề này, hầu hết kết thúc bằng fix hoặc comment mơ hồ nói bridged networking không reliable, nên bạn nên hơi hài lòng nó chạy. Nhưng không.

Có lẽ tôi gặp regression mới trong network stack hoặc cái gì đó, và có lẽ bạn sẽ không bao giờ gặp vấn đề này. Nhưng nếu bạn gặp, tôi đã tìm thấy một workaround semi-reasonable, có thể giúp bạn cho đến khi bridged networking issue cụ thể của bạn, bất kể nó là gì trên build VirtualBox nào, được resolved. Và tôi nói "của bạn", vì nếu không, bạn sẽ không đọc bài này.

Giải pháp

Vậy là chúng ta có bridged networking, nhưng client không acquire được IP. Dùng static IP cũng không giúp. Trong trường hợp của tôi, lý do dường như là conflict giữa MAC address random generated của virtual network adapter và MAC address của physical card được bridge. Trong quá khứ, điều này không ảnh hưởng functionality, do đó đây có vẻ như bug, nhưng bây giờ chúng ta có nó. Workaround là thủ công set MAC address của virtual adapter khớp với physical card của bạn.

Bạn làm được bằng cách vào Settings cho VM bị ảnh hưởng > Network > Advanced. Ở đây, bạn có thể set trường MAC Address thành MAC của adapter host. Sau đó, start VM và đi vui vẻ về việc của bạn.

Lưu ý

Bây giờ, đây là workaround, không phải giải pháp đầy đủ và hoàn chỉnh. Với thay đổi này, VM của bạn sẽ lấy cùng IP address với host. Điều này cũng có nghĩa là một số ứng dụng có thể không nhất thiết hoạt động đúng, vì network của bạn supposed có hai host identical với cùng shared address. Bạn sau đó nên cân nhắc gán thủ công một IP address khác cho VM, khi nó lên.

Kết luận

Tôi không bao giờ hài lòng viết tutorial kém hoàn hảo, nhưng đôi khi, tôi cảm thấy tốt hơn là cho độc giả một chút giúp đỡ, với disclaimer cần thiết, thay vì tiếp tục chạm khắc David của tôi cho đến vô tận. Hôm nay, chúng ta có một ví dụ như vậy. Rõ ràng chúng ta đối mặt với vấn đề trong phần mềm, và do đó, giải pháp logic nhất là chờ fix chính thức. Đã xảy ra trước, có thể xảy ra lại.

Dù sao, bất kể thế nào, tôi hy vọng bạn thấy thông tin trên hữu ích. Không hoàn hảo, nhưng có thể giúp bạn thoát khỏi lúng túng, đặc biệt vì vấn đề này sẽ ảnh hưởng bạn khi bạn ít cần nó nhất, ví dụ bạn bật VM, mong đợi mọi thứ chạy, và đột ngột không thể hoàn thành bất kỳ task liên quan mạng nào. Nếu bạn có ý tưởng, gợi ý hoặc kinh nghiệm về chủ đề này, thoải mái mail cho tôi. Xong.

Chúc vui.