今天整了个活,用纯 http post 做了一个反向代理/内网穿透的工具

2023 年 12 月 22 日
 codingmiao

事情是这样子的,我在 A 市工作,我们的 web 应用部署在 B 市,由于用户那边不允许远程访问服务器运维,所以有点事就要飞过去现场处理,超级烦。好在 web 应用只要有网就能访问。

反正不管 ssh 还是访问 web ,都是把字节传发送到服务器嘛,于是我整了个活,本机用 netty 写个客户端把 ssh 请求发出的字节接住,转成 http post 发到 web 应用的 nginx ,再转发给服务器上的 netty 服务端还原出字节,转到 ssh 端口,大致就是这么个架构:

然后,我就不用飞来飞去了,坐办公室里用 http 端口连服务器了 O(∩_∩)O 。。

你问为什么不用 websocket ,因为用户不给在 nginx 上加相关配置。。

忍不住要分享下,项目地址是 https://github.com/codingmiao/hppt

12327 次点击
所在节点    Java
41 条回复
codingmiao
2023 年 12 月 23 日
@yazinnnn0 发送方和接收方产生的字节都丢进缓冲池里,定期发起一个 post 请求,post body 把发送方缓冲池里的字节带走,response body 把接收方池子里的字节带回来
Hopetree
2023 年 12 月 23 日
技术是牛的,但是这个技术感觉不实用
proxytoworld
2023 年 12 月 23 日
如果能做成 native binary 就更好了,jar 包还是太大了,得有 jre
zkwang
2023 年 12 月 23 日
按 github 教程搭了一遍,运行正常。纯 http post 实现还是有特色的。很多年前有个叫自助冲浪的工具软件,是用 CGI 表单实现了 http 代理。
lemonrfx
2023 年 12 月 23 日
不提合规性的话,看起来不错,10 毫秒一次重试的流畅性不成问题。个人觉得还可以考虑一下断线自动重连,毕竟几个请求没发过去也是常事。
devliu1
2023 年 12 月 23 日
tcp over http?
itning
2023 年 12 月 23 日
frp 不是现成的吗
roundgis
2023 年 12 月 23 日
pagekite
likooo125802023
2023 年 12 月 23 日
能飞积累飞行积分不香么?
vincent7245
2023 年 12 月 23 日
“由于用户那边不允许远程访问服务器运维“ 你已经违反公司规定了,我觉得你应该看看你的劳动合同,或者你们公司的规章制度,这种设计信息安全的违规应该都是 T0 级别的,开春都不用付违约金
yinmin
2023 年 12 月 24 日
@codingmiao 这题“甲方不给远程,跑现场又太麻烦”,去现场成本太高,找个甲方同事装一个向日葵或类似软件,需要远程的时候让对方开一下向日葵,你连上去维护一下。

疫情 3 年期间,甲方基本都能接受上面的方案。
arloor
2023 年 12 月 24 日
@devliu1 http connect tunnel 就是这个东西,没毛病的
devliu1
2023 年 12 月 24 日
@arloor 是啊 直接实现 http proxy 就够了😂
anjingdexiaocai
2023 年 12 月 24 日
个人觉得这个方案不够通用
snoopygao
2023 年 12 月 24 日
让对方提供 vp@啊,费这个劲,还不安全
aqua02
2023 年 12 月 24 日
咋回事啊 ,工作不饱和 ,扣工资,扣绩效
Ironpan
2023 年 12 月 24 日
为啥要区分 ss 和 cs, 不合并成一个吗
codingmiao
2023 年 12 月 25 日
@Ironpan 两个包依赖的第三方库不一样,比如 ss 里有 servlet 相关包,所以分开尽量精简一点,frp 之类的工具都是这么玩的。
fengpan567
2023 年 12 月 26 日
服务器:坏了,我成肉鸡了
stevenkinwjg
2024 年 2 月 13 日
@laminux29 可以直接远程注入了,黑客给你点了个赞

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

https://study.congcong.us/t/1002777

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

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

© 2021 V2EX