file=/usr/lib/python2.6/LICENSE.txt
dict=/usr/share/dict/british-english-huge # or any suitable list
sort "$dict" \
<(sed "s/[].,\"?!;:#$%&()*+<>=@\^_{}|~[]\+/\n/g # keep ' for now
s|[-/[[:digit:][:blank:][:cntrl:]]\+|\n|g
s/\<'\+/\n/; s/'\>\+/\n/ # remove '
" <(<"$file" tr '[:upper:]' '[:lower:]') ) |
uniq -c | awk '$1 > +1 {print $2}'
найденный 382 словами (нечувствительными к регистру) вовремя:
real 0m1.723s
user 0m1.872s
sys 0m0.048s
Я не утверждаю, что был экспертом с iptables
правила, но первая команда используют расширение отслеживания соединения (conntrack
) в то время как второе использует state
расширение.
Согласно этому документу conntrack
расширение заменяется state
.
Obsolete extensions:
• -m state: replaced by -m conntrack
Несмотря на это, я нашел этот SF Вопросами и ответами названный: вопросы о Брандмауэре о состоянии и политике? где OP утверждал, что задал этот вопрос на IRC в #iptables@freenode. После обсуждения его там он пришел к выводу что:
Технически соответствие conntrack заменяет - и так obsoletes - соответствие состояния. Но практически соответствие состояния не является obsoleted всегда.
Наконец я нашел этот SF Вопросами и ответами названный: Iptables, каково различие между состоянием-m и-m conntrack?. Ответ от этого вопроса является, вероятно, лучшим доказательством и советом относительно того, как просмотреть использование conntrack
и state
.
выборка
Оба использования те же внутренности ядра внизу (подсистема отслеживания соединения).
Заголовок xt_conntrack.c:
xt_conntrack - Netfilter module to match connection tracking information. (Superset of Rusty's minimalistic state match.)
Таким образом, я сказал бы - модуль состояния более прост (и возможно менее подвержен ошибкам). Это также длиннее в ядре. Conntrack с другой стороны имеет больше опций и функций [1].
Мой вызов должен использовать conntrack, если Вам нужно, это - функции, иначе придерживайтесь модуля состояния.
[1] Довольно полезный как
"-m conntrack --ctstate DNAT -j MASQUERADE"
routing/DNAT fixup ;-)
Я нашел этот поток из netfilter@vger.kernel.org netfilte/iptables обсуждениями, названными: соответствие состояния устаревшее 1.4.17, который в значительной степени говорит это state
просто псевдоним к conntrack
таким образом, это действительно не имеет значения, который Вы используете при обоих обстоятельствах, Вы используете conntrack
.
выборка
На самом деле я должен согласиться. Почему мы не сохраняем "состояние" как псевдоним и принимаем старый синтаксис в "conntrack"?
состояние в настоящее время искажается и переводится в conntrack в iptables, если ядро имеет его. Никакие сценарии не повреждаются.
Если искажение сделано в пространстве пользователя, часть ядра может быть удалена - когда-нибудь, возможно.
Искажение уже сделано в пространстве пользователя. Каждый вводит в "состоянии", и оно преобразовывается в "conntrack", и это затем отправляется в ядро. (Таким образом, насколько я вижу, были ли ipt_state, и т.д. псевдонимы модуля добавлены к conntrack модулю, даже модуль ядра состояния мог быть удален.)
Я не специалист по сетевым фильтрам, но я заглянул на страницу iptables -extension man -и удивился, там
The "state" extension is a subset of the "conntrack" module.
Таким образом, состояние — это часть conntrack и просто его более простая версия, если вам действительно нужно --состояние, а не более причудливые функции conntrack