我遇到了这个问题。有一个只能在本地网络上访问的 udp 视频流,但我需要在网络外访问它。我有一台 Linux 机器(实际上是多台),具有 root 访问权限。
有一个小实用程序可以使该流在本地机器的端口 1234 上访问。
./ping -h streamserver -p 1234
如果我运行它,我可以使用 vlc 或 mplayer 访问该流。
mplayer udp://@:1234
vlc udp://@:1234
现在,我正尝试从我的远程机器创建一个端口转发并访问该端口,但失败了。
ssh me@machine -L 1234:127.0.0.1:1234
有什么提示我做错了什么吗?
答案1
这里的问题是 SSH 只能转发 TCP 连接的端口。您感兴趣的协议是 UDP。
本文:http://zarb.org/~gc/html/udp-in-ssh-tunneling.html展示了一种解决该问题的方法(以 DNS 为例),即首先将 UDP 封装在 TCP 中。