V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
YakuMioto
V2EX  ›  程序员

大佬们, 请教一个 UDP 数据拦截过滤问题

  •  
  •   YakuMioto · 2019-08-28 10:48:40 +08:00 · 2467 次点击
    这是一个创建于 1919 天前的主题,其中的信息可能已经有所发展或是发生改变。

    SIP 协议

    程序 A: 127.0.0.1:5050 -> 程序 B: 127.0.0.1:5060

    我想在中间加一个过滤层怎么办, 有什么可行的方案么?

    程序 A 的代码没法改(二进制). B 有 N 个且各种语言实现(比较繁琐).

    12 条回复    2019-09-16 18:18:52 +08:00
    azh7138m
        1
    azh7138m  
       2019-08-28 10:55:14 +08:00
    自己写个 relay ?实现可以参考 https://github.com/docker/go-connections/blob/master/proxy/udp_proxy.go 并不会很麻烦
    YakuMioto
        2
    YakuMioto  
    OP
       2019-08-28 11:02:10 +08:00
    @azh7138m 但是 程序 A 和 B 并不支持设置 proxy ..
    robot1
        3
    robot1  
       2019-08-28 11:04:13 +08:00
    linux 和 windows 都可以开发过滤驱动拦截数据包,窜改,查看 都可以支持了
    LeeSeoung
        4
    LeeSeoung  
       2019-08-28 11:06:03 +08:00
    中间做个代理层,不是设置 是把本身 A 想连接 B 的端口 替换为 proxy,proxy 处理完再转发给 B
    azh7138m
        5
    azh7138m  
       2019-08-28 11:06:32 +08:00   ❤️ 2
    A -> relay -> B
    相当于 udp 反代,不是正向代理,不需要配置 A
    YakuMioto
        6
    YakuMioto  
    OP
       2019-08-28 11:06:58 +08:00
    @robot1 用什么形式实现呢? iptable 可行么?
    XiaoxiaoPu
        7
    XiaoxiaoPu  
       2019-08-28 11:08:06 +08:00
    @YakuMioto linux 的话可以试试用 iptables 重定向下 www.cyberciti.biz/faq/linux-port-redirection-with-iptables/
    sujin190
        8
    sujin190  
       2019-08-28 11:34:44 +08:00
    @YakuMioto #2 不支持 proxy,总不能 ip 端口都不能设置把,设置成 relay 地址端口,有这台机器来转发不就可以过滤了
    MMMMMMMMMMMMMMMM
        9
    MMMMMMMMMMMMMMMM  
       2019-08-28 13:02:10 +08:00
    也可以 debug 一下 A,hook 他的 socket send 地址,直接指向至你的自制中间人程序。
    undefinedList
        10
    undefinedList  
       2019-08-28 14:22:25 +08:00
    win 下我之前写过 lsp 的,就是 winsock 支持的代理层吧。可以做到拦截指定端口的流量并做任何操作。
    关键字:winsock lsp
    DoctorCat
        11
    DoctorCat  
       2019-08-28 15:15:11 +08:00
    最简单的就是做反向代理,最复杂的就是写 Netfilter Hooks 或用动态链接库的 HOOK 大法
    YakuMioto
        12
    YakuMioto  
    OP
       2019-09-16 18:18:52 +08:00 via Android
    @azh7138m 感谢啊,反代可行~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4230 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 05:29 · PVG 13:29 · LAX 21:29 · JFK 00:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.