У меня есть сервер с установленной ОС Proxmox и некоторые виртуальные машины внутри.
После руководства, найденного в сети, я изменил свой/etc/network/interfaces как показанный ниже для создания интерфейса virutal, названного vmbr0:0.
Затем я подключил виртуальное к реальному адаптеру посредством этой команды
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o vmbr0 -j MASQUERADE
Все хорошо работает, пока я не пытался передать порт 80 моему апачскому VM с этой командой
iptables -t nat -A PREROUTING -i vmbr0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.0.2:80
Apache VM имеет 10.0.0.2 IP, он проверяет с помощью ping-запросов правильно сеть, и апач работает отлично от сети, но склонный - больше добираются не работает, давая все 404 ошибки над каждым источником, если я не отключаю правило PREROUTING.
Как я могу сделать для решения этой проблемы?? Спасибо всем заранее
Здесь/etc/network/interfaces файл
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
iface eth0 inet manual
iface eth1 inet manual
auto vmbr0
iface vmbr0 inet static
address MY_PUBLIC_IP_ADDRESS
netmask 255.255.255.0
gateway MY_GATEWAY
bridge_ports eth0
bridge_stp off
bridge_fd 0
auto vmbr0:0
iface vmbr0:0 inet static
address 10.0.0.1
netmask 255.255.255.0
network 10.0.0.0
broadcast 10.0.0.255
попробуйте быть более точными с вашим правилом предварительной маршрутизации, добавив параметр --daddr MY_PUBLIC_IP_ADDRESS
apt-get использует http, и вы в основном DNAT все его запросы к вашей виртуальной машине apache с этим правилом предварительной маршрутизации