Kubernetes
minikube
dashboard
remote access
tutorial

How to access local Kubernetes minikube dashboard remotely?

System Design practice on Codemia

Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.

Practice system design

Introduction

The minikube dashboard is designed for local development, so the safest remote-access pattern is not to expose it directly to the network. Instead, run the dashboard or proxy on the machine hosting minikube and tunnel to it over SSH.

What minikube dashboard Actually Does

When you run minikube dashboard, minikube enables the dashboard add-on if needed and starts a local proxy so the UI is reachable from the same host. In other words, the URL it prints is usually a loopback address such as 127.0.0.1, not a public endpoint.

That is good for security. The Kubernetes dashboard is an administrative UI, so exposing it broadly is a bad default.

Get the Dashboard URL on the Remote Host

On the machine where minikube is running, ask minikube to print the dashboard URL without trying to open a browser.

bash
minikube dashboard --url

You will get a URL similar to this:

text
http://127.0.0.1:37839/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

Make note of the port number.

Forward the Port with SSH

From your local workstation, create an SSH tunnel to the remote host.

bash
ssh -L 37839:127.0.0.1:37839 user@remote-minikube-host

Now open the dashboard URL in your local browser:

text
http://127.0.0.1:37839/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/

Traffic stays inside the SSH tunnel instead of exposing the dashboard on a public interface.

Alternative: Use kubectl proxy

If you prefer not to depend on the minikube helper command, you can proxy the dashboard through kubectl on the remote host.

bash
kubectl proxy --address=127.0.0.1 --accept-hosts='^localhost$'

Then forward the proxy port over SSH the same way.

bash
ssh -L 8001:127.0.0.1:8001 user@remote-minikube-host

After that, the dashboard is reachable locally through the proxied API path.

Why Direct Exposure Is a Bad Idea

You may be tempted to bind the proxy to 0.0.0.0 or publish the dashboard service through a NodePort or ingress. For a local development cluster, that is usually the wrong tradeoff. The dashboard is powerful, and misconfiguration can expose cluster administration capabilities beyond your machine.

SSH tunneling is simpler and much safer for ad hoc remote use.

Troubleshooting Checklist

If the browser still cannot reach the dashboard:

  • confirm minikube is running
  • confirm the dashboard add-on is enabled
  • make sure the SSH tunnel uses the exact printed port
  • verify no local process already occupies the forwarded port
  • keep the minikube dashboard --url or kubectl proxy process running while you browse

A common mistake is starting the proxy, copying the URL, and then closing the terminal that was keeping the proxy alive.

Authentication Still Applies

The SSH tunnel only solves network reachability. You still need whatever dashboard authentication or cluster credentials the proxied endpoint expects. If the browser reaches the page but access is denied, the issue is no longer the tunnel. It is your Kubernetes auth context or dashboard login flow. Keeping those two layers separate makes troubleshooting much faster.

Common Pitfalls

  • Exposing the dashboard directly to the network creates unnecessary risk.
  • Forgetting --url on a remote machine can make minikube try to open a browser where none exists.
  • Forwarding the wrong port breaks the tunnel even when SSH succeeds.
  • Closing the proxy process makes the URL stop working immediately.
  • Treating the dashboard like a production admin endpoint is the wrong mental model for minikube.

Summary

  • The safest remote-access method is an SSH tunnel to the locally proxied dashboard.
  • Use minikube dashboard --url on the remote host to get the correct loopback URL.
  • Forward the printed port with ssh -L ... and open the same URL locally.
  • 'kubectl proxy is a valid alternative when you want more manual control.'
  • Avoid publishing the dashboard directly on public or shared interfaces.

Related reading
Course
Beginner
27 lessons
10 hours
System Design Fundamentals

Build a strong foundation in designing scalable, reliable distributed systems.

View the course
Track what you have practised

A free account saves your progress, solutions and study plan across every problem on Codemia.

System Design practice on Codemia

Work through 120+ system design problems with detailed solutions, from rate limiters to multi-region storage.

Practice system design

All Rights Reserved.