Если я распечатаю iptables
обзор, то iptables -L
получу следующий вывод:
$ sudo iptables -t nat -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
DNAT tcp -- !richtercloud.de anywhere tcp dpt:http to:192.168.178.30:3128
где последний столбец является либо отдельным столбцом без заголовка (Что он показывает? Почему нет заголовка?), либо продолжением целевого столбца (обозначающим ограничения условия «где угодно»).
Я мог бы создать правило с sudo iptables -t nat -A PREROUTING -i eth1 ! -s 192.168.178.30 -p tcp --dport 80 -j DNAT --to 192.168.178.30:3128
(не полагайтесь на него, и это не должно быть важным для ответа на вопрос) - я только начинаю iptables
(и уже сталкиваюсь с такой - давайте будем вежливы и назовем это - ерундой).
Я использую iptables
v1.4.21 на Ubuntu 15.04 с Linux 4.0.1.
решение1
Почему нет заголовка — это вопрос, на который должны ответить разработчики. Вероятно, это «своего рода» часть назначения, или это может означать разные вещи в зависимости от контекста — так что это скорее поле общего назначения.
Столбцы источника и назначения используются для сопоставления IP-адресов пакетов, а столбец tcp dpt:http
соответствует порту назначения.
Затем, поскольку это правило NAT, следующая часть описывает, что мы хотим сделать с пакетом, если он соответствует. В этом случае мы хотим изменить IP-адрес назначения и порт пакета, чтобы он пошел на прокси-сервер.
По сути, это прозрачное правило прокси-сервера — оно перехватывает все пакеты, исходящие не от richtercloud.de, направленные куда-либо на порт 80, и отправляет их через прокси-сервер.