Как убрать сквид для работы нат, который уже настроен в убунту?
Я бегу squid3
в моем Ubuntu 14.04 и пробовал использовать удаленный прокси в учебных целях. Когда я пробую удаленный доступ с другого компьютера в локальной сети университета, я сталкиваюсь с пустым журналом кэша. Итак, я попробовал
iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
Тогда мой кальмар перестает работать, вскоре после запуска. Как я могу отменить изменения, которые я сделал с помощью вышеуказанной команды?
1 ответ
С sudo iptables -t nat --line-numbers -L
вы должны увидеть что-то вроде этого:
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
1 REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 3128
Chain INPUT (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
num target prot opt source destination
Удалить PREROUTING
правила, влияющие на порт 3128
:
sudo iptables -t nat --line-numbers -L | tac | \
awk '/redir ports 3128/ {system("sudo iptables -t nat -D PREROUTING "$1)}'
Теперь проверьте правила еще раз:
% sudo iptables -t nat --line-numbers -L
Chain PREROUTING (policy ACCEPT)
num target prot opt source destination
Chain INPUT (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
num target prot opt source destination
объяснение
iptables -vt nat -L
перечисляет необходимые правила
% sudo iptables -vt nat -L
Chain PREROUTING (policy ACCEPT 11 packets, 1957 bytes)
pkts bytes target prot opt in out source destination
0 0 REDIRECT tcp -- eth0 any anywhere anywhere tcp dpt:http redir ports 3128
Chain INPUT (policy ACCEPT 2 packets, 194 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 152 packets, 14386 bytes)
pkts bytes target prot opt in out source destination
Chain POSTROUTING (policy ACCEPT 152 packets, 14386 bytes)
pkts bytes target prot opt in out source destination
И нам нужны правила для порта 3128
в обратном порядке, если у вас есть более одного, и номера строк
% sudo iptables -t nat --line-numbers -L | tac | awk '/redir ports 3128/'
1 REDIRECT tcp -- anywhere anywhere tcp dpt:http redir ports 3128
совсем немного awk
магия удаляет правила построчно
awk '/redir ports 3128/ {system("sudo iptables -t nat -D PREROUTING "$1)}'