You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一网络环境下从外部设备访问虚拟机内的Minikube集群服务

How to Access Minikube Cluster Services from External Devices on the Same Network

Alright, let's break down your problem first — that 192.168.49.2 IP is Minikube's internal node IP, which lives in a private virtual network created by Minikube itself. Devices outside your Ubuntu VM can't see this IP at all, so the ping failure is totally expected. Here are two reliable solutions to get external devices accessing your cluster services:

Solution 1: Port Forwarding from VM Static IP to Minikube Ingress

This is the quickest fix if you want to keep your existing cluster setup. We'll route traffic from your VM's static IP (192.168.1.128) to Minikube's Ingress Controller.

Step 1: Confirm Minikube Ingress Details

First, verify your Ingress Controller's IP and that it's listening on port 80/443:

# Check Ingress resource IP
kubectl get ingress

# Check Ingress Controller service (in kube-system namespace)
kubectl get svc -n kube-system

You should see 192.168.49.2 as the Ingress address, and the ingress-nginx-controller service will have ports mapped (usually 80 and 443 to NodePorts, but we'll use the Ingress IP directly here).

Step 2: Enable IP Forwarding on the VM

Minikube's network is isolated, so we need to allow the VM to forward traffic between its external interface and Minikube's internal network:

# Enable temporary IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# Make it permanent (edit sysctl.conf)
sudo nano /etc/sysctl.conf
# Uncomment or add: net.ipv4.ip_forward=1
# Save and apply changes
sudo sysctl -p

Step 3: Set Up iptables Port Forwarding

We'll use iptables to redirect traffic from your VM's 80/443 ports to Minikube's Ingress IP:

# Forward port 80 to Minikube Ingress
sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.49.2:80
sudo iptables -t nat -A POSTROUTING -p tcp -d 192.168.49.2 --dport 80 -j MASQUERADE

# Forward port 443 if using HTTPS
sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 192.168.49.2:443
sudo iptables -t nat -A POSTROUTING -p tcp -d 192.168.49.2 --dport 443 -j MASQUERADE

To save these iptables rules permanently (so they survive reboots), install iptables-persistent:

sudo apt install iptables-persistent
sudo netfilter-persistent save

Step 4: Open VM Firewall Ports

Allow incoming traffic on 80/443 through UFW:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw reload

Step 5: Configure External Device Hosts

On each external device (host server, laptop, VPN-connected device), edit the hosts file to map your service domain to the VM's static IP:

  • Linux/macOS: Edit /etc/hosts and add:
    192.168.1.128 hello-world.info
    
  • Windows: Edit C:\Windows\System32\drivers\etc\hosts as administrator and add the same line.

Now you should be able to access http://hello-world.info from external devices.

Solution 2: Use Minikube Bridge Network (Requires Cluster Restart)

If you prefer Minikube to have an IP directly accessible on your local network, you can switch Minikube to use the bridge network driver. This assigns Minikube a static IP in your 192.168.1.x subnet.

Step 1: Stop and Delete Existing Minikube Cluster

minikube stop
minikube delete

Step 2: Start Minikube with Bridge Driver

Choose a static IP outside your DHCP range (your DHCP is 192.168.1.101-254, so pick something like 192.168.1.50):

minikube start --driver=docker --network=bridge --static-ip=192.168.1.50

Step 3: Re-enable Ingress Controller and Deploy Services

minikube addons enable ingress
# Re-deploy your services and Ingress resources

Step 4: Configure External Device Hosts

Map your service domain to the new Minikube static IP (192.168.1.50) on external devices' hosts files, just like in Solution 1.

Now external devices can directly ping 192.168.1.50 and access your services via the domain.

Key Checks Before Testing

  • Ensure external devices can ping your VM's static IP (192.168.1.128) — if not, fix your VM's network/firewall first.
  • For VPN-connected devices, confirm your VPN route allows access to the 192.168.1.x subnet.

内容的提问来源于stack exchange,提问作者DataHearth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 12:03:12