网络环境是这样的,两个不同的城市,在路由器上用 openvpn 把两边网络连通了,两边的内网分别是 192.178.10.x 和 192.178.11.x ,今晚用微信给连在另一端网络上的手机打视频,发现流量居然是通过 openvpn 直接内网过去的。
1
feather12315 2021-12-20 22:01:11 +08:00 via Android
微信会用 UPnP 开端口,估计就是这个吧
|
2
Ayahuasec 2021-12-20 22:06:05 +08:00
QQ 传文件也是,我用 tinc 组的内网,用的还是交换机模式。感觉策略应该是先获取一遍所有网卡的地址,然后测试一下双方有没有哪个内网地址能互相之间直接连通的,如果没有的话再走官方的服务器中转。
|
3
jjxtrotter 2021-12-20 22:06:52 +08:00
iOS 端如果我在隐私设置里把本地网络那个关掉应该就不行了
|
4
hyifan OP @feather12315
不对吧。upnp 是把应用的端口暴露在公网上让对端可以连接到吧,我抓包看了是直接走 VPN 隧道过去了。 |
5
hyifan OP @jjxtrotter 我看了我现在就是关掉的。
|
7
MaiKuraki 2021-12-20 22:13:05 +08:00 9
这没法监控啊
|
9
Ayahuasec 2021-12-20 22:21:42 +08:00 1
@hyifan 其实如果有这样的内网优先的需求,实现起来还是比较容易的。如果我来写的话,我就双方建立正式传输应用数据的通路之前先把获取到的各个网卡 IP 传给对方,然后各开一个端口,尝试连接端方的内网地址下的对方端口,如果能建立连接的话就互相传一下账号或者 UUID 做验证,验证通过了就说明内网是连通的,那就互相通过内网传输数据就可以了。
腾讯应该很容易就能实现这样的功能,而且产品做了这么多年了,应该会比上面说的流程更周全一点。 |
10
GuuJiang 2021-12-20 22:27:12 +08:00 via iPhone 6
这不是视频通话类应用的标准流程嘛?能够 p2p 的情况下优先采用 p2p 以提供更高的质量,关键词搜索 TURN 、STUN 、ICE 等就都明白了
|
11
miyunda 2021-12-20 22:47:06 +08:00
明天我和我儿子面对面开 zoom 会试试
|
12
miyunda 2021-12-20 22:48:16 +08:00
上面开玩笑的,忘加删除线了,不要回复我
|
13
v2tudnew 2021-12-20 23:13:57 +08:00
估计是广播后发现了同样 IP 段下的微信。
|
14
philippiela 2021-12-20 23:36:26 +08:00
不经过 tencent 的服务器?不可能吧
|
15
jousca 2021-12-21 00:14:09 +08:00 5
@philippiela 点对点直接传输是腾讯一直以来的技术。QQ 最早就是点对点 UDP 发消息,所以才有“显 IP”的修改版出现,后来才升级为支持 TCP ,通过服务器中转。 视频也是。最早 QQ 视频如果双方内网且不能 UPNP 的话,都无法连接成功。必须开 QQ 会员才支持从腾讯服务器中转这种高级功能。
如果当年马化腾不这么干,服务器撑不住,也没有钱去撑。 |
16
honjow 2021-12-21 00:24:22 +08:00 via iPhone
qq 在同一内网的话传文件就直接走内网了
|
17
crab 2021-12-21 00:32:33 +08:00
直接 p2p 了吧
|
18
zagfai 2021-12-21 01:37:27 +08:00
降低一大笔成本
|
19
wuvvu 2021-12-21 01:55:27 +08:00 5
说个题外话 192.178 网段不是私网段(
|
20
xiadong1994 2021-12-21 03:21:20 +08:00
@wuvvu #19 lol 你不说我都没注意,查了一下,192.178.0.0/15 这个网段都是 Google 的 IP 。
|
21
Tink 2021-12-21 05:06:04 +08:00 via Android
这广播之后双方就是点对点了呀
|
23
sutking 2021-12-21 07:59:47 +08:00 via iPhone
#8 什么情况?😳
|
24
2i2Re2PLMaDnghL 2021-12-21 09:10:29 +08:00
@dangyuluo 这下好了,大家都知道你不喜欢吃葱了
|
25
NewYear 2021-12-21 09:47:07 +08:00
这是打洞的基本操作,要知道现在带宽贵,而且中转需要在全国到处都有服务器,网络延迟和速度并不能得到保障,所以一般的策略都是先探测已知的 IP 是否能直连,然后 udp 打洞,最后才是服务器中转。
“内网”“外网”只是你自己的定义,网络中一切由路由决定。并不需要真的去区分内外网。 |
26
dangyuluo 2021-12-21 09:51:25 +08:00
@2i2Re2PLMaDnghL ???
|
27
xiamy1314 2021-12-21 09:54:16 +08:00
这也能吵起来。hhh
|
28
LPeJuN6lLsS9 2021-12-21 10:11:44 +08:00
@sutking 生活不如意,在网上找存在感嘛。还有那个 24 楼也是,到处抬杠,阴阳怪气。物以类聚,这俩人很般配
|
29
lakehylia 2021-12-21 10:16:01 +08:00
p2p 啊,以前下载软件常用操作
|
30
TsubasaHanekaw 2021-12-21 10:31:26 +08:00
接近 20 年前 qq 传文件就能走内网了啊
|
31
zouyingzheng 2021-12-21 11:26:12 +08:00
小爱同学开启了就近唤醒的话也会走 openvpn
我也是两个城市,通过 openvpn 连接,路由表只写了内网的. 一次观察流量中意外发现小爱同学一直再给另一个城市的小爱同学发 udp 包,而且走的是 openvpn. |
32
zhangjinghua 2021-12-21 11:32:36 +08:00 2
其实微信的视频通话走的是 SIP RTP/RTCP 协议,可以了解一下协议详情,大概是控制面走的外网,通过腾讯服务器,然后数据面,就直接在两台设备之间联通了
|
33
joshu 2021-12-21 11:58:00 +08:00
感觉算是常规操作了
之前为了测试应该映射哪些端口抓过 ps remote 的探测包,结果返回的结果里面既有我 PS 机器的内网 IP ,也有对应的外网出口 IP ,两种连接都会尝试进行连接,如果不行的话可能连不上,也可能走中转机器 |
34
ttvast 2021-12-21 12:55:52 +08:00
如果通讯的两端处于一个局域网内,你用公网 ip 建立 p2p 连接多数是连不通的,所以 p2p 穿透 nat 之前都要先试一下局域网地址
|
35
notgoda 2021-12-21 13:19:01 +08:00 via iPhone
@jjxtrotter V 友 你是说设置里面的 - 隐私- 区域网路吗?
|
36
shuimugan 2021-12-21 13:28:27 +08:00 2
腾讯在网络优化这块还是很细致的,早年在 QQ 给对方发张图,看看 qq 进程的网络连接情况就知道对方 ip 了。还有 QQ 堂游戏里,还是把房间里网络延迟最低的人当 server 端,很多判定都放在这个小 server 上做,这也导致了外挂横行。
|
37
jjxtrotter 2021-12-21 15:24:51 +08:00 via iPhone
@notgoda 是的 不过我也只是猜测没有实际测试
|
38
maybedk 2021-12-21 16:02:52 +08:00
腾讯的传统艺能了属于是。局域网内的两个 qq 互相传文件巨快。
|
39
SenLief 2021-12-21 19:08:59 +08:00 via iPhone
要不也不会以前大家传文件都是 qq 现在还有很多也都是用 qq 传的
|
40
bclerdx 2021-12-21 23:05:12 +08:00
@zhangjinghua 有具体链接说明么?
|
41
Marionic0723 2021-12-22 10:32:49 +08:00
@leido 除去政治外,大数据分析算不算?语音识别样本算不算?
|