Solaris

兩個本地地址監聽同一個埠?

  • April 29, 2018

怎麼可能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 埠用於關閉。

我做了以下實驗來說明我上面的評論。我使用該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 環境。

引用自:https://unix.stackexchange.com/questions/439998