mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-26 00:43:20 +00:00
manual: Fix QEMU_NET_OPTS VM-side address.
In my earlier commit manual: Don't suggest exposing VM port to local network. I made a side change titled Use `127.0.0.1` also on the VM side, otherwise connections to services that, in the VM, bind to `127.0.0.1` only (doing the safe approach) do not work. Unfortunately, that was wrong: QEMU inside the VM always communicates via the virtualised Ethernet interface, not via the VM's loopback interface. So trying to connect to `127.0.0.1` on the VM's side cannot work.
This commit is contained in:
parent
73b4398b58
commit
f9611764c6
@ -62,7 +62,7 @@ where socat is running.
|
||||
If your test has only a single VM, you may use e.g.
|
||||
|
||||
```ShellSession
|
||||
$ QEMU_NET_OPTS="hostfwd=tcp:127.0.0.1:2222-127.0.0.1:22" ./result/bin/nixos-test-driver
|
||||
$ QEMU_NET_OPTS="hostfwd=tcp:127.0.0.1:2222-:22" ./result/bin/nixos-test-driver
|
||||
```
|
||||
|
||||
to port-forward a port in the VM (here `22`) to the host machine (here port `2222`).
|
||||
@ -73,6 +73,11 @@ since a single port on the host cannot forward to multiple VMs.
|
||||
If the test defines multiple machines, you may opt to _temporarily_ set
|
||||
`virtualisation.forwardPorts` in the test definition for debugging.
|
||||
|
||||
Such port forwardings connect via the VM's virtual network interface.
|
||||
Thus they cannot connect to ports that are only bound to the VM's
|
||||
loopback interface (`127.0.0.1`), and the VM's NixOS firewall
|
||||
must be configured to allow these connections.
|
||||
|
||||
## Reuse VM state {#sec-nixos-test-reuse-vm-state}
|
||||
|
||||
You can re-use the VM states coming from a previous run by setting the
|
||||
|
@ -89,7 +89,7 @@ guest. For instance, the following will forward host port 2222 to guest
|
||||
port 22 (SSH):
|
||||
|
||||
```ShellSession
|
||||
$ QEMU_NET_OPTS="hostfwd=tcp:127.0.0.1:2222-127.0.0.1:22" ./result/bin/run-*-vm
|
||||
$ QEMU_NET_OPTS="hostfwd=tcp:127.0.0.1:2222-:22" ./result/bin/run-*-vm
|
||||
```
|
||||
|
||||
allowing you to log in via SSH (assuming you have set the appropriate
|
||||
@ -98,3 +98,8 @@ passwords or SSH authorized keys):
|
||||
```ShellSession
|
||||
$ ssh -p 2222 localhost
|
||||
```
|
||||
|
||||
Such port forwardings connect via the VM's virtual network interface.
|
||||
Thus they cannot connect to ports that are only bound to the VM's
|
||||
loopback interface (`127.0.0.1`), and the VM's NixOS firewall
|
||||
must be configured to allow these connections.
|
||||
|
Loading…
Reference in New Issue
Block a user