Это то, что я обычно делаю в системе с FirewallD.
firewall-cmd --complete-reload
firewall-cmd --list-all --zone = internal
и firewall-cmd --list-all --zone = external
iptables -nvL
и systemctl status firewalld.service
iptables -F
Это то, что я сделал бы, чтобы убедиться, что все, что вы настраиваете, отображается или работает правильно. Что-то мне подсказывает, что информация об интерфейсе скорее всего неверна. Если вам удалось добраться до пункта 4, а затем он начнет работать, я бы полностью начал с значений по умолчанию, которые есть у firewalld.
Примечание: если вы отключили Network Manager и используете --add-source, он не будет работать. Если это так, вам нужно вернуться к обычным iptables. Но в Fedora по умолчанию есть Network Manager.
С помощью gawk
вы можете использовать функцию split ()
для определения полей и их разделителей:
$ echo "The quick brown fox jumps over the lazy dog" | awk '{ split($0, a, "\\s+", s); for (i = 3; i <= 7 && i <= length(a); i++) printf "%s%s", a[i], (i < 7 ? s[i] : "\n") }'
brown fox jumps over the
С perl
$ echo "The quick brown fox jumps over the lazy dog" | perl -F'(\h+)' -lane 'print @F[4..12]'
brown fox jumps over the
-F '(\ h +)'
, разделенным на символы пробела / табуляции, также сохраняется разделитель print @F [4..12]
печать требуемые индексы. Индекс массива perl
начинается с 0
, и необходимо также учитывать разделитель. Простое правило: вычесть 1 и умножить на 2. Итак (3-1) * 2 = 4 и (7-1) * 2 = 12