iptables 启动时报错 iptables: No config file

启动iptables时报错 iptables: No config file
#iptables -P OUTPUT ACCEPT 允许所有 出去的数据包通过
#service iptables save
保存iptables策略
#service iptables restart *重启iptables

转载于:https://blog.51cto.com/2937761/2345047

以下是一个示例C语言程序,通过读取配置文件的方式生成iptables命令脚本: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_LINE_LENGTH 1024 int main(int argc, char *argv[]) { FILE *fp; char line[MAX_LINE_LENGTH]; char cmd[MAX_LINE_LENGTH]; char *token; const char delim[] = " \t\n"; if (argc < 2) { fprintf(stderr, "Usage: %s <config file>\n", argv[0]); exit(EXIT_FAILURE); } fp = fopen(argv[1], "r"); if (fp == NULL) { perror("fopen"); exit(EXIT_FAILURE); } while (fgets(line, MAX_LINE_LENGTH, fp) != NULL) { // 忽略注释和空行 if (line[0] == '#' || line[0] == '\n') { continue; } // 解析配置文件中的每一行 token = strtok(line, delim); if (token == NULL) { continue; } // 根据配置文件中的规则生成iptables命令 snprintf(cmd, MAX_LINE_LENGTH, "iptables -A %s", token); while ((token = strtok(NULL, delim)) != NULL) { strncat(cmd, " ", MAX_LINE_LENGTH - strlen(cmd) - 1); strncat(cmd, token, MAX_LINE_LENGTH - strlen(cmd) - 1); } // 执行iptables命令 system(cmd); } fclose(fp); return 0; } ``` 在这个示例程序中,我们使用fgets函数逐行读取配置文件,然后使用strtok函数解析每一行。每一行的第一个单词将作为iptables命令的选项,剩余的单词将作为iptables命令的参数。如果一行以#开头,或者是空行,那么它将被视为注释并被忽略。 您可以根据自己的需求修改这个示例程序,以便生成符合您需要的iptables命令脚本。同时,请务必谨慎操作,确保生成的iptables规则不会导致安全问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值