Solaris
兩個本地地址監聽同一個埠?
怎麼可能
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 環境。