2010-11-07 2 views
0

Я пытаюсь создать программу Java, которая является интерфейсом для iptables. Для этого я использую Java-класс Process и передает команды.Взаимодействие с iptables через командную строку

Мне интересно, правильно ли я это сделаю в целом. Например, здесь приведен список команд, которые сбрасывают iptables по умолчанию, которые должны выполняться в терминале последовательно. Я правильно использую класс Process здесь?

Process proc1 = Runtime.getRuntime().exec("iptables -P INPUT ACCEPT"); 
proc1.waitFor(); 
Process proc2 = Runtime.getRuntime().exec("iptables -P FORWARD ACCEPT"); 
proc2.waitFor(); 
Process proc3 = Runtime.getRuntime().exec("iptables -P OUTPUT ACCEPT"); 
proc3.waitFor(); 
Process proc4 = Runtime.getRuntime().exec("iptables -t nat -P PREROUTING ACCEPT"); 
proc4.waitFor(); 

Спасибо за любое направление!

+0

Существует практически никакой документации в любом месте об использовании нескольких команд. –

ответ

4

Вы должны прочитать выходные потоки, я думаю. В противном случае процесс может блокироваться, и вы никогда не увидите ничего, что он говорит.

0

Вы также можете просто прочитать и проанализировать файл, который iptables читает: «/ etc/sysconfig/iptables».

Исполняет быстрее, чем при запуске iptables двоичного

Смежные вопросы