java - 如何通过 ssh 建立 udp 隧道?

标签 java ssh udp snmp tunnel

我正在开发一个 Java 应用程序,该应用程序收集网络设备上的各种信息。所有这些设备都位于网络堡垒后面,我使用 JSch 根据需要创建到远程设备的 TCP 隧道。这对于像 TL1 这样基于 TCP 的协议(protocol)非常有效。不过,我确实发现自己也需要收集 SNMP 数据。

我可以访问的堡垒服务器相当旧且有限,而且我没有很多选项可以在那里构建 SNMP 代理。我的问题是社区是否知道一种干净、可靠的方法来根据需要以编程方式建立隧道。我查看了诸如 this one 之类的解决方案,但由于我有数千甚至数万个可能的 IP 地址,手动一次性方法是不可行的。如果需要的话,我会插入一个能够执行强大的 snmp 代理的服务器,但我需要知道在我进行这场战斗之前没有其他方法。

最佳答案

SSH 协议(protocol)不包含任何 UDP 转发。

所以你需要在 SSH 服务器端运行一些程序,它会为你发送 UDP 数据包,并接收发送的数据包。

我不知道 SNMP 详细信息,但对于简单的情况,您可以简单地使用执行 channel 启动 netcatsocat,通过标准输入/发送数据包标准输出。

我想这样的事情可以做到:

netcat -u server 161 

或者使用socat:

socat STDIO UDP:server:161

关于java - 如何通过 ssh 建立 udp 隧道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6877850/

相关文章:

java - Map Reduce Eclipse 2.4.1 hadoop中的客户端jar

java - 子类也会继承其父类的父类(super class)吗?

java - 如何使用 mongodb api Java 检索集合名称?

java - 尝试将使用 CardLayout 的 JPanel 添加到 JFrame

linux - 我在访问 Linux 服务器时遇到 "SSH access"问题

java - 访问包含 postfix 的服务器并使用它从 spring boot 应用程序发送邮件

ssh - 使用 docker-machine ssh 在远程机器上运行交互式本地脚本

networking - 在游戏中使用多个端口有什么好处?

C++ 中断 UDP 监听器。在 Xcode 中使用 oscpack 编译

websocket - 如何在没有 NAT 的情况下连接路由器或防火墙后面的客户端 tcp 端口