突然有事情涉及到本地端口,對相關內容進行了了解,這部分知識應該偏向運維,有些不好理解,查起來也零零散散的,理解的可能也有誤……只記錄一部分東西
想要查看本地端口的情況,在cmd下使用
netstat -an
查看端口情況。會出現長長的一串東西,一部分是TCP,一部分是UDP,但里面的東西大概可以分成幾種,下面慢慢分析。
包括四個字段:協議、內部地址、外部地址、狀態
1、狀態
先要理解狀態,參考:https://www.cnblogs.com/qianzf/p/7064827.html
這里說幾個我自己關注的狀態,比較淺顯的含義。
LISTENING:是指開放着的,等待連接的。
ESTABLISHED:這是正在連接
CLOSE_WAIT、TIME_WAIT、SYN_SENT:這些是三次握手四次揮手過程中的某些狀態,還有一個斷網時出現的狀態沒有去記
2、外部地址是0.0.0.0的TCP連接
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING TCP 0.0.0.0:445 0.0.0.0:0 LISTENING TCP 0.0.0.0:3306 0.0.0.0:0 LISTENING TCP 0.0.0.0:5040 0.0.0.0:0 LISTENING TCP 0.0.0.0:49664 0.0.0.0:0 LISTENING TCP 0.0.0.0:49665 0.0.0.0:0 LISTENING TCP 0.0.0.0:49666 0.0.0.0:0 LISTENING TCP 0.0.0.0:49667 0.0.0.0:0 LISTENING TCP 0.0.0.0:49668 0.0.0.0:0 LISTENING TCP 0.0.0.0:49671 0.0.0.0:0 LISTENING TCP 10.18.16.169:139 0.0.0.0:0 LISTENING
TCP 127.0.0.1:4300 0.0.0.0:0 LISTENING TCP 127.0.0.1:4301 0.0.0.0:0 LISTENING TCP 127.0.0.1:10000 0.0.0.0:0 LISTENING TCP 127.0.0.1:10001 0.0.0.0:0 LISTENING TCP 127.0.0.1:49685 0.0.0.0:0 LISTENING TCP 127.0.0.1:54530 0.0.0.0:0 LISTENING
這些是對外開放的端口,0.0.0.0可以表示任何地址。
而上面這些開放端口也包括三種:
- 0.0.0.0:端口號
- 127.0.0.1:端口號
- 主機ip:端口號
它們的區別是0.0.0.0和主機ip后面跟的端口號是對外部網絡開放的,是可以通過服務域名、ip可以訪問的端口,而127.0.0.1的端口則是只供本機訪問的端口。
3、遠程地址是127.0.0.1:其他端口號的TCP協議
TCP 127.0.0.1:60866 127.0.0.1:54530 ESTABLISHED TCP 127.0.0.1:60867 127.0.0.1:60868 ESTABLISHED TCP 127.0.0.1:60868 127.0.0.1:60867 ESTABLISHED
可以看到這些端口一搬處於正在連接的狀態,我不太清楚這些的含義,但是看另一篇文章https://blog.csdn.net/fearGod/article/details/84051851
提到了一點點,或許是代理?是由某些應用引起的,比如說看第一條,我打算訪問127.0.0.1:54530的時候就會訪問到127.0.0.1:60866這樣子吧。
4、[::]:0和 *:*
它們相當於[0.0.0.0]:0,相當於任意地址
5、正常的對外的端口
TCP 10.18.16.169:60966 123.125.132.35:443 ESTABLISHED TCP 10.18.16.169:60971 202.106.5.21:443 ESTABLISHED TCP 10.18.16.169:60975 61.135.169.121:443 ESTABLISHED TCP 10.18.16.169:60982 216.58.200.46:443 SYN_SENT TCP 10.18.16.169:60983 216.58.200.46:443 SYN_SENT TCP 10.18.16.169:60984 112.80.255.252:443 ESTABLISHED TCP 10.18.16.169:60985 123.125.132.31:443 ESTABLISHED TCP 10.18.16.169:60986 202.89.233.100:443 ESTABLISHED TCP 10.18.16.169:60987 13.107.18.11:443 ESTABLISHED TCP 10.18.16.169:60988 10.236.9.147:80 ESTABLISHED TCP 10.18.16.169:60989 216.58.200.46:443 SYN_SENT TCP 10.18.16.169:60990 131.253.33.254:443 ESTABLISHED TCP 10.18.16.169:60991 13.107.18.254:443 ESTABLISHED TCP 10.18.16.169:60992 13.107.3.254:443 SYN_SENT
一般內部地址是主機ip,處於連接或者握手揮手階段。如上80端口是為超文本傳輸協議(HTTP)開放的端口,443是網頁瀏覽端口,主要用於https。
突然斷開網絡連接就變成下面這個樣子了(使用netstat -a查看的結果)
TCP 10.18.16.169:61763 61.135.169.121:https FIN_WAIT_1 TCP 10.18.16.169:61764 39.96.126.153:https FIN_WAIT_1 TCP 10.18.16.169:61766 61.240.129.191:https FIN_WAIT_1 TCP 10.18.16.169:61767 111.206.4.103:https FIN_WAIT_1 TCP 10.18.16.169:61769 119.167.170.226:https FIN_WAIT_1 TCP 10.18.16.169:61770 123.125.132.35:https FIN_WAIT_1
