0

我正在尝试创建一个作为 iptables 前端的 Java 程序。为此,我使用 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();

感谢您的任何指导!

4

2 回答 2

4

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

于 2010-11-07T02:06:03.063 回答
1

您也可以尝试读取并解析以下文件iptables:“/etc/sysconfig/iptables”。

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

于 2017-05-15T11:30:45.320 回答