V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
fingerstyle
V2EX  ›  问与答

用 curl 检测代理可用性,结果局域网被搞瘫痪了。。。

  •  
  •   fingerstyle · 2016-08-24 11:40:40 +08:00 · 2112 次点击
    这是一个创建于 2806 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我用的判断方法是:
    curl -m 5 "请求网址" -x 代理 ip:端口 2>/dev/null |grep -c "关键字"
    看结果可以知道代理是否可用。

    我写了一个简单的 while 循环,在办公室的一台电脑上运行,每隔几秒执行一次这个检测命令,结果运行几个小时以后局域网开网页变得很卡,从外面 ping 我们办公室的 ip ,延迟很规律一会正常一会很高。。 是因为 curl 引起的 TIME_WAIT 积累吗。。还是有其他问题? linux 日志没查到相关的报错,只有路由器记录这台机器一直往外发包。。求指点
    第 1 条附言  ·  2016-08-24 16:48:56 +08:00
    循环内容:

    while true
    do

    if [ `curl -m 5 "请求网址" -x 代理 ip:端口 2>/dev/null |grep -c "关键字" ` = "0" ]; then
    echo " PROXY A DOWN "
    else
    echo " PROXY A OK "
    fi

    sleep 2

    done
    2 条回复    2016-08-25 11:11:10 +08:00
    helixzz
        1
    helixzz  
       2016-08-24 20:36:06 +08:00
    如果 curl 已经过了超时时间应该会释放连接吧…
    路由器上能否看到当前连接数?
    fingerstyle
        2
    fingerstyle  
    OP
       2016-08-25 11:11:10 +08:00
    @helixzz 目前查到的问题是这台机器的半连接数限制是 4096 ,有点太多了,半连接会占用路由器硬件资源,还没有来得及修改,到时候来更新验证结果。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2342 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 03:22 · PVG 11:22 · LAX 20:22 · JFK 23:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.