<div dir="ltr">Hello everyone,<div><br></div><div>I would like to constraint the network in the containers I spawn using nspawn.</div><div>What I'd like to achieve is the following:</div><div><br></div><div>- prevent the containers to use the network interfaces of the host</div><div>- make one exception and allow the containers to connect (tcp) to a specific port bound on the host's loopback device</div><div><br></div><div>The option --private-network allows me to achieve the first goal, once I use this option the container is "network isolated".</div><div><br></div><div>Then, reading the man page, I though that using --port would allow the container to connect to a host specific port so here's what I've been trying so far:</div><div><br></div><div>On the host I run netcat so I can check connections on the guest:</div><div><br></div><div>    root@host # netcat -l -p 1234</div><div><br></div><div>From the host, I can telnet to localhost 1234 without problem.</div><div>Then I run the container like this:</div><div><br></div><div>    root@host #  systemd-nspawn -M test --private-network --port 1234</div><div><br></div><div>But from the container I can't connect back to the host</div><div><br></div><div><div>    root@test # telnet localhost 1234</div><div>    Trying ::1...</div><div>    Trying 127.0.0.1...</div><div>    telnet: Unable to connect to remote host: Connection refused</div></div><div><br></div><div><br></div><div>So I guess I've been using the --port option in an inappropriate way thinking it would map a host port to the container loopback interface.</div><div><br></div><div>I checked the other networking options but I could not find something suitable for my use case.</div><div>Any idea about how I could allow the container to connect to a specific port on the host but forbid all the rest ?</div></div>