我正在开发一个 Java 应用程序,该应用程序收集网络设备上的各种信息。所有这些设备都位于网络堡垒后面,我使用 JSch 根据需要创建到远程设备的 TCP 隧道。这对于像 TL1 这样基于 TCP 的协议(protocol)非常有效。不过,我确实发现自己也需要收集 SNMP 数据。
我可以访问的堡垒服务器相当旧且有限,而且我没有很多选项可以在那里构建 SNMP 代理。我的问题是社区是否知道一种干净、可靠的方法来根据需要以编程方式建立隧道。我查看了诸如 this one 之类的解决方案,但由于我有数千甚至数万个可能的 IP 地址,手动一次性方法是不可行的。如果需要的话,我会插入一个能够执行强大的 snmp 代理的服务器,但我需要知道在我进行这场战斗之前没有其他方法。
最佳答案
SSH 协议(protocol)不包含任何 UDP 转发。
所以你需要在 SSH 服务器端运行一些程序,它会为你发送 UDP 数据包,并接收发送的数据包。
我不知道 SNMP 详细信息,但对于简单的情况,您可以简单地使用执行 channel 启动 netcat
或 socat
,通过标准输入/发送数据包标准输出。
我想这样的事情可以做到:
netcat -u server 161
或者使用socat
:
socat STDIO UDP:server:161
关于java - 如何通过 ssh 建立 udp 隧道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6877850/