127 個網路連接埠
哪個服務用哪個號、這個號落在哪個區間、要不要 root 權限。查 22 或 3306 就來這裡。
三個區間
公認連接埠63
0–1023。在 Unix 上只有 root 能開啟。
註冊連接埠63
1024–49151。本該申請註冊,但這裡也混著約定俗成的號。
動態連接埠1
49152–65535。系統每次向外連線時臨時挑一個,沒有固定歸屬。
網頁11
瀏覽器敲門的地方。
郵件8
把郵件送出去,再取回來。
檔案12
搬檔案,或者共用一塊磁碟。
20ftp-dataFTP data transferTCP21ftpFile Transfer ProtocolTCP69tftpTrivial FTPUDP111rpcbindONC RPC portmapperTCP 與 UDP139netbios-ssnNetBIOS sessionTCP445microsoft-dsSMB file sharingTCP548afpApple Filing ProtocolTCP873rsyncrsync file syncTCP989ftps-dataFTPS data transferTCP990ftpsFTP over TLSTCP2049nfsNetwork File SystemTCP 與 UDP3260iscsiiSCSI storage targetTCP
遠端連線7
在別人的機器上敲指令或看螢幕。
資料庫14
資料庫等著接查詢的地方。
1433ms-sql-sMicrosoft SQL ServerTCP1434ms-sql-mSQL Server browserUDP1521oracleOracle Database listenerTCP3306mysqlMySQL and MariaDBTCP5432postgresqlPostgreSQLTCP5984couchdbCouchDBTCP6379redisRedisTCP8086influxdbInfluxDBTCP9042cassandraApache CassandraTCP9200elasticsearchElasticsearch HTTPTCP9300es-transportElasticsearch transportTCP11211memcachedMemcachedTCP 與 UDP27017mongodbMongoDBTCP50000db2IBM Db2TCP
名稱解析7
把名稱換成位址,或查人查機器。
認證8
確認你是誰,並發放金鑰。
訊息13
把訊息傳下去,或先排成佇列。
119nntpUsenet newsTCP194ircInternet Relay ChatTCP563nntpsUsenet news over TLSTCP1883mqttMQTT messagingTCP5060sipSIP call setupTCP 與 UDP5061sipsSIP over TLSTCP5222xmpp-clientXMPP clientTCP5269xmpp-serverXMPP server linkTCP5672amqpAMQP messagingTCP6667ircdIRC serverTCP8883mqttsMQTT over TLSTCP9092kafkaApache KafkaTCP15672rabbitmq-mgmtRabbitMQ managementTCP
監控與日誌5
收集日誌、盯著狀態。
網路14
網路本身——分位址、報路由、挖隧道。
67bootpsDHCP serverUDP68bootpcDHCP clientUDP135msrpcMicrosoft RPC endpoint mapperTCP 與 UDP138netbios-dgmNetBIOS datagramUDP179bgpBorder Gateway ProtocolTCP500isakmpIKE key exchange for IPsecUDP520routerRIP routingUDP546dhcpv6-clientDHCPv6 clientUDP547dhcpv6-serverDHCPv6 serverUDP1080socksSOCKS proxyTCP1194openvpnOpenVPNTCP 與 UDP1701l2tpL2TP tunnellingUDP1723pptpPPTP tunnellingTCP3128squidSquid proxyTCP
開發與維運14
開發和維運工具打開的連接埠。
1099rmiregistryJava RMI registryTCP2181zookeeperApache ZooKeeperTCP2375dockerDocker daemonTCP2376docker-sDocker daemon over TLSTCP2379etcd-clientetcd client APITCP2380etcd-peeretcd peer trafficTCP3000dev-httpLocal dev serverTCP3690svnSubversionTCP4369epmdErlang port mapperTCP5000dev-altLocal dev server, UPnPTCP6443kube-apiKubernetes API serverTCP8000http-devLocal HTTP serverTCP8888jupyterJupyter, alternate HTTPTCP9000php-fpmPHP-FPM, MinIO, SonarQubeTCP
其他14
對時、列印、遊戲——歸不進別處的那些。
7echoEchoTCP 與 UDP9discardDiscardTCP 與 UDP13daytimeDaytimeTCP 與 UDP17qotdQuote of the dayTCP 與 UDP19chargenCharacter generatorTCP 與 UDP37timeTime protocolTCP 與 UDP79fingerFinger user infoTCP123ntpNetwork Time ProtocolUDP515printerLine printer daemonTCP554rtspStreaming controlTCP 與 UDP631ippInternet Printing ProtocolTCP 與 UDP6881bittorrentBitTorrentTCP 與 UDP9100jetdirectRaw printing, node_exporterTCP25565minecraftMinecraft serverTCP
怎麼看這一頁
- 連接埠號是 16 位,所以從 0 到 65535。沒有 65536 號。
- 要開啟 1023 以內的連接埠,在 Unix 上需要 root 權限。
- 明文和加密常常分在兩個號上——80 和 443 就是。
- 3000、8080 這類從未註冊卻固定下來的號,都標了「約定俗成」。
常見問題
Q. 連接埠號為什麼到 65535 為止?
因為它用 16 位整數表示。2 的 16 次方是 65536,從 0 數起,最後一個就是 65535。
Q. 1024 以下的連接埠有什麼特別?
在類 Unix 系統上只有 root 能開啟,免得任何程式都能在 80 埠冒充網站伺服器。
Q. 80 和 443 有什麼區別?
都是網頁,443 是外面裹了 TLS 的那一個。這樣的明文—加密成對還有好幾組:21 和 990、143 和 993。
Q. 3000 埠是註冊過的嗎?
不是。它是開發伺服器用著用著固定下來的。這類號在列表裡標了「約定俗成」。
Q. TCP 和 UDP 能用同一個號嗎?
能。兩者的號碼空間是分開的,TCP 53 和 UDP 53 是兩個地方。DNS 兩個都用。