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

Перенаправить трафик с 127.0.0.1 на 127.0.0.1 на порт 53 на порт 5300 с помощью iptables

Я запускаю локальный DNS-сервер на порту 5300 для разработки программного обеспечения. Мне нужна моя машина, чтобы использовать этот DNS, но я не смог указать /etc/resolv.conf проверять другой порт. Я немного искал в Google и не нашел решения.

Я установил 127.0.0.1 в качестве сервера имен в /etc/resolv.conf. Это весь мой /etc/resolv.conf:

nameserver 127.0.0.1

Подскажите, пожалуйста, как мне перенаправить исходящий трафик с порта 53 на другой порт?

Я пробовал следующее, но это не сработало:

iptables -t nat -A PREROUTING -p tcp --dport 53 -j DNAT --to 127.0.0.1:5300 iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to 127.0.0.1:5300

Вот результат iptables -t nat -L -v -n (с предложенными правилами):

Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 REDIRECT   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:53 redir ports 5300 
    0     0 REDIRECT   udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:53 redir ports 5300 

Chain POSTROUTING (policy ACCEPT 302 packets, 19213 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 302 packets, 19213 bytes)
 pkts bytes target     prot opt in     out     source               destination 

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

Локально сгенерированный пакет игнорирует цепочку PREROUTING таблицы nat при чтении цепочки OUTPUT. Следующими правилами я решил свою проблему:

iptables -t nat -A OUTPUT -p tcp --dport domain -j DNAT --to-destination 127.0.0.1:5300
iptables -t nat -A OUTPUT -p udp --dport domain -j DNAT --to-destination 127.0.0.1:5300

С этими правилами мне даже не нужно менять мой /etc/resolv.conf.

Попробуйте следующее:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 53 -j REDIRECT --to-port 5300