我正在尝试创建一个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();
感谢任何方向!
答案 0 :(得分:4)
我认为你需要阅读输出流。否则,该过程可能会阻塞,您将永远不会看到它所说的任何内容。
答案 1 :(得分:0)
您也可以尝试阅读并解析iptables
读取的文件:
"在/ etc / SYSCONFIG / iptables的"
执行速度比运行iptables
二进制文件