免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1364 | 回复: 0
打印 上一主题 下一主题

ipf内核参数调整的系统自启动 [复制链接]

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-12 00:55 |只看该作者 |倒序浏览
原因:ipf的内核参数是不能通过sysctl设置的,必须通过ipf -D -T 来设置。可以把设置的语句加入到rc.conf里的ipfilter_flags里面。但是,由于-D参数把ipf -f 和ipnat -f的参数给清除掉,所以会出现ipf和ipnat没有配置文件的错误。
解决:
   1、对于ipf的参数,可以把它加在最后。
ipfilter_flages="-D -T ipf_nattable_sz=30011,ipf_nattable_max=300000,\
fr_tcptimeout=180,fr_tcpclosewait=60,fr_tcphalfclosed=300,\
fr_tcpidletimeout=7200,fr_tcpclosed=60,fr_tcplastack=120,\
fr_udptimeout=90,fr_icmptimeout=35,\
fr_statemax=8039,fr_statesize=11471 -E -f /home/ipf.rules"
    2、对于ipnat参数的丢失,可以通过几种途径来解决。
      (1)写一个ipnat.sh到/etc/rc.d/来实现系统自启动。但是,这个自启动有时候会失效。
    (2)既然是ipf的启动把它去掉,那么就可以改一下ipf的启动文件。
         /etc/rc.d/ipfilter。
ipfilter_start()
{
        echo "Enabling ipfilter."
        if [ `sysctl -n net.inet.ipf.fr_running` -le 0 ]; then
                ${ipfilter_program:-/sbin/ipf} -E
        fi
        ${ipfilter_program:-/sbin/ipf} -Fa
        if [ -r "${ipfilter_rules}" ]; then
                ${ipfilter_program:-/sbin/ipf} \
                    -f "${ipfilter_rules}" ${ipfilter_flags}
#                echo "Go to The IPnat"
#               sleep 2
                /sbin/ipnat -CF -f /home/ipnat.rules
#               sleep 1
        fi
        ${ipfilter_program:-/sbin/ipf} -6 -Fa
        if [ -r "${ipv6_ipfilter_rules}" ]; then
                ${ipfilter_program:-/sbin/ipf} -6 \
                    -f "${ipv6_ipfilter_rules}" ${ipfilter_flags}
                echo "Go to IPV6 Proccess! Hu Xiao"
        fi
}
ipfilter_resync()
{
        # Don't resync if ipfilter is not loaded
        if ! ipfilter_loaded; then
                 return
        fi
        ${ipfilter_program:-/sbin/ipf} -y ${ipfilter_flags}
                /sbin/ipnat -CF -f /home/ipnat.rules
}
   注意:第一,这一个是直接用命令,如果想通用,改为变量方式。第二,一定要写两处,最起码要写resync里的。因为那一个是后执行的。
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/38866/showart_420023.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP