实现了一个从公网访问内网 WEB 的简单工具

2015 年 11 月 24 日
 qgy18

这是上周末为了验证一个想法,花了一个小时撸的一个从公网访问内网 WEB 服务的「玩具」,使用 HTTP/2 实现公网与内网之间的 HTTP/1.1 转发。基于 node-http2 模块, client 加 server 不超过 200 行,除了 Node.js 无需其它依赖, git clone 下来就能跑。

https://github.com/qgy18/pangolin

简单说就是这个东西能实现 ngrok 功能之一:让你的本机 WEB 在外网可以访问。临时共享点东西给好友,或者做微信调试还是很方便的。当然 ngrok 是 TCP 转发,能干的远远不是这个。

最后广告下:最近我又写了不少跟 HTTP/2 有关的文章,有兴趣的同学可以关注下: https://imququ.com

9566 次点击
所在节点    分享创造
36 条回复
qgy18
2015 年 11 月 24 日
@k9982874 这个主要不是用来传文件。典型应用场景是你在本地开发 WEB 网站,遇到点 BUG ,要找个人帮你看看,你可以使用这个工具直接给他一个公网地址,他可以直接访问到你的本地环境。
dreammes
2015 年 11 月 24 日
不错
qgy18
2015 年 11 月 24 日
@maskerTUI 没有仔细测,感觉 node.js 处理网络还比较稳定。我 Append 的那个程序,跑了快一周没出任何问题。
welefen
2015 年 11 月 25 日
赞一个,非常好用的东西
nealnote
2015 年 11 月 26 日
proxy-demo 看起来很不错的样子。
qgy18
2015 年 11 月 26 日
@nealnote 嗯,可以试试!主要是省内存、稳定。简介我写得很低调,自己用了一周了。
wkc
2015 年 11 月 29 日
分享下相关的资料

http://dog-tunnel.tk/ DOG TUNNEL - P2P 端口映射 ,非常强大

https://github.com/hashicorp/yamux 单 TCP 上多路复用的一个库

https://github.com/koding/tunnel koding 开源的从公网访问内网 WEB 的库
wkc
2015 年 11 月 29 日
对于这种代理,因为数据经过多次转发,感觉减少延时比流量压缩什么的 重要多了。

dog-tunnel 这种 udp 打洞的方式速度是最快的,虽然实测稳定性不咋地
wkc
2015 年 11 月 29 日
以前做过这方面的尝试,都是基于 koding/tunnel 这种思路来做的。

采用 TCP 隧道同样也可以打印出来 Request/Response 的,流量 copy 一份交给相关库去解析就行了。
qgy18
2015 年 11 月 29 日
@wkc 看了一下 Yamux ,发现它借鉴了 SPDY ,也就是 HTTP/2 的前身,难怪看着这么熟。

话说,我有个需求,但是没想到好的实现方式,你有思路么?

需求是我的手机连接 PC 共享的热点后,如果在 PC 开一个 Proxy ,修改手机网络走 PC 的 Proxy ,很容易抓取并替换 HTTP 数据包(这也是 Fiddler 或者 Charles 的工作原理)。

但是有些手机软件不走系统代理,我在想是否可以直接从网卡下手抓取并替换 HTTP 包。 Wireshark 可以抓包,但是貌似不能替换。
wkc
2015 年 11 月 29 日
wkc
2015 年 11 月 29 日
@qgy18
还有一个, PC 开 shadowsocks server , 手机 ss 客户端连上去。 这样就把流量导到 shadowsocks server 了。然后改 shadowsocks server 的源代码 或者用 proxychains4 等工具把流量弄到 Fiddler 上去。
安卓的 ss 客户端记得把 shadowsocks 封成了 vpn 实现全局代理。
直接用改路由表、改 iptables 应该也有办法, 不过我不熟悉这方面。
qgy18
2015 年 11 月 29 日
@wkc 多谢 改 dns 这个应该靠谱 我研究下
susu
2015 年 12 月 1 日
竟然看到了罗田的
domwang
2018 年 5 月 2 日
国内貌似不能用了,没有 Holer 好用
https://github.com/Wisdom-Projects/holer
wdom
2018 年 11 月 2 日
建议使用开源的 holer,配置简单,设置一个 key 就搞定了,毫无技术含量。服务器在国内,速度很快。
https://github.com/wisdom-projects/holer

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/238503

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX