You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何Nmap Lua脚本TCP连接未等预期时间就超时报错?

Nmap Lua脚本超时设置错误导致立即超时的问题

你的Nmap Lua脚本出现立即超时的问题,核心原因是超时时间的单位理解错误。

先看你提供的代码片段:

action = function()
    local target = "46.121.76.117"

    local sock = nmap.new_socket("tcp")
    sock:set_timeout(10) -- 这里是问题所在

    local status, err = sock:connect(target, 17)

    if not status then
        -- Failed to connect
        stdnse.debug1("Couldn't connect to %s on port %d; %s",target, 17, err)
        sock:close()
        return
    end
end

问题分析

Nmap的nmap.new_socket对象的set_timeout()方法,参数单位是毫秒,不是你误以为的秒。你设置的10意味着只等待10毫秒,这个时间太短,还没完成TCP连接握手就触发了超时,所以脚本立刻返回TIMEOUT错误。

而你用nmap 46.121.76.117扫描显示端口17开放,是因为Nmap默认的TCP连接超时远大于10毫秒,足够完成正常的连接检测。

解决方法

如果需要设置1秒的超时时间,把参数改成1000(1秒=1000毫秒)即可:

sock:set_timeout(1000) -- 设置1秒超时

修改后脚本会等待1秒再判断是否超时,就能正常尝试连接开放的端口17了。

内容的提问来源于stack exchange,提问作者Dan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 11:48:12