VM on ESXi host - How does one make externally accessible?

6,129

One step I would take is to see if the packets are getting to your guest at all. On your linux host, run

tcpdump -i eth0 tcp dst port 80

substituting "eth0" for whatever your interface is called. With that running, try and access your page (I would suggest using an "outside of your network" host like a cellphone using the carriers internet and not your wifi). When you request the page, you should see the packets being spit out by tcpdump if your guest OS is receiving them. If it is, try checking the firewall or your webserver configuration. If you don't see any output from tcpdump, then I'd start looking at router or the Host.

Share:
6,129

Related videos on Youtube

OnResolve
Author by

OnResolve

INJenuity INJenuity is a framework written in and for Csharp assemblies with the purpose of solving dependency injection, object creation / lifetime management, and writing tedious boiler-plate code. The software engineer and the framework work together by attribute declaration, programmatically-defined configurations, and smart assembly scanning. Through each of these techniques, INJenuity will create code at runtime and inject the created code to the engineer's running assembly. http://nuget.org/packages/INJenuity/ http://tylerhoersch.com/injenuity MockJockey MockJockey is a framework written in and for Csharp assemblies with the purpose of allowing engineers to unit test their code in a precise, concise, and quick manner. Using mock objects in unit tests, allows your unit tests to be focused by side-stepping any irrelevancies of the test. Commonly thought as a necessity for doing test driven development, a mock framework will give your tests exactly what they need to be--small and fast! And that's what MockJockey provides us. http://nuget.org/packages/MockJockey/ http://tylerhoersch.com/mockJockey

Updated on September 18, 2022

Comments

  • OnResolve
    OnResolve over 1 year

    I have a home server running ESXi v5.0.0 with a VM guest OS (linux) up and running.

    I have apache 2.x installed and serving to my machine (i.e I can access the default apache page when going to http://localhost)

    I can also access it via my internal ip 192.168.1.X (which was made static to my router) The ESXi host has also has an ip (also static) as well, but of course different then the VM. In my router I'm forwarding port 80 to the GUEST OS internal IP, but this doesn't seem to allow outside access to the webserver on the guest os.

    I've verified the networking in the ESXi configuration has the vm on the VM Netowrk and connecte to the host's NIC. (The guest os can access the external world).

    I've verified I have the right external IP address (and also that I can access the Host externally [via temporarily forward a port to the host port])

    Note: there is only 1 NIC card on the host.

    Bottom line, how do I get the guest os to be able to accept traffic from the outside world?

    This is my first experiment with ESXi so let me know if there's any futher relevant information I can give to help solve this issue.

    • Chris S
      Chris S over 12 years
      Questions about Home servers are Off-Topic. Please see the FAQ.
    • Chris S
      Chris S over 12 years
      @Safado The fact that he's a home user implies a casual level of familiarity with virtualization, networking, and troubleshooting making the question less relevant to Professional System Administrators.
    • Zoredache
      Zoredache over 12 years
      When you are trying to connect using your external IP, are you trying to connect from an external host? Most cheap routers are not going to do hairpin-NAT.
  • OnResolve
    OnResolve over 12 years
    Thank you! tcpdump indicated that traffic was indeed reaching the guest OS--just need to open the firewall.