我正在努力让我的RMI服务在防火墙上工作。我按照this answer中的指令在端口1099上运行RMI注册表和RMI服务,但是当我执行netstat时,我看到在RMI客户端和服务器上打开了不同的端口号。
[user@machine] ~ $ netstat -ant | grep 1099
tcp6 0 0 :::1099 :::* LISTEN
tcp6 0 0 10.1.1.1:1099 10.1.1.2:33400 ESTABLISHED
tcp6 0 0 10.1.1.1:1099 10.1.1.1:33378 ESTABLISHED
tcp6 0 0 10.1.1.1:33408 10.1.1.1:1099 ESTABLISHED
tcp6 0 0 10.1.1.1:1099 10.1.1.1:33408 ESTABLISHED
tcp6 0 0 10.1.1.1:46866 10.1.1.2:1099 ESTABLISHED
tcp6 0 0 10.1.1.1:1099 10.1.1.2:33404 ESTABLISHED
tcp6 0 0 10.1.1.1:33378 10.1.1.1:1099 ESTABLISHED
tcp6 0 0 10.1.1.1:46862 10.1.1.2:1099 ESTABLISHED
tcp6 0 0 10.1.1.1:46864 10.1.1.2:1099 ESTABLISHED
tcp6 0 0 10.1.1.1:1099 10.1.1.2:33402 ESTABLISHED
tcp6 0 0 10.1.1.1:46860 10.1.1.2:1099 ESTABLISHED10.1.1.1和10.1.1.2既是RMI服务器,也是相互交谈的客户机。
这是我的代码片段:
IRemoteService存根= (IRemoteService) UnicastRemoteObject.exportObject(服务,1099); 注册表= LocateRegistry.createRegistry(1099); registry.rebind(IRemoteService.serviceName,stub);
这是意料之中吗?为什么我看到端口#类似于33400,33378等等?或者我对源端口和目标端口的理解是错误的?我希望看到所有连接(注册表查找和远程服务调用)只进入端口1099。
注意:我还没有在防火墙环境中运行上面的内容,只是在我的实验室尝试在防火墙情况下尝试之前在本地尝试。
发布于 2017-02-27 05:10:56
tcp6 0 0 10.1.1.1:1099 10.1.1.2:33400 ESTABLISHED端口33400上的客户端与端口1099上的服务器之间的连接。您不能仅从这一行判断这一点,但是您提到了使用1099的RMI,并且会有一个具有1099侦听的前一行。
tcp6 0 0 10.1.1.1:1099 10.1.1.1:33378 ESTABLISHED端口33378上的客户端与端口1099上的服务器之间的连接。和上面一样的话。
tcp6 0 0 10.1.1.1:33408 10.1.1.1:1099 ESTABLISHED端口33408上的客户端与端口1099上的服务器之间的连接。和上面一样的话。如果客户端位于另一个主机上,则这一行将仅显示在客户端主机上。
tcp6 0 0 10.1.1.1:1099 10.1.1.1:33408 ESTABLISHED连接的另一边。这一行只显示在服务器主机上。
tcp6 0 0 10.1.1.1:46866 10.1.1.2:1099 ESTABLISHED
tcp6 0 0 10.1.1.1:1099 10.1.1.2:33404 ESTABLISHED
tcp6 0 0 10.1.1.1:33378 10.1.1.1:1099 ESTABLISHED
tcp6 0 0 10.1.1.1:46862 10.1.1.2:1099 ESTABLISHED
tcp6 0 0 10.1.1.1:46864 10.1.1.2:1099 ESTABLISHED
tcp6 0 0 10.1.1.1:1099 10.1.1.2:33402 ESTABLISHED
tcp6 0 0 10.1.1.1:46860 10.1.1.2:1099 ESTABLISHED等等。
这是意料之中吗?
是。
为什么我会看到#端口33400,33378等等?
因为连接有两个端:服务器端和客户端,客户机端口通常是随机选择的。
还是我对源端口和目标端口工作方式的理解有误?我希望看到所有连接(注册表查找和远程服务调用)只到端口1099。
他们是。但这些连接都有客户端。
这确实是一个关于TCP和netstat的问题,而不是RMI或Java。
https://stackoverflow.com/questions/42477912
复制相似问题