%20%D0%BD%D0%B0%20%D0%BE%D0%BF%D1%80%D0%B5%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%83%D1%8E%20%D0%BC%D0%B0%D1%88%D0%B8%D0%BD%D1%83%20%D0%B2%20%D1%81%D0%B5%D1%82%D0%B8%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20iptables.png)
Я могу перенаправить порт, используя следующие команды:
iptables -t nat -A PREROUTING -p tcp -d XXX.XXX.XXX.XXX --dport 80 -j DNAT --to 192.168.161.31:80
iptables -t nat -A POSTROUTING -d 192.168.161.31 -j MASQUERADE
Я хотел узнать, возможно ли пересылать пакеты, нацеленные на доменное имя, а не на IP-адрес, например XXX.XXX.XXX.XXX.
Например, можно ли сделать что-то вроде следующего и заставить это работать? У меня не работает!
iptables -t nat -A PREROUTING -p tcp -d XXX.XXX.XXX.XXX --dport 80 -j DNAT --to 192.168.161.31:80
iptables -t nat -A PREROUTING -p tcp -d www.example.com --dport 80 -j DNAT --to 192.168.161.32:80
Обратите внимание, что предыдущие команды должны быть перенаправлены на разные машины.
решение1
Нет, это невозможно. Пакеты никогда не нацелены на доменные имена на уровне TCP/IP.
Вам понадобится использовать какой-либо балансировщик нагрузки (например, Apache с ProxyPass), если вам нужно перенаправить запросы на другой хост/порт.
решение2
Нет, вы не можете сделать что-то подобное. DNS-имена не допускаются в правилах netfilter. Они применяются только на уровнях TCP/IP и ICMP.