Connect LCX container to internet on proxmox¶
By default, LCX containers cannot access the host’s network resources. This file contains information to enable this.
Setup¶
This is our current setup. The server host has a vmbt0 interface with an ip, say 192.169.100.2/24. The server is also connected to the internet via another interface (ethernet, USB thetering…) with a valid ip and routes (may need to run dhcpcd and remove the old default route ip route del default). The host can do ping kernel.org.
Creating the container¶
When creating the container, set the following options in the network setup:
TODO: check options
Run the following command on the host:
iptables -t nat -A POSTROUTING -o en+ -j MASQUERADE
Enable ip forwording, do this for both the host and the container:
sysctl -w net.ipv4.ip_forward=1
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
Add these to host’s /etc/pve/lxc/ID.conf to setup networking on the container:
lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file
Run on the container:
iptables -t nat -A POSTROUTING -o nic0 -j MASQUERADE
Run tailscale on the container:
tailscale up --accept-routes --advertise-routes=192.168.100.0/24
On the tailscale control panel, enable this subnet. Then on the client:
sudo tailscale up --accept-routes
VM internet¶
If you have a VM which uses NetworkManager and you need to connect it to the internet without a dhcpd, run this:
# Read the interface name
nmcli connection show
# Set the IP, Gateway, and DNS (Replace 'eth0' with your connection name)
sudo nmcli con mod eth0 ipv4.addresses 192.168.100.50/24
sudo nmcli con mod eth0 ipv4.gateway 192.168.100.2
sudo nmcli con mod eth0 ipv4.dns "8.8.8.8,1.1.1.1"
sudo nmcli con mod eth0 ipv4.method manual
# Apply the changes
sudo nmcli con up eth0