Trong môi trường Windows, khi máy chủ chính kết nối internet qua Wi-Fi và bạn muốn đảm bảo máy chủ chính không mất kết nối đồng thời máy ảo Hyper-V có thể truy cập dịch vụ trên máy chủ chính, bạn có thể sử dụng chế độ NAT hoặc Chia sẻ kết nối. Dưới đây là các giải pháp cụ thể và hướng dẫn thực hiện:
Giải pháp Một: Sử dụng Chế Độ NAT (Được Đề Xuất)
Nguyên lý: Máy ảo sử dụng mạng chia sẻ của máy chủ chính để truy cập internet, máy chủ chính và máy ảo có thể truy cập lẫn nhau mà không cần thay đổi cấu hình mạng vật lý.
Các Bước Thực Hiện
- Tạo Switch Nội Bộ
- Mở Hyper-V Manager, chọn
Quản lý Switch Mạng. - Chọn
Nội bộ, sau đó nhấnTạo Switch Mạng, đặt tên làNAT-Switch.
- Cấu Hình Chia Sẻ Kết Nối trên Máy Chủ Chính
- Mở
Trung tâm Mạng và Chia sẻ, tìm kết nối Wi-Fi của máy chủ chính (ví dụ:Wi-Fi). - Nhấp chuột phải vào kết nối Wi-Fi, chọn
Thuộc tính > Chia sẻ, đánh dấuCho phép các người dùng khác kết nối đến Internet thông qua kết nối này của tôi. - Trong phần
Kết nối mạng gia đình, chọnNAT-Switchvừa tạo, nhấnOK.
- Gán Switch Nội Bộ Cho Máy Ảo
- Trong Hyper-V Manager, nhấn chuột phải vào máy ảo, chọn
Cài đặt > Adapter Mạng. - Kết nối adapter mạng đến
NAT-Switch.
- Cấu Hình Mạng Máy Ảo (Ví dụ Ubuntu)
- Khởi động máy ảo, mở hệ điều hành Linux.
- Sử dụng DHCP để lấy IP tự động (thường là
192.168.137.x, mặt nạ mạng255.255.255.0). - Kiểm tra kết nối mạng:```
ping 8.8.8.8 # Kiểm tra truy cập internet
ping <IP Máy Chủ Chính> # Kiểm tra kết nối với máy chủ chính (IP máy chủ chính có thể được xem bằng lệnh
ipconfig, thường là192.168.137.1)
5. **Máy Chủ Chính Truy Cập Dịch Vụ Trên Máy Ảo**
- Khi dịch vụ trên máy ảo lắng nghe trên `0.0.0.0`, máy chủ chính có thể truy cập trực tiếp qua IP máy ảo (ví dụ: `http://192.168.137.2:8080`).
#### **Ưu Điểm và Nhược Điểm**
- **Ưu Điểm**: Máy chủ chính không mất kết nối, cấu hình đơn giản, máy ảo nhận IP tự động.
- **Nhược Điểm**: Máy ảo không thể được truy cập trực tiếp từ mạng bên ngoài (cần chuyển tiếp cổng bổ sung).
### **Giải Pháp Hai: Sử Dụng Chế Độ NAT + Chuyển Tiếp Cổng (Cho phép Truy Cập Từ Bên Ngoài)**
**Nguyên lý**: Dựa trên chế độ NAT, sử dụng chuyển tiếp cổng để ánh xạ cổng cụ thể của máy chủ chính sang máy ảo, thực hiện truy cập từ bên ngoài.
#### **Các Bước Thực Hiện**
1. **Hoàn Thành Cấu Hình Chế Độ NAT**
- Đảm bảo máy ảo đã kết nối qua `NAT-Switch`.
2. **Cấu Hình Quy Tắc Chuyển Tiếp Cổng**
- Mở PowerShell với quyền quản trị, chạy lệnh sau (ánh xạ cổng `2222` của máy chủ chính sang cổng `22` của máy ảo):```
New-NetNat -Name "NAT-Network" -InternalIPInterfaceAddressPrefix "192.168.137.0/24"
Add-NetNatStaticMapping -NatName "NAT-Network" -Protocol TCP -ExternalPort 2222 -InternalIPAddress 192.168.137.2 -InternalPort 22
- Thay thế
192.168.137.2bằng IP thực tế của máy ảo (xem thông quaifconfighoặcip a).
- Kiểm Tra Chuyển Tiếp Cổng
- Trên máy chủ chính hoặc thiết bị khác, thực hiện:``` telnet <IP Máy Chủ Chính> 2222 # Kiểm tra kết nối SSH (hoặc cổng dịch vụ khác)
#### **Ưu Điểm và Nhược Điểm**
- **Ưu Điểm**: Mạng bên ngoài có thể truy cập dịch vụ trên máy ảo thông qua IP máy chủ chính.
- **Nhược Điểm**: Cần cấu hình thủ công quy tắc chuyển tiếp cổng, xử lý xung đột cổng nếu cần.
### **Giải Pháp Ba: Sử Dụng Chế Độ Chia Sẻ Kết Nối (ICS, Internet Connection Sharing)**
**Nguyên lý**: Sử dụng chức năng ICS tích hợp trong Windows để chia sẻ kết nối Wi-Fi, máy ảo truy cập internet qua mạng nội bộ.
#### **Các Bước Thực Hiện**
1. **Tạo Switch Nội Bộ**
- Tương tự giải pháp một, tạo switch nội bộ tên là `ICS-Switch`.
2. **Bật Chức Năng ICS**
- Mở `Trung tâm Mạng và Chia sẻ`, tìm kết nối Wi-Fi của máy chủ chính.
- Nhấp chuột phải vào kết nối Wi-Fi, chọn `Thuộc tính > Chia sẻ`, đánh dấu `Cho phép các người dùng khác kết nối đến Internet thông qua kết nối này của tôi`.
- Trong phần `Kết nối mạng gia đình`, chọn `ICS-Switch`, nhấn `OK`.
3. **Gán Switch ICS Cho Máy Ảo**
- Trong Hyper-V Manager, kết nối adapter mạng máy ảo đến `ICS-Switch`.
4. **Cấu Hình Mạng Máy Ảo**
- Máy ảo thường sẽ nhận IP tự động (ví dụ: `192.168.137.x`), cổng là `192.168.137.1` (IP của card mạng ảo trên máy chủ).
- Kiểm tra kết nối mạng:```
ping 192.168.137.1 # Kiểm tra kết nối với máy chủ chính
ping 8.8.8.8 # Kiểm tra truy cập internet
Ưu Điểm và Nhược Điểm
- Ưu Điểm: Cấu hình đơn giản, không cần quy tắc NAT bổ sung.
- Nhược Điểm: Giống như giải pháp một, máy ảo không thể được truy cập trực tiếp từ mạng bên ngoài.
Giải Quyết Các Vấn Đề Thường Gặp
- Máy Ảo Không Nhận Được IP
- Kiểm tra chức năng chia sẻ ICS hoặc NAT trên máy chủ chính có được bật.
- Đảm bảo adapter mạng máy ảo đã được kết nối đúng với switch ảo.
- Khởi động lại dịch vụ mạng trong máy ảo (ví dụ:
sudo systemctl restart networking).
- Máy Chủ Chính và Máy Ảo Không Thể Kết Nối Lẫn Nhau
- Kiểm tra cài đặt tường lửa (ví dụ: tường lửa Windows Defender có chặn ICMP hay cổng cụ thể).
- Tạm thời tắt tường lửa để kiểm tra:``` Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
3. **Chuyển Tiếp Cổng Không Hoạt Động**
- Xác nhận quy tắc NAT đã được áp dụng:```
Get-NetNatStaticMapping | Format-Table
- Kiểm tra dịch vụ trên máy ảo có lắng nghe trên
0.0.0.0chứ không phải127.0.0.1.
Tóm Tắt và Đề Xuất
- Chỉ cần máy chủ chính và máy ảo kết nối với nhau: Sử dụng chế độ NAT (giải pháp một), đơn giản và ổn định.
- Cần truy cập dịch vụ trên máy ảo từ mạng bên ngoài: Sử dụng chế độ NAT + chuyển tiếp cổng (giải pháp hai), linh hoạt điều khiển cổng truy cập.
- Tránh cấu hình phức tạp: Sử dụng chế độ chia sẻ kết nối (giải pháp ba), phù hợp để dựng môi trường thử nghiệm nhanh chóng.
Qua các giải pháp trên, bạn có thể đảm bảo máy chủ chính không mất kết nối Wi-Fi đồng thời đảm bảo máy ảo có thể truy cập mạng và dịch vụ trên máy chủ chính.