Cách để máy host VMware cùng IP với các instance máy ảo

Xin chào anh chị.

Em đang có server homelab và bây giờ định cài như này:

PC của em cài VMware vSphere 8 (ESXi 8) sau đó em tạo 3 máy ảo: là windows, macOS, Ubuntu. Em muốn từ internet truy cập 123.21.43.35:7000 thì sẽ vào được macOS. Tương tự nếu windows em cài nginx listening port 3000 thì từ internet truy cập 123.21.43.35:3000 sẽ vào được web trên windows.

Em muốn hỏi là có cách nào làm được không? Hoặc Windows, macOS, ubuntu có một địa chỉ IP trong lớp mạng riêng khác với IP của máy host cũng được. Sau đó map IP và port của máy host tới từng máy ảo bên trong. Em có đọc qua NAT, port forwarding trong NAT, … nhưng không hiểu cơ chế lắm. Đa phần bài viết em tìm trên mạng đều triển khai cho doanh nghiệp, không biết trường hợp homelab của em config như nào.

**Em là chủ hộ đăng ký mạng, đã liên hệ nhà mạng mở all port modem rồi. Vấn đề IP động em dùng dynamic DNS (thật ra thì em chẳng bao giờ khởi động lại modem nên suốt cả tháng IP cũng không đổi).

Mong được giúp đỡ !

Bạn không hiểu chỗ nào, cái này chính là cái bạn cần tìm rồi
nếu bạn không biết NAT là gì, vậy cho mình hỏi là bạn đã mở được port trên con máy vật lý để public ra internet chưa?

Dạ em đã NAT được máy host ra internet bằng cách config theo hướng dẫn trong giao diện trang dashboard của modem. Em đã test thành công hay chưa bằng cách tạo một file HTML cho vào nginx và dùng điện thoại bật 3G lên truy cập. Còn NAT từ máy ảo windows, ubuntu, macOS ra ngoài internet thì em chưa làm được

theo như những gì bạn muốn, mình nghĩ bạn nên sửa dụng card mạng cho máy ảo ở chế độ Bridged cho các máy ảo (sẽ dùng chung dãy ip với host)
sau đó từ modem set NAT tới những cái máy ảo trên mà thôi (coi nhũng cái máy ảo đó giống như các máy tính thật khác)

Hiện nay, cứ mỗi giây có hàng nghìn công cụ đang scan tất cả các địa chỉ IP để tìm các open port để phục vụ mục đích xấu (hack thông tin, biến máy bạn thành zombie, hoặc phá hoại dữ liệu của bạn).
Mình từng bị tấn công mã hóa toàn bộ dữ liệu khi mở port ra public IP.
Hy vọng bạn nhận thức được tính nghiêm trọng và quan trọng của hành động mở port và chủ động phòng chống các tấn công này. Nếu bạn chưa có đủ kiến thức thì đừng nên mở port hoặc giới hạn số port ở mức thấp nhất có thể.

3 Likes

Dạ cảm ơn anh đã cảnh báo, em build server homelab để học tập nên không dám lưu dữ liệu quan trọng. Web em cũng bị dính virus một lần rồi, may là virus quảng cáo.

Cảm ơn anh, bên ngoài đã truy cập vào từng máy ảo được rồi ạ.

Khi dùng docker để tránh tình trạng một container chiếm port 80 của host thì em cài nginx trên máy host (cùng cấp với docker) để làm reverse proxy và thiết đặt domain cho mỗi container. Khi truy cập vào domain (port 80) thì nginx forward qua đúng port của container.

Bây giờ ví dụ windows trong hình trên đang chiếm port 80 của IP public nên em muốn setup reverse proxy như cách em làm với docker nhưng máy host đã cài VMware esxi rồi không cài nginx chung được vậy nếu em cài nginx vào máy ảo windows dùng máy ảo này forwaring vào những máy ảo kia (ubuntu, macOS) có được không?

sau khi bạn đã dùng card mạng dạng bridged, thì câu chuyện ở đây không còn là máy ảo máy thật gì nữa, không có phân biệt

public -> modem -> nginx -> các service

chỉ cần 1 nginx (nên cài trên linux) là được, dùng nginx hiện tại làm reverse proxy trỏ đến các service cần thiết (trên windows hay mac hay chính con linux đó)

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?