Проверьте следующую процедуру, которую я использую, который мог бы помочь сузить, где проблема.
То, когда я тестирую сетевую пропускную способность, лучше удалять как можно больше переменных, таких как диск i/o или ограничения ЦП. Вот процедура, которую я использую, который может проиллюстрировать типичное макс., которое Вы будете когда-либо видеть в своей сети.
Инструменты:
Обе этих утилиты должны быть доступными на самом современном *, отклоняют системы, или предварительно установленные, через пакеты, или способный быть скомпилированным из источника.
Процедура:
Выполните следующую команду на одном компьютере для установки слушателя UDP. (Используя UDP даст более высокие показатели производительности из-за отсутствия TCP наверху для передачи.)
nc -ulp 5000 > /dev/null
На другой машине, выполненной следующая команда, заменяя IP-адресом слушателя, для отправки потока нулей по сети nc слушателю. Утилита объема плазмы покажет текущую производительность, как прослежено получателем.
pv < /dev/zero | nc -u listener-ip-address 5000
Примечания:
Этот метод дает предсказуемые результаты в хорошо проектируемой сети с правильно функционирующим оборудованием. По этой причине это - хороший инструмент, чтобы помочь обнаружить, способствуют ли сама сеть или сетевое оборудование воспринятому "замедлению".
Добавьте следующую строку к своему init.d сценарию.
run-parts --report /etc/iptables/include.d
Это будет работать, все в каталоге как сценарий оболочки (должен быть исполняемый файл).
Если Вы, Вы только хотите выполнить файлы, который заканчивается .port, как который Вы могли использовать что-то:
run-parts --regex '\.port$' /etc/iptables/include.d/
Если Вы хотите удостовериться, что порядок является правильным, можно назвать файлы:
10_web.port
20_ssh.port
etc..
for f in /etc/iptables/include.d/*
. $f
done
отметьте пространство между точкой и %f
Saurabh является правильным - это не будет необходимая работа, как Вы предназначаете, но используете некоторое соглашение о присвоении имен, например, 10-xxx, 20-yyy и так далее, и это могло бы быть управляемо.
for f in
?
– user12096
18 July 2009 в 13:49
ls -1 /etc/iptables/include.d/*.extension
- с ls можно управлять критериями сортировки, принять значение по умолчанию, каждый по имени. заметьте специальный символ кавычки.
– pQd
18 July 2009 в 14:48
Можно определить простую функцию в ударе:
function include() {
for FILE in $( find "$1" -type f -print | sort )
do
source $FILE
done
}
и затем:
include some_dir/*
или даже:
include some_dir/*.conf
Можно также рассмотреть создание iptables сценария из шаблонных файлов, один из которых был бы исходным iptables сценарием. создайте сценарий, который считает Ваши шаблонные файлы в соответствующих каталогах и создаст новый iptables сценарий от них. Тот путь, когда необходимо внести изменения, Вы делаете так в шаблонах и просто повторно выполняете свой генератор сценария.
Используя этот метод Вы могли даже стать необычными и поместить маркеры в основной шаблон, который может использоваться для передачи сигналов, когда включать файлы из определенных каталогов в шаблонном дереве.
Я не думаю, что можно включать файлы в iptables конфигурацию. Выбор имеет смысл, поскольку правила брандмауэра во многом зависят от порядка, в котором они записаны. Если мы просто включаем файлы в папку, iptables привычка знают который правила поместить сначала и который позже.
Чтобы правильно вести себя с пустым каталогом include.d /
, вы можете сделать:
for f in /etc/iptables/include.d/*; do
[[ -e "${f}" ]] && . "${f}"
done