В менее техническом объяснении:
-t raw -I OUTPUT
:вставьте это правило в цепочку OUTPUT
таблицы raw
. Эта специальная таблица используется только для настройки пакетов, чтобы исключить их из отслеживания соединения. Это может показаться очевидным, но в этой таблице есть только цепочки PREROUTING
и OUTPUT
, так как FORWARD
требует некоторого отслеживания соединений. -j CT
:Перейти к цели с именем CT
. Это пользовательская цель, и небо является пределом, поскольку вы можете комбинировать ACCEPT
и LOG
в качестве простого примера на одной цели. Вам понадобятся остальные правила, чтобы понять настоящее значение цели CT
здесь. -p udp
:Протокол, соответствующий правилу, — udp. Согласно справочным страницам, указанный протокол может быть одним из протоколов tcp, udp
, udplite
, icmp
, esp
, ah
, sctp
или специальным ключевым словом all
, или он может быть числовым. значение, представляющее один из этих протоколов или другой. Вы можете получить список номеров протоколов здесь . -m udp
:Соответствие параметрам расширения udp
. Это как-то излишне, так как параметры внутри udp match --sport
и --dport
могут быть опущены, посколькуiptables-extensions
состояния справочной страницы:Если был указан протокол -p или --и тогда и только тогда, когда обнаружена неизвестная опция, iptables попытается загрузить соответствующий модуль с тем же именем, что и у протокола, чтобы попытаться сделать эту опцию доступной.--dport 69
:Порт назначения = 69, и --dport
соответствует опции из udp --helper tftp
:Некоторые протоколы ведут себя «странным» образом, и для управления таким поведением необходимо использовать помощники. ftp — один из примеров, когда один порт используется для команд/сигнализации, а другой — для передачи данных. Подробнее о помощниках здесь . systemctl
ожидает команду (start
, restart
, status
и т. д.)перед блоком (или блоками):
sudo systemctl restart mosquitto
Вы неправильно использовали тот же синтаксис для systemctl
, что и для service
в предыдущей версии вашего вопроса:
sudo service mosquitto restart
Причина того, что и не сработали, заключается в том, что Arch Linux по умолчанию предоставляет несколько меньше мер совместимости и миграции, чем другие операционные системы systemd. Debian Linux и Fedora, например, поставляются с командой service
, совместимой с командой с таким же именем, которая была у них задолго до systemd и которая вызывает systemctl
. Вы не получаете такую команду из коробки ни с Arch Linux, ни с некоторыми «совместимыми» частями самого systemd (c.f. " Почему `init 0 `приводит к "избыточным аргументам" при установке Arch? " ).