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

今晚发现微信打视频电话流量居然会自己走内网。

  •  
  •   hyifan · 2021-12-20 21:59:32 +08:00 · 11187 次点击
    这是一个创建于 1070 天前的主题,其中的信息可能已经有所发展或是发生改变。

    网络环境是这样的,两个不同的城市,在路由器上用 openvpn 把两边网络连通了,两边的内网分别是 192.178.10.x 和 192.178.11.x ,今晚用微信给连在另一端网络上的手机打视频,发现流量居然是通过 openvpn 直接内网过去的。

    42 条回复    2022-01-14 21:48:47 +08:00
    feather12315
        1
    feather12315  
       2021-12-20 22:01:11 +08:00 via Android
    微信会用 UPnP 开端口,估计就是这个吧
    Ayahuasec
        2
    Ayahuasec  
       2021-12-20 22:06:05 +08:00
    QQ 传文件也是,我用 tinc 组的内网,用的还是交换机模式。感觉策略应该是先获取一遍所有网卡的地址,然后测试一下双方有没有哪个内网地址能互相之间直接连通的,如果没有的话再走官方的服务器中转。
    jjxtrotter
        3
    jjxtrotter  
       2021-12-20 22:06:52 +08:00
    iOS 端如果我在隐私设置里把本地网络那个关掉应该就不行了
    hyifan
        4
    hyifan  
    OP
       2021-12-20 22:07:52 +08:00
    @feather12315
    不对吧。upnp 是把应用的端口暴露在公网上让对端可以连接到吧,我抓包看了是直接走 VPN 隧道过去了。
    hyifan
        5
    hyifan  
    OP
       2021-12-20 22:10:24 +08:00
    @jjxtrotter 我看了我现在就是关掉的。
    hyifan
        6
    hyifan  
    OP
       2021-12-20 22:12:15 +08:00
    @Ayahuasec 估计是,比较好奇为什么微信会知道其实是在一个内网下。
    MaiKuraki
        7
    MaiKuraki  
       2021-12-20 22:13:05 +08:00   ❤️ 9
    这没法监控啊
    leido
        8
    leido  
       2021-12-20 22:20:51 +08:00   ❤️ 1
    @MaiKuraki 你算哪根葱?
    Ayahuasec
        9
    Ayahuasec  
       2021-12-20 22:21:42 +08:00   ❤️ 1
    @hyifan 其实如果有这样的内网优先的需求,实现起来还是比较容易的。如果我来写的话,我就双方建立正式传输应用数据的通路之前先把获取到的各个网卡 IP 传给对方,然后各开一个端口,尝试连接端方的内网地址下的对方端口,如果能建立连接的话就互相传一下账号或者 UUID 做验证,验证通过了就说明内网是连通的,那就互相通过内网传输数据就可以了。
    腾讯应该很容易就能实现这样的功能,而且产品做了这么多年了,应该会比上面说的流程更周全一点。
    GuuJiang
        10
    GuuJiang  
       2021-12-20 22:27:12 +08:00 via iPhone   ❤️ 6
    这不是视频通话类应用的标准流程嘛?能够 p2p 的情况下优先采用 p2p 以提供更高的质量,关键词搜索 TURN 、STUN 、ICE 等就都明白了
    miyunda
        11
    miyunda  
       2021-12-20 22:47:06 +08:00
    明天我和我儿子面对面开 zoom 会试试
    miyunda
        12
    miyunda  
       2021-12-20 22:48:16 +08:00
    上面开玩笑的,忘加删除线了,不要回复我
    v2tudnew
        13
    v2tudnew  
       2021-12-20 23:13:57 +08:00
    估计是广播后发现了同样 IP 段下的微信。
    philippiela
        14
    philippiela  
       2021-12-20 23:36:26 +08:00
    不经过 tencent 的服务器?不可能吧
    jousca
        15
    jousca  
       2021-12-21 00:14:09 +08:00   ❤️ 5
    @philippiela 点对点直接传输是腾讯一直以来的技术。QQ 最早就是点对点 UDP 发消息,所以才有“显 IP”的修改版出现,后来才升级为支持 TCP ,通过服务器中转。 视频也是。最早 QQ 视频如果双方内网且不能 UPNP 的话,都无法连接成功。必须开 QQ 会员才支持从腾讯服务器中转这种高级功能。

    如果当年马化腾不这么干,服务器撑不住,也没有钱去撑。
    honjow
        16
    honjow  
       2021-12-21 00:24:22 +08:00 via iPhone
    qq 在同一内网的话传文件就直接走内网了
    crab
        17
    crab  
       2021-12-21 00:32:33 +08:00
    直接 p2p 了吧
    zagfai
        18
    zagfai  
       2021-12-21 01:37:27 +08:00
    降低一大笔成本
    wuvvu
        19
    wuvvu  
       2021-12-21 01:55:27 +08:00   ❤️ 5
    说个题外话 192.178 网段不是私网段(
    xiadong1994
        20
    xiadong1994  
       2021-12-21 03:21:20 +08:00
    @wuvvu #19 lol 你不说我都没注意,查了一下,192.178.0.0/15 这个网段都是 Google 的 IP 。
    Tink
        21
    Tink  
       2021-12-21 05:06:04 +08:00 via Android
    这广播之后双方就是点对点了呀
    dangyuluo
        22
    dangyuluo  
       2021-12-21 05:10:29 +08:00   ❤️ 9
    @leido

    嘴怎么这么脏呢?
    sutking
        23
    sutking  
       2021-12-21 07:59:47 +08:00 via iPhone
    #8 什么情况?😳
    2i2Re2PLMaDnghL
        24
    2i2Re2PLMaDnghL  
       2021-12-21 09:10:29 +08:00
    @dangyuluo 这下好了,大家都知道你不喜欢吃葱了
    NewYear
        25
    NewYear  
       2021-12-21 09:47:07 +08:00
    这是打洞的基本操作,要知道现在带宽贵,而且中转需要在全国到处都有服务器,网络延迟和速度并不能得到保障,所以一般的策略都是先探测已知的 IP 是否能直连,然后 udp 打洞,最后才是服务器中转。

    “内网”“外网”只是你自己的定义,网络中一切由路由决定。并不需要真的去区分内外网。
    dangyuluo
        26
    dangyuluo  
       2021-12-21 09:51:25 +08:00
    xiamy1314
        27
    xiamy1314  
       2021-12-21 09:54:16 +08:00
    这也能吵起来。hhh
    LPeJuN6lLsS9
        28
    LPeJuN6lLsS9  
       2021-12-21 10:11:44 +08:00
    @sutking 生活不如意,在网上找存在感嘛。还有那个 24 楼也是,到处抬杠,阴阳怪气。物以类聚,这俩人很般配
    lakehylia
        29
    lakehylia  
       2021-12-21 10:16:01 +08:00
    p2p 啊,以前下载软件常用操作
    TsubasaHanekaw
        30
    TsubasaHanekaw  
       2021-12-21 10:31:26 +08:00
    接近 20 年前 qq 传文件就能走内网了啊
    zouyingzheng
        31
    zouyingzheng  
       2021-12-21 11:26:12 +08:00
    小爱同学开启了就近唤醒的话也会走 openvpn
    我也是两个城市,通过 openvpn 连接,路由表只写了内网的.
    一次观察流量中意外发现小爱同学一直再给另一个城市的小爱同学发 udp 包,而且走的是 openvpn.
    zhangjinghua
        32
    zhangjinghua  
       2021-12-21 11:32:36 +08:00   ❤️ 2
    其实微信的视频通话走的是 SIP RTP/RTCP 协议,可以了解一下协议详情,大概是控制面走的外网,通过腾讯服务器,然后数据面,就直接在两台设备之间联通了
    joshu
        33
    joshu  
       2021-12-21 11:58:00 +08:00
    感觉算是常规操作了
    之前为了测试应该映射哪些端口抓过 ps remote 的探测包,结果返回的结果里面既有我 PS 机器的内网 IP ,也有对应的外网出口 IP ,两种连接都会尝试进行连接,如果不行的话可能连不上,也可能走中转机器
    ttvast
        34
    ttvast  
       2021-12-21 12:55:52 +08:00
    如果通讯的两端处于一个局域网内,你用公网 ip 建立 p2p 连接多数是连不通的,所以 p2p 穿透 nat 之前都要先试一下局域网地址
    notgoda
        35
    notgoda  
       2021-12-21 13:19:01 +08:00 via iPhone
    @jjxtrotter V 友 你是说设置里面的 - 隐私- 区域网路吗?
    shuimugan
        36
    shuimugan  
       2021-12-21 13:28:27 +08:00   ❤️ 2
    腾讯在网络优化这块还是很细致的,早年在 QQ 给对方发张图,看看 qq 进程的网络连接情况就知道对方 ip 了。还有 QQ 堂游戏里,还是把房间里网络延迟最低的人当 server 端,很多判定都放在这个小 server 上做,这也导致了外挂横行。
    jjxtrotter
        37
    jjxtrotter  
       2021-12-21 15:24:51 +08:00 via iPhone
    @notgoda 是的 不过我也只是猜测没有实际测试
    maybedk
        38
    maybedk  
       2021-12-21 16:02:52 +08:00
    腾讯的传统艺能了属于是。局域网内的两个 qq 互相传文件巨快。
    SenLief
        39
    SenLief  
       2021-12-21 19:08:59 +08:00 via iPhone
    要不也不会以前大家传文件都是 qq 现在还有很多也都是用 qq 传的
    bclerdx
        40
    bclerdx  
       2021-12-21 23:05:12 +08:00
    @zhangjinghua 有具体链接说明么?
    Marionic0723
        41
    Marionic0723  
       2021-12-22 10:32:49 +08:00
    @leido 除去政治外,大数据分析算不算?语音识别样本算不算?
    bclerdx
        42
    bclerdx  
       2022-01-14 21:48:47 +08:00
    @jousca 就是这种吧? wechat voip ?

    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1431 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 00:00 · PVG 08:00 · LAX 16:00 · JFK 19:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.