Ставим proxmox (ve-5) (64BITS), заходим в панель https://IP:8006

Proxmox Virtual Environment 5.0-31

Правим конфиг /etc/network/interfaces, в этот файл, он подключается при загрузке /etc/network/interfaces.new:

auto lo
iface lo inet loopback

auto eno1
iface eno1 inet static
address xxx.xx.xx.xx
netmask 255.255.255.0
gateway xxx.xx.xx.xx

iface eno2 inet manual

auto vmbr0
iface vmbr0 inet static
address 10.10.10.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 ‘10.10.10.0/24’ -o eno1 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s ‘10.10.10.0/24’ -o eno1 -j MASQUERADE

Теперь нужно пробросить порты, допустим чтобы подключиться к виртуальной машине через SSH напрямую.

Указываем порт, по которому будет идти подключение, ip виртуальной машины и порт:

iptables -A PREROUTING -t nat -i eno1 -p tcp -d xxx.xx.xx.xx —dport 222 -j DNAT —to 10.10.10.50:22
iptables -A PREROUTING -t nat -i eno1 -p tcp -d xxx.xx.xx.xx —dport 223 -j DNAT —to 10.10.10.51:22
iptables -A PREROUTING -t nat -i eno1 -p tcp -d xxx.xx.xx.xx —dport 225 -j DNAT —to 10.10.10.55:22
iptables -A PREROUTING -t nat -i eno1 -p tcp -d xxx.xx.xx.xx —dport 55222 -j DNAT —to 10.10.10.55:8083

iptables -A PREROUTING -t nat -i vmbr0 -p tcp -d %ext_ip_on_vmbr0% —dport %ext_port% -j DNAT —to %int_ip_on_vmbr1%:%int_port%

Где

%ext_ip_on_vmbr0%  — внешний IP-адрес, который находится на vmbr0 . Если не указать этого параметра, то порт будет пробрасываться со всех адресов на этом бридже.
%ext_port%  — внешний порт по которому будут обращаться к серверу из интернета.
%int_ip_on_vmbr1%  — внутренний IP виртуальной машины на vmbr1 .
%int_port%  — внутренний порт, на котором будет работать сервис в виртуальной машине.

Не забудьте сохранить правила фаервола!

По теме: