我有两个端 一个发送一个接受 不过没有公网 IP,我手上有个 ecs 服务器 ,A 服务器推送 udp 到 ecs,B 服务器从 ecs 拉去 udp 流量 请问如何实现? 谢谢
1
pelloz 2021-01-12 13:35:44 +08:00
用 frp 做内网穿透
https://github.com/fatedier/frp |
3
cpstar 2021-01-12 13:47:32 +08:00
@Devopsre 谁让你 AB 架 frp 了,ecs 做 frps,B 做 frc,frpc 连接 ecs 的 frps,这样相当于 ecs 的某个端口代理了 B 的 UDP 端口,然后 A 往 ecs 的某个端口推 UDP,相当于 B 收取 UDP
|
5
MeteorCat 2021-01-12 13:58:55 +08:00 via Android
可以看看 tinc,我记得这个可以挂个虚拟网卡搭建虚拟内网
|
6
MeteorCat 2021-01-12 13:59:32 +08:00 via Android
ab 什么都不能装吗?什么都不能装就很麻烦了
|
7
Puteulanus 2021-01-12 14:00:17 +08:00
ssh 和 socat 能用吗,两头用 socat 做 tcp 和 udp 的互转,走 ssh 的 tcp 端口转发,把 B 的 udp 端口监听转发到 ecs 上?
https://segmentfault.com/a/1190000005804209 |
8
cpstar 2021-01-12 14:00:18 +08:00
哦,那我理解应该是一票打洞软件都无法安装,那怎么实现 B 从 ecs 上 UDP 呢?
B 不在公网,B 收 UDP,所以 B 显而易见是个服务器端,那让 ecs 找 B,绝对找不到啊。于是,就得把 B 和 ecs 的绝对互换,B 做客户端,ecs 做服务器端,ecs 上写程序收 A 的 UDP 并且缓存起来,B 去(专门)读 ecs 的缓存。 那问题来了,如果 B 能变服务器端为客户端,也就是能操作 B 机器,那也就是说针对 frp 做了限制,于是不能用 frp ? 这一套逻辑,我没把它形成自洽。 再进一步说,不能做 frp,还有其他打洞软件。。。 最不济,B 往 ecs 开 ssh tunnel |