V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ward56
V2EX  ›  宽带症候群

如何实现软路由代理?

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

    或者 tcp 和路由级别。
    用 ipset 对域名打标记,把域名的 ip 定向到透明代理。或者到其他的网关。
    neighbads
        15
    neighbads  
       2021-03-04 07:42:49 +08:00 via Android
    这不就是 NGINX 反向代理?
    ward56
        16
    ward56  
    OP
       2021-03-05 09:38:38 +08:00
    @neighbads 对,用 nginx 也可以实现。
    ward56
        17
    ward56  
    OP
       2021-03-05 09:39:15 +08:00
    @littlewing 对,用 nginx 也可以实现。
    ward56
        18
    ward56  
    OP
       2021-03-05 09:40:54 +08:00
    附加描述, 当前项目不支持非 routeos 软路由方式。
    ward56
        19
    ward56  
    OP
       2021-03-05 09:49:06 +08:00
    @justs0o 解析+标记+策略路由,理论可以实现,我先测一下。
    ward56
        20
    ward56  
    OP
       2021-03-05 09:59:40 +08:00
    @no1xsyzy 还不具备写一个服务端能力,还没用过 L7,还是先从 L7 入手试下。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2644 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 645ms · UTC 15:25 · PVG 23:25 · LAX 07:25 · JFK 10:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.