通过命令行与iptables交互

时间:2010-11-07 01:59:06

标签: java linux command-line iptables

我正在尝试创建一个Java程序,它是iptables的前端。为此,我使用Java的Process类并传递命令。

我想知道我是否正确地解决了这个问题。例如,这里有一系列命令可以将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();

感谢任何方向!

2 个答案:

答案 0 :(得分:4)

我认为你需要阅读输出流。否则,该过程可能会阻塞,您将永远不会看到它所说的任何内容。

答案 1 :(得分:0)

您也可以尝试阅读并解析iptables读取的文件: "在/ etc / SYSCONFIG / iptables的"

执行速度比运行iptables二进制文件

更快