5

I use Parallels Desktop for my M1 Mac with Ubuntu Server ARM installed in the VM I made.

I installed apache2, Node.js and npm on this VM, and it works, only on my Mac (when visiting the private IP of the machine) and using curl on the VM.

I can't view it on my iPhone.

Image from my Mac:

image

Image from the VM:

image2

Image from my iPhone

image3

3
  • This is a router-configuration question, and not really apple-specific. – Criggie Jun 21 at 3:41
  • 1
    @Criggie This question is about Parallels configuration, which is Apple specific. OP’s follow-ups in comments are not Apple specific. – grg Jun 21 at 8:48
  • For TCP/IP to work all network devices in between must either know where a given IP-address is or be able to forward to one that does. Your router does not know that Parallels use 10.x.y.z addresses so it cannot forward to it. The easiest way to fix it is probably to configure Parallels to treat your VM as a full host with its own IP-address assigned by your router. – Thorbjørn Ravn Andersen Jun 21 at 14:56
9

The IP address is of the VM as the connection between your Mac and the VM presents. This is a private connection. Your router has no knowledge of this IP address, so doesn’t know how to route the IP.

  1. Port forward some port on your Mac to the VM in Parallels preferences.
    1. Enter a port to open on your host. HTTP is usually port 80.
    2. Port forward to your VM, select it from the list.
    3. Enter the port that your web server runs on in your VM, for example 80.
  2. Enter the IP address of your Mac on your iPhone and the first port number chosen in the previous step.

Your router routes from your phone to your Mac, and Parallels port forwarding routes to the VM.

1

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .