首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java和netstat输出

Java和netstat输出
EN

Stack Overflow用户
提问于 2017-02-27 04:36:18
回答 1查看 3.3K关注 0票数 1

我正在努力让我的RMI服务在防火墙上工作。我按照this answer中的指令在端口1099上运行RMI注册表和RMI服务,但是当我执行netstat时,我看到在RMI客户端和服务器上打开了不同的端口号。

代码语言:javascript
运行
复制
[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         ESTABLISHED

10.1.1.1和10.1.1.2既是RMI服务器,也是相互交谈的客户机。

这是我的代码片段:

IRemoteService存根= (IRemoteService) UnicastRemoteObject.exportObject(服务,1099); 注册表= LocateRegistry.createRegistry(1099); registry.rebind(IRemoteService.serviceName,stub);

这是意料之中吗?为什么我看到端口#类似于33400,33378等等?或者我对源端口和目标端口的理解是错误的?我希望看到所有连接(注册表查找和远程服务调用)只进入端口1099。

注意:我还没有在防火墙环境中运行上面的内容,只是在我的实验室尝试在防火墙情况下尝试之前在本地尝试。

EN

Stack Overflow用户

回答已采纳

发布于 2017-02-27 05:10:56

代码语言:javascript
运行
复制
tcp6       0      0 10.1.1.1:1099         10.1.1.2:33400        ESTABLISHED

端口33400上的客户端与端口1099上的服务器之间的连接。您不能仅从这一行判断这一点,但是您提到了使用1099的RMI,并且会有一个具有1099侦听的前一行。

代码语言:javascript
运行
复制
tcp6       0      0 10.1.1.1:1099         10.1.1.1:33378        ESTABLISHED

端口33378上的客户端与端口1099上的服务器之间的连接。和上面一样的话。

代码语言:javascript
运行
复制
tcp6       0      0 10.1.1.1:33408        10.1.1.1:1099         ESTABLISHED

端口33408上的客户端与端口1099上的服务器之间的连接。和上面一样的话。如果客户端位于另一个主机上,则这一行将仅显示在客户端主机上。

代码语言:javascript
运行
复制
tcp6       0      0 10.1.1.1:1099         10.1.1.1:33408        ESTABLISHED

连接的另一边。这一行只显示在服务器主机上。

代码语言:javascript
运行
复制
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。

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42477912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档