分享一个内网反向代理工具,或许比 ngrok 更符合你的需要

分享一个内网反向代理工具,或许比 ngrok 更符合你的需要

資深大佬 : ysmood 21

项目地址 https://github.com/ysmood/digto

和普通的代理工具不同它不需要任何依赖,只要能发送 http 请求就可以在内网处理公网发来的 http 请求。协议非常简单所以可以轻松集成到任何语言而不需要引用依赖。比如调试支付服务的回调时,他们的回调请求来自公网,而我自己的开发服务是在局域网内,利用它就可以将外部请求代理到本地开发服务。相比 ngrok 之类的服务利用这个工具就可以不用常驻一个反代进程了,常驻反代也让有洁癖的人很难受,要是忘了关 ngrok,同一个端口被别的服务用了还可能泄露内部的讯息。

由于可以方便的编程,它也比 ngrok 之类的服务更容易集成到自动化测试中。事实上这也是我们自己用的最多的方式。由于可以用我们自己熟悉的工具 log debug 打断点,有时候反而比那些那些代理工具花里胡哨的功能更便利,当然这个是仁者见仁智者见智。

下面是一个简单的 curl 示例,这里只需要用到 curl 。

  1. 打开一个命令行,发送公网请求 curl https://my-subdomain.digto.org/path -d 'ping' ,可以看到请求开始等待返回,my-subdomain 可以为任意值

  2. 打开另一个命令行,用它发送返回值给上面这个公网请求,我们要发送两个请求,第一个用来获取 http header,第二个用来发送 response 。示例如下:

    curl -i https://digto.org/my-subdomain # HTTP/2 200 # digto-method: GET # digto-url: /path # digto-id: 3dd4e560 # # ping  # digto-id 的值必须和上面返回的值保持一致 curl https://digto.org/my-subdomain -H 'digto-id: 3dd4e560' -d 'pong' 

    然后应该能看到第一个命令行收到了 pong 的返回。

目前 digto 自己实现了 golang,ruby 和 nodejs 的 client 供做示例。

如果你不想使用 demo 服务,也可使用源代码启动自己的私服。

大佬有話說 (3)

  • 資深大佬 : ifyour

    赞。

  • 資深大佬 : win7pro

    有意思!

  • 資深大佬 : BlackHole1

    不错哎,已 star

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论