两个本地地址监听同一端口?

两个本地地址监听同一端口?

怎么可能netstat -a | grep 8081显示这个:

localhost.8081             *.*                0      0 49152      0 LISTEN
      *.8081               *.*                0      0 49152      0 LISTEN

我不太明白这意味着第二个条目。

UPDATE_1:我检查过两个不同的进程正在侦听 8081...我曾经认为这是不可能的。一个进程是 Jboss,其 8081 端口用于服务浏览器请求,另一个进程是 Gitblit GO(它可以在 JAR 中嵌入服务器),其 8081 端口用于关闭。

答案1

我做了以下实验来说明我上面的评论。我使用netcat命令实现了两个简单的TCP服务器。我的secnario与你的有点不同,因为我明确绑定到公共IP而不是*:8081

# Terminal 1
$ nc -kl 127.0.0.1 24482

在单独的终端中:

# Terminal 2
$ nc -kl <public_ip> 24482

从本地主机上的另一个终端:

# Terminal 3
$ telnet localhost 24482
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
hi
^]
telnet> q
Connection closed.

之后,我hi在 1 号航站楼看到了。

接下来,从远程节点:

# Terminal 4 (on remote node)
$ telnet <public_ip> 24482
Trying <public_ip>...
Connected to <public_ip>.
Escape character is '^]'.
ho
^]
telnet> q
Connection closed.

之后,我ho在 2 号航站楼看到了。

我怀疑这是您会看到的行为,尽管我没有可用于测试它的 Solaris 环境。

相关内容