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

2015-11-24 13:52:53 +08:00
 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

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

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

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

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

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

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

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

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

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

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

https://www.v2ex.com/t/238503

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

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

© 2021 V2EX