Назад | Перейти на главную страницу

Iptables PREROUTING для перенаправления порта 80 через лак для выбранного IP

Я установил лак на свой сервер и хотел бы протестировать конфигурацию, не влияя на нормальное использование. У меня apache прослушивает порт 80, а varnish - на порту 8080. Итак, я хочу, чтобы все запросы с моего IP-адреса a.b.c.d проходили через varnish, а всем остальным IP-адресам должен быть разрешен доступ к apache в обычном режиме.

Я где-то читал, что для этого можно использовать PREROUTING в Iptables. Подскажите, пожалуйста, как это сделать? У меня есть 2 сайта, размещенных на сервере, можно ли настроить это только для одного домена?

Обновить
Я попробовал команду, но она не сработала

root@git:~# iptables -A PREROUTING -t nat -i venet0 -p tcp -s 117.201.192.67 --dport 80 -j REDIRECT --to-port 8000
root@git:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
root@git:~# iptables -A PREROUTING -t nat -i venet0:0 -p tcp -s 117.201.192.67 --dport 80 -j REDIRECT --to-port 8000
Warning: weird character in interface `venet0:0' (No aliases, :, ! or *).
root@git:~# iptables -A PREROUTING -t nat -p tcp -s 117.201.192.67 --dport 80 -j REDIRECT --to-port 8000
root@git:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Я использую VPS, и у меня нет интерфейса с именем eth0. /sbin/ifconfig списки lo, venet0, venet0:0, venet0:1 и venet0:2 только.

Обновление 2 - Вставка правила в начале сработала

iptables -t nat -I PREROUTING -p tcp -s 117.201.192.67  --dport 80 -j REDIRECT --to-port 8000

Можно ли также проверить запрошенное имя хоста? Я хочу перенаправлять только запросы для mydomainname.com

Вы можете указать адрес источника (или сеть) в перенаправлении iptables следующим образом:

iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

Правила читаются сверху вниз, и идет первое совпадение, поэтому вам, возможно, придется прикрепить его в нужном месте.