问个有关 UDP 穿透的问题。

我不懂 UDP 的原理,现在情况是这样的,我在内网有台主机, IP 地址是 192.168.1.2 ,然后通过路由器的一对一 NAT 功能,分了个 IP 地址给这个 IP 。访问网络的时候,端口也是一对一的,比如, 192.168.1.2:3389 出入都是一对一对应 112.56.26.37:3389 。
但是如果我使用 UDP 通信的话,如果我软件没做修改,似乎是无法互通的,只能是单向,这个问题怎么解决?
udp 192.168.1.2 一对一 112.56.26.3710 条回复 • 2016-04-27 16:23:25 +08:00
BOYPT 1
BOYPT 2016-04-11 10:54:37 +08:00
你做端口映射的时候选上 tcp+udp 就好了
prondtoo 2
prondtoo 2016-04-11 11:08:52 +08:00
@BOYPT 选了,是 TCP+UDP 的
stabc 3
stabc 2016-04-11 11:25:46 +08:00
是不是你路由器只做了单项 NAT 呢?
leavic 4
leavic 2016-04-11 11:38:34 +08:00
如果双方都指定了 UDP 端口的话,肯定是可以的,问题就是到底双方的软件是不是指定端口,还是有一端是随机端口的。
ETiV 5
ETiV 2016-04-11 11:43:23 +08:00
原来是端口映射, 我还以为真的是 UDP 穿透…
prondtoo 6
prondtoo 2016-04-11 11:59:15 +08:00
@ETiV 那还要挖洞么?我这种环境应该不用挖洞的吧
asddsa 7
asddsa 2016-04-11 14:30:33 +08:00
有一个叫 DMZ 主机,就是把外网的所有端口映射到一台主机上
prondtoo 8
prondtoo 2016-04-11 17:20:45 +08:00
@asddsa 这个和 DMZ 不同, DMZ 你进来的端口是一样的,出去的端口不一定一样。一对一 NAT 是进来和出去的端口都是一样的
Roboo 9
Roboo 2016-04-11 17:27:30 +08:00 via Android
配置静态 nat 端口全开
CayenneS 10
CayenneS 2016-04-27 16:23:25 +08:00
这个自己不会弄的话可以去路由器提供商那里咨询一下,请他们帮忙做一下端口映射什么的

关于不 root 的手机抓 UDP 包问题

手机连接某台自带 wifi 的设备,然后需要在手机里抓 UDP 包,因为现在存在丢包的问题,设备发送了但手机里的 APP 显示没有收到该消息

这种情况下如何抓手机里的 UDP 包?网络上很多都是要 root 后用 tcpdump 命令的,或者是用手机连接电脑热点,然后通过电脑来抓。

14 条回复    2021-01-29 04:21:16 +08:00
Gloomyer
    1

Gloomyer   71 天前

没有 root 没权限啊 搞个小米测试机 解锁后刷 magisk 百度下巨简单 而且 udp 本来就不保证手机能收到啊。
reasonMix
    2

reasonMix   71 天前

UDP 本身就是不可靠。没有收到是很正常的啊。你要可靠就用 raknet enet 这种网络库
hatebugs
    3

hatebugs   71 天前

udp 不可靠换 tcp 就不会丢包了吗,? 楼主是想看这个包有没有到吧?不管是 udp 还是 tcp,该丢都会丢,只是上层的行为不一样。
QBugHunter
    4

QBugHunter   71 天前

@reasonMix
1.现在因为设备的原因,只能用 UDP
2.在良好网络状态下 UDP 丢包有 3%-5%,明显不正常
QBugHunter
    5

QBugHunter   71 天前

@hatebugs
硬件限制,设备不是我们公司的,设备采用 UDP 的方式进行信息交互,协商让厂商改成 TCP 的,但短时间内做不到(钱太少),所以目前只能用 UDP
QBugHunter
    6

QBugHunter   71 天前

@hatebugs
主要现在处于扯皮阶段,设备厂商坚持自己设备没问题,他的包发到手机了,是我们的手机没处理
cz5424
    7

cz5424   71 天前 via iPhone

@QBugHunter 换个厂商解决或者电脑监听局域网所有网络包,如果 udp 是广播包就可以抓到,如果中间有软路由可以在软路由抓包
Puteulanus
    8

Puteulanus   71 天前

WiFi 的话,电脑网卡开混杂模式应该能抓到吧
bleepbloop
    9

bleepbloop   71 天前

设备上 port mirroring
CallMeReznov
    10

CallMeReznov   71 天前

我记得安卓有抓包软件啊,原来测试游戏 APP 的时候就用那个抓包。

jim9606
    11

jim9606   70 天前

一种方法是 PC 上游网络连你的设备,然后开热点给手机,PC 上开 wireshark 捕获 Virtual Adapter 的包。
z7039585
    12

z7039585   70 天前

安卓抓包推荐 HttpCanary ( Android 端目前*好用的抓包软件)
daimiaopeng
    13

daimiaopeng   70 天前

用 Fiddler 代理手机网络,然后通过 wireshark 抓包就行了,我之前通过这种方式抓过手机 qq 的 udp 包
bao3
    14

bao3   69 天前 via iPhone

8 楼正解