2011-12-20 2 views
0

Я хочу перенаправить все запросы, сделанные на конкретный ip на localhost (127.0.0.1). Мне нужно, потому что у меня есть локальная копия сервера и вы хотите проверить некоторые вещи.iptables перенаправляет все запросы на localhost

Как написать правило iptables для этого?

Благодаря

ответ

0

вы имели в виду: «Я хочу, чтобы все запросы, сделанные из машины А на машину B, чтобы быть перенаправлены на машину А»? Если да, то я считаю, что команда, которую вы ищете

sudo iptalbes -t nat -A PREROUTING -d <DESTINATION_IP> -p <PROTOCOL> --dport <DESTINATION_PORT_NUMBER> -j DNAT --to 127.0.0.1 
+0

странно ... он не работает ... –

+0

К сожалению .. Мой плохой. Вам также необходимо включить переадресацию IP-адресов. echo 1>/proc/sys/net/ipv4/ip_forward – Neo

+0

Вам нужно выполнить как root .. очевидно .. – Neo

0
iptables -t mangle -A PREROUTING -p tcp ''otherconditions'' -j TPROXY --on-port ''dst'' 

Цитирование страница руководства: Эта цель действительна только в таблице калечить, в PREROUTING цепи и пользовательские цепочки, которые только называются из этой цепочки. Он redi- выдает пакет в локальный сокет без изменения заголовка пакета .

0

Я знаю, что это довольно старая нить ... Но все же без ответа. Основное изменение требуется, чтобы добавить правило OUTPUT, а не правило PREROUTING.

От человека странице:

nat: 
    This table is consulted when a packet that creates a new connection is encountered. It consists of three built-ins: PREROUTING (for altering packets as soon as they come in), OUTPUT (for altering locally-generated packets before routing), and POSTROUTING (for altering packets as they are about to go out). 

Таким образом, это может быть необходима команда:

iptables -t nat -A OUTPUT -p tcp --src <SOURCE PORT TO BE REDIRECTED> --dst 127.0.0.1 --dport 9090 -j REDIRECT --to-ports 9090