Как убрать сквид для работы нат, который уже настроен в убунту?

Я бегу 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)}'
Другие вопросы по тегам