如何找到给定远程计算机上特定进程使用的 TCP/UDP 端口
How to find the TCP/UDP port used by a specific process on a given remote machine
我有一个问题我无法解决。
我所知道的:
- 有关我正在寻找的进程的一些信息:这是一个 java 进程,但如果我可以访问类似于
ps -ef | grep java
中的信息,那么我可以找到它的 PID。
- 远程机器的IP地址运行Linux版本3.16.7-35-desktop(SUSELinux)
我想找到该机器上该进程使用的端口,但有一些限制:
- 必须以编程方式完成,在 java
- 必须从 Windows 和 Linux 开始工作(如果需要,java 代码可以分别处理这两种情况)
- 不需要安装任何其他应用程序(既不在调用者机器上,也不在远程机器上)
我也知道端口应该在 10000 到 20000 之间。我可以通过网络访问远程机器(两台机器在同一子网中)。
你会怎么做?
注意:我找到了this,但它很旧而且并不遥远。
这是标准的黑客要求。你可以做 nmap
做的事。
依次连接到该范围内的每个端口,并尝试根据您在连接时从该服务获得的数据来确定该服务正在侦听或响应该端口。它非常慢,如果你有任何工具来检测它,它看起来就像一个 hack,但它是一种已经使用了很长时间的技术,因为它是在没有服务告诉你什么是什么的情况下做到这一点的唯一方法运行 在那台机器上。
一个更好的方法是在某个地方有一个服务发现过程,其中包含您可以联系的所有服务,最好是它们的状态,这样您就可以轻松找到一个可供您的客户使用的服务。
我有一个问题我无法解决。
我所知道的:
- 有关我正在寻找的进程的一些信息:这是一个 java 进程,但如果我可以访问类似于
ps -ef | grep java
中的信息,那么我可以找到它的 PID。 - 远程机器的IP地址运行Linux版本3.16.7-35-desktop(SUSELinux)
我想找到该机器上该进程使用的端口,但有一些限制:
- 必须以编程方式完成,在 java
- 必须从 Windows 和 Linux 开始工作(如果需要,java 代码可以分别处理这两种情况)
- 不需要安装任何其他应用程序(既不在调用者机器上,也不在远程机器上)
我也知道端口应该在 10000 到 20000 之间。我可以通过网络访问远程机器(两台机器在同一子网中)。
你会怎么做?
注意:我找到了this,但它很旧而且并不遥远。
这是标准的黑客要求。你可以做 nmap
做的事。
依次连接到该范围内的每个端口,并尝试根据您在连接时从该服务获得的数据来确定该服务正在侦听或响应该端口。它非常慢,如果你有任何工具来检测它,它看起来就像一个 hack,但它是一种已经使用了很长时间的技术,因为它是在没有服务告诉你什么是什么的情况下做到这一点的唯一方法运行 在那台机器上。
一个更好的方法是在某个地方有一个服务发现过程,其中包含您可以联系的所有服务,最好是它们的状态,这样您就可以轻松找到一个可供您的客户使用的服务。