Other guides on this subject are confusing. This one aims to be simple and to the point regarding Hetzner Dedicated servers from the Server Auctions.
- Hetzner Dedicated server with a single IP
- Debian 11 (other OS are compatible but will require different methods)
IP ADDRESSES COST A FORTUNE WTF!
Yes, due to the massive shortage on IP addresses IP4 IP’s are now going for literally hundreds of thousands per block for ISP’s. Hetzner have been kind enough to pass on the expenses to us the customer. Now if you want to buy extra IP’s for your servers you will pay a literal fortune.
You have bought a Dedicated server from Hetzner in the server auctions and you have been allocated a single IP. You want to create multiple virtual machines with Proxmox that have access to the internet. You do not have thousands of euros to pay for a block of IP addresses.
Install Debian 11 (or use the installer provided by Hetzner to install Proxmox)
We log into our machine via ssh and use the command
installimage to start the installer.
Pick either Debian 11 or Proxmox under
custom > Proxmox.
The settings i use for partitioning are as follows
PART /boot ext3 512M PART lvm vg0 all LV vg0 root / ext4 50G LV vg0 swap swap swap 8G LV vg0 var /var ext4 400G
That gives us a 400GB partition for our VM’s and containers. You can always make it larger afterwards with
lvextend -r -L +20G /dev/vg0/vg0 # Extend space by 20GB lvextend -r -l +100%FREE /dev/vg0/vg0 # Add all free space
Create the internal network
We need to add some info to our interfaces file
At the bottom of the file add the text below but change
enp0s31f6 to your ethernet adapter.
auto vmbr1 iface vmbr1 inet static address 192.168.50.1 netmask 255.255.255.0 bridge_ports none bridge_stp off bridge_fd 0 post-up echo 1 > /proc/sys/net/ipv4/ip_forward post-up iptables -t nat -A POSTROUTING -s '192.168.50.0/24' -o enp0s31f6 -j MASQUERADE post-down iptables -t nat -D POSTROUTING -s '192.168.50.0/24' -o enp0s31f6 -j MASQUERADE
y to save the file and close it.
Bring up the interface
ifup to bring up the network.
sudo ifup vmbr1 # With/without sudo
Restart the networking
systemctl restart networking
If the install hangs at this point you have probably set the wrong setting, we do not want to connect to the host ethernet. We are using masquerading to forward the ports.
Let’s check if the network is working
systemctl status networking.service
Now we can check if our IP has been accepted and is used for our bridge.
ip address show dev vmbr1
4: vmbr1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether d6:84:9c:9e:aa:cf brd ff:ff:ff:ff:ff:ff inet 192.168.50.1/24 scope global vmbr1 valid_lft forever preferred_lft forever inet6 fe80::d484:9cff:fe9e:aacf/64 scope link valid_lft forever preferred_lft forever
VM & Container Creation
Now we are done with setting up the network. Now all we need to do is set the VM to the new virtual network
When creating a container you can specify the IP directly before creation, just keep it within the IP range you specified ie,
When creating a VM select the virtual network.
Now when the VM boots you can give it an IP address manually, remember to keep it in the range.
Your containers and VM’s will now be able to communicate with the internet from a single IP address. Hope it helps.
Some great affiliate links give you free cash to spend on VPS. If you use these links I will get a small commission if you choose to sign up.
- Vultr.com – $100 free to spend on VPS
- DigitalOcean.com – £200 to spend on all services including VPS
- Atlantic.net – 1 Core 2GB RAM VPS FREE for 12 months from signup + $15
- Hetzner Cloud – $20 Free to use on all products
- GSuite – Google Workspace 10% off the first year
6AKCQG7CAFYCQWAto your Google Workspace Account