如何实现软路由代理?

2021-03-02 17:56:24 +08:00
 ward56
具体需求:
A 发起请求,https://1.1.1.1:32086?name=user&token=q2TW&kity=sd
ros 判断 匹配这个的 url 并且代理出去且保留接口参数,非这个 url 的做透明底代理。
2213 次点击
所在节点    宽带症候群
20 条回复
ward56
2021-03-02 17:57:52 +08:00
我描述 的可能不太准确,或者我已经陷入思维误区了,请见谅。
我已经在网上找过 ros 的透明代理,但是测试过程中并没有实现功能。
titanium98118
2021-03-02 23:26:11 +08:00
透明代理,openwrt+类$$ 就能实现
iceheart
2021-03-03 08:43:54 +08:00
做不到,你这个需求得用 pac 脚本实现
ward56
2021-03-03 09:06:51 +08:00
@iceheart 是因为 uri 的接口参数不支持正则表达式吗?没找到对应的案例和官网说明。
ward56
2021-03-03 09:26:24 +08:00
@titanium98118 目前环境咱不能替换 openwrt+类$$,不过还是谢谢你。
iceheart
2021-03-03 09:53:44 +08:00
https 的用途就是防止中间人偷懒数据,
iceheart
2021-03-03 09:55:32 +08:00
路由器就是标准的中间人角色,所以是无法得到 url 请求的
systemcall
2021-03-03 10:00:22 +08:00
@iceheart 设备上面信任证书的话,可以解密 HTTPS 流量和替换
不过有些软件会检测吧
ward56
2021-03-03 10:07:14 +08:00
@systemcall 可以不用 https,我们也有 http 的,只是不知道怎么实现,没思路了
ward56
2021-03-03 10:12:57 +08:00
附加描述, 接口请求可以不是 https
justs0o
2021-03-03 12:40:54 +08:00
直接解析域名 IP 做策略路由走代理
littlewing
2021-03-03 13:10:06 +08:00
你需要 nginx
no1xsyzy
2021-03-03 15:57:08 +08:00
我估计你应该直接配置个 L7 代理,或者说 relay,或者说中间件,或者说 API gateway
也就是自己写个服务端,它的作用就是在收到客户端请求时去请求另一个服务端
方便点就是 bottle + request
smileawei
2021-03-03 19:18:06 +08:00
http 代理+pac 即可。如果你是浏览器用的话。
pac 规则里可以写那些域名走代理。其他不走。

或者 tcp 和路由级别。
用 ipset 对域名打标记,把域名的 ip 定向到透明代理。或者到其他的网关。
neighbads
2021-03-04 07:42:49 +08:00
这不就是 NGINX 反向代理?
ward56
2021-03-05 09:38:38 +08:00
@neighbads 对,用 nginx 也可以实现。
ward56
2021-03-05 09:39:15 +08:00
@littlewing 对,用 nginx 也可以实现。
ward56
2021-03-05 09:40:54 +08:00
附加描述, 当前项目不支持非 routeos 软路由方式。
ward56
2021-03-05 09:49:06 +08:00
@justs0o 解析+标记+策略路由,理论可以实现,我先测一下。
ward56
2021-03-05 09:59:40 +08:00
@no1xsyzy 还不具备写一个服务端能力,还没用过 L7,还是先从 L7 入手试下。

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

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

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

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

© 2021 V2EX