Эта цитата должна объяснить мне, как это сделать, но я не понимаю...
Далее я добавил следующие правила для пересылки всех http-запросов (поступающих на порт 80) на порт 3128 сервера Squid:
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to 192.168.1.1:3128
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
с
iptables -t nat -A PREROUTING -i venet0 -p tcp --dport 80 -j DNAT --to 127.0.0.1:3128
iptables -t nat -A PREROUTING -i venet0:0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Это должно работать, но не работает. Мои iptables
пустые, а вот /etc/network/interface
следующее:
auto lo
iface lo inet loopback
address 127.0.0.1
netmask 255.0.0.0
broadcast 127.255.255.255
up ip route replace 127.0.0.0/8 dev lo
# Auto generated venet0 interfaces
auto venet0
iface venet0 inet static
address 127.0.0.1
netmask 255.255.255.255
broadcast 0.0.0.0
up route add default dev venet0
iface venet0 inet6 static
address ::2
netmask 128
up ip -6 r a default dev venet0
up ip addr add {...externalIPv6...} dev venet0
auto venet0:0
iface venet0:0 inet static
address {...externalIP...}
netmask 255.255.255.255
решение1
Я начну это как ответ, хотя это пока не так (надеюсь). Причина, по которой я это делаю, в том, что я считаю, что эта проблема потребует нескольких итераций, чтобы быть сглаженной.
Ваши правила iptables выглядят нормально, но ваш файл /etc/network/interfaces имеет несколько проблем, на мой взгляд. Вы скопировали его откуда-то или адаптировали под свои нужды?
Проблемы, которые я вижу:
- Зачем указывать интерфейс loopback? Обычно первые две строки строфы в порядке.
- Вы назначаете два адреса одному и тому же интерфейсу, venet0.
- Сетевая маска для первой строфы venet0 слишком ограничительна и не соответствует широковещательному адресу.
- Во второй строфе для venet0 назначены два адреса: ваш внешний адрес IPv6 и ::2.
- В строфе для venet0 сетевая маска слишком ограничительна.
- Тот же самый интерфейс venet0/venet0:0 имеет как петлевой, так и внешний адрес, в чем смысл?
Было бы полезно, если бы вы рассказали нам, что вы пытаетесь сделать с VMWare, сейчас я в растерянности.