Số cổng mạng TCP / IP lớn nhất được phép cho IPv4 là bao nhiêu?


Câu trả lời:


565

Số cổng là số nguyên 16 bit không dấu, vì vậy 65535.


216
"Này, Jim, chúng ta nên hỗ trợ bao nhiêu cổng?" "Chỉ cần làm cho nó 16 bit cho số đo tốt. Sẽ không ai có thể mở hơn vài trăm cùng một lúc, ngọn."
JessieArr

3
@barlop Tôi đã gợi ý rằng khi họ lần đầu tiên tạo cổng, một máy có hàng trăm kết nối có thể được coi là trường hợp xấu nhất. Nhưng ngày nay các máy chủ web, thiết bị mạng, v.v ... chắc chắn có thể gặp phải những hạn chế về số lượng cổng. Microsoft đã viết một bài viết Technet thú vị về cách chẩn đoán và tránh nó trong môi trường Windows: blog.technet.microsoft.com/askds/2008/10/29/ trộm
JessieArr

3
@JessieArr trong cả hai trường hợp đó không thực sự là vấn đề 65536, đó là vấn đề của A) các chương trình không giải phóng kết nối, khiến chúng ở trạng thái "WAIT" mà netstat hiển thị kết hợp với B) một số phiên bản Windows trước đó chỉ từ 1024-5000 cho Các cổng động. Ngay cả sau đó, ai biết liệu điều đó có xảy ra hay không, vì không có chương trình nào bận tâm báo cáo với bất kỳ ai rằng nó không thể có một cổng động, cũng không có cửa sổ. Vì vậy, đó không phải là vấn đề thực sự gây ra bởi Số 65536. Trình duyệt web có thể là người dùng kết nối lớn nhất. Tôi có 297 dòng trong đầu ra netstat của mình. Xa từ 65K
barlop

3
@JessieArr Hầu hết các ngăn xếp IP sử dụng một bộ địa chỉ IP nguồn, cổng nguồn, địa chỉ IP đích và cổng đích làm định danh duy nhất cho các kết nối. Điều này có nghĩa rằng một máy chủ có thể có nhiều nhiều hoạt động kết nối nhiều hơn có sẵn cổng mở, và số lượng cổng chỉ đặt một giới hạn (mặc dù là một trong rất lớn) vào dung lượng của các kết nối mở giữa một nguồn duy nhất và một điểm đến duy nhất. Tôi không nghĩ ai sẽ chạy máy chủ trên (hoặc nghe kết nối trên) hơn 65536 cổng bất cứ lúc nào.
jduncanator

41
@JessieArr - điều đó sẽ dạy bạn thử và làm một trò đùa, đây là một công việc nghiêm túc mà bạn biết, không có thời gian cho loại điều đó ở đây: /
Matt

145

Số cổng lớn nhất là một dấu ngắn không dấu 2 ^ 16-1: 65535

Cổng đã đăng ký là một cổng được Tổng công ty Internet gán cho Tên và số được gán (ICANN) cho một mục đích sử dụng nhất định. Mỗi cổng đã đăng ký nằm trong phạm vi 1024 FPV49151.

Kể từ ngày 21 tháng 3 năm 2001, cơ quan đăng ký là ICANN; trước đó là IANA.

Các cổng có số lượng thấp hơn các cổng đã đăng ký được gọi là cổng nổi tiếng; cổng có số lượng lớn hơn số cổng đã đăng ký được gọi là cổng động và / hoặc cổng riêng.

Wikipedia: Cổng đã đăng ký


71

Theo tôi hiểu, bạn chỉ nên sử dụng tối đa 49151, vì từ 49152 đến 65535 được dành riêng cho các cổng Ephemeral


11
phạm vi cổng phù du khác nhau tùy theo hệ thống. Tôi đang chạy linux Ubuntu với kernel 3.19.0-43. $ cat /proc/sys/net/ipv4/ip_local_port_rangekết quả đầu ra 32768 61000. Về việc một người nên hay không nên sử dụng một cổng trong phạm vi cổng phù du của hệ thống, tôi nghi ngờ nhất là nếu không phải tất cả các hệ điều hành mạng hiện đại sẽ bỏ qua một cổng đã được sử dụng.
Keith Reynold

37

Chỉ cần theo dõi câu trả lời của smashery . Phạm vi cổng phù du (ít nhất là trên Linux và tôi nghi ngờ các Unice khác) không phải là cố định. Điều này có thể được kiểm soát bằng cách viết vào /proc/sys/net/ipv4/ip_local_port_range

Hạn chế duy nhất (theo như IANA có liên quan) là các cổng dưới 1024 được chỉ định là cổng nổi tiếng. Các cổng trên miễn phí sử dụng. Thông thường bạn sẽ thấy rằng các cổng dưới 1024 bị hạn chế truy cập siêu người dùng, tôi tin vì chính lý do này.


15

Theo RFC 793, cổng là int 16 bit không dấu.

Điều này có nghĩa là phạm vi là 0 - 65535.

Tuy nhiên, trong phạm vi đó, các cổng 0 - 1023 thường được dành riêng cho các mục đích cụ thể. Tôi nói chung bởi vì, ngoài cổng 0, thường không có sự thực thi của đặt phòng 0-1023. Việc triển khai TCP / UDP thường không thực thi đặt trước ngoài 0. Bạn có thể, nếu bạn muốn, chạy cổng TLS của máy chủ web trên cổng 80, hoặc 25 hoặc 65535 thay vì 443 tiêu chuẩn. tiêu chuẩn mà máy chủ SMTP lắng nghe trên cổng 25, bạn có thể chạy nó trên 80, 443 hoặc các loại khác.

Hầu hết các triển khai dự trữ 0 cho một mục đích cụ thể - gán cổng ngẫu nhiên. Vì vậy, trong hầu hết các triển khai , nói "nghe trên cổng 0" thực sự có nghĩa là "Tôi không quan tâm tôi sử dụng cổng nào, chỉ cần cung cấp cho tôi một số cổng không được gán ngẫu nhiên để nghe".

Vì vậy, bất kỳ giới hạn nào trong việc sử dụng một cổng trong phạm vi 0-65535, bao gồm 0, phạm vi đặt trước phù du, v.v., là việc triển khai (ví dụ: HĐH / trình điều khiển) , tuy nhiên, tất cả, kể cả 0, đều là các cổng hợp lệ trong RFC 793.



11

Số hợp lệ cho các cổng là: 0 đến 2 ^ 16-1 = 0 đến 65535
Đó là do số cổng có độ dài 16 bit.

Tuy nhiên, các cổng được chia thành:
Các cổng nổi tiếng : 0 đến 1023 (được sử dụng cho các dịch vụ hệ thống, ví dụ HTTP, FTP, SSH, DHCP ...)
Cổng đã đăng ký / người dùng : 1024 đến 49151 (bạn có thể sử dụng nó cho máy chủ của mình, nhưng cẩn thận một số ứng dụng nổi tiếng: như máy chủ hệ thống quản lý cơ sở dữ liệu Microsoft SQL Server (MSSQL) hoặc Máy chủ mạng Apache Derby đã lấy từ phạm vi này, tức là không nên gán cổng MSSQL cho máy chủ của bạn nếu không MSSQL đang chạy thì máy chủ của bạn sẽ chạy nhất có thể sẽ không chạy vì xung đột cổng) Cổng
động / riêng : 49152 đến 65535. (không được sử dụng cho các máy chủ thay vì máy khách, ví dụ như trong dịch vụ NATing)

Trong lập trình, bạn có thể sử dụng bất kỳ số nào từ 0 đến 65535 cho máy chủ của mình, tuy nhiên bạn nên tuân theo các phạm vi được đề cập ở trên, nếu không, một số dịch vụ hệ thống hoặc một số ứng dụng sẽ không chạy do xung đột cổng.
Kiểm tra danh sách hầu hết các cổng tại đây: https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.