我知道 Tomcat 使用埠 8080、8009 和 8005。但最近我使用 netstat 查看 Tomcat 正在使用的埠,并注意到 Tomcat 服務的 PID 正在偵聽多個埠,看起來像這樣(2281 PID屬于Tomcat服務)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::41020 :::* LISTEN 2281/java
tcp6 0 0 :::34300 :::* LISTEN 2281/java
tcp6 0 0 :::34621 :::* LISTEN 2281/java
tcp6 0 0 :::37150 :::* LISTEN 2281/java
tcp6 0 0 :::43231 :::* LISTEN 2281/java
tcp6 0 0 :::34847 :::* LISTEN 2281/java
tcp6 0 0 :::40512 :::* LISTEN 2281/java
tcp6 0 0 :::35808 :::* LISTEN 2281/java
tcp6 0 0 :::35168 :::* LISTEN 2281/java
tcp6 0 0 :::33984 :::* LISTEN 2281/java
tcp6 0 0 :::44577 :::* LISTEN 2281/java
tcp6 0 0 :::34145 :::* LISTEN 2281/java
tcp6 0 0 :::46786 :::* LISTEN 2281/java
tcp6 0 0 :::44419 :::* LISTEN 2281/java
tcp6 0 0 :::40291 :::* LISTEN 2281/java
tcp6 0 0 :::41091 :::* LISTEN 2281/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2281/java
tcp6 0 0 :::36903 :::* LISTEN 2281/java
tcp6 0 0 :::39624 :::* LISTEN 2281/java
tcp6 0 0 :::36072 :::* LISTEN 2281/java
tcp6 0 0 :::38825 :::* LISTEN 2281/java
tcp6 0 0 :::8009 :::* LISTEN 2281/java
uj5u.com熱心網友回復:
對于在單個埠(例如 80)上偵聽以在建立新的、長期存在的連接時在第二個埠上生成子執行緒的長期存在的行程來說,這是一種相當標準的做法。
例如,
- 客戶端向服務器發送訊息:80
- 服務器在新埠上生成一個子執行緒并將客戶端定向到該新埠。
- 客戶端和服務器之間的未來訊息將通過新埠。
我的猜測是你有一些到你的 Tomcat 服務器的保持活動連接。
uj5u.com熱心網友回復:
lsof實用程式 執行緒轉儲可以幫助找到打開埠的執行緒
lsof -Pawn -iTCP -sTCP:LISTEN -K -F pfKMT0 -p 11630 c 15 | tr '\000' ' ' | grep -v '^f'
輸出樣本
p11630
p11630 K11636 Mjava
p11630 K11646 MVM Thread
p11630 K11647 MReference Handl
p11630 K11648 MFinalizer
p11630 K11692 Mhttp-nio-8080-e
p11630 K11693 Mhttp-nio-8080-e
p11630 K11694 Mhttp-nio-8080-e
p11630 K11695 Mhttp-nio-8080-e
p11630 K11696 Mhttp-nio-8080-e
欄位可以讀作
p11630 PID of tomcat (prefixed by 'p')
K11696 THREAD PID (prefix=K)
Mhttp-nio-8080-e Thread name (prefix=M)
替代awk
lsof -Pawn -iTCP -sTCP:LISTEN -K -p 11630 c 15 | gawk '{print $1,$2,$3,$4,$11 }'
COMMAND PID TID TASKCMD NAME
java 11630 11636 java *:8080
java 11630 11636 java 127.0.0.1:8009
java 11630 11636 java 127.0.0.1:8005
java 11630 11636 java *:37961
uj5u.com熱心網友回復:
檢查 Tomcat 的server.xml連接器組態檔(HTTP/1.1、HTTP/2、AJP)。
另一件事是,部署在 Tomcat 上的應用程式(war 檔案)如果愿意,也可以打開埠。
當除錯或 JMX 被激活時,JVM 可以打開另一個埠。因此,您還需要檢查用于運行 Tomcat 的簡潔命令列。
Netstat 將顯示這些的總和。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/513946.html
標籤:爪哇雄猫
