如何通过openresty lua 代理发送tcp请求

发布于 2022-09-04 00:43:25 字数 911 浏览 15 评论 0

如何通过openresty lua 代理发送tcp请求

在线等,急

如题目: 正常咱们使用 socket:tcp 创建请示 然后 connect(host, port)

普通连接代码如下:

-- check.lua

local portHandler = function(premature, ip_address, port)
    local sock = ngx.socket.tcp()
    sock:settimeout(300)
    local ok, err = sock:connect(ip_address, port)

    if ok then
        --        数据库处理或文件处理写入历史
        local ok, err = ngx.timer.at(1, hHandler, ip_address, port);
        if not ok then
            ngx.log(ngx.ERR, "failed to create timer: ", err)
        end
    else
        ngx.log(ngx.ERR, "port_handler_error: " .. ip_address, err)
    end
    sock:close()
end

以上方法在没有任何限制的情况下是可以使用的。

当如果内网有限制,比如需要访问外网就必须得使用代理的时候,此时运维给了一个可用的代理ip、端口及用户名密码,运维称使用的是ss5。那么现在我要如何通过他给的代理把tcp请求发出去?

http://lattecake.com/post/20100

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

梦回旧景 2022-09-11 00:43:25

这个,要么自己动手研究nginx的tcp源码,然后自己写个扩展模块去实现。要么就是利用nginx的ngx.location.capture接口在lua代码里边构造、发送子请求,然后让这个子请求去访问自己nginx设置的代理: proxy_pass。描述的不详细,也没有自己实现,参考:http://www.tuicool.com/articl...

溺深海 2022-09-11 00:43:25

nginx本身是支持tcp代理的,你看下upstream

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文