2008-10-20 15 views
23

Tôi đã viết một Dịch vụ WCF được lưu trữ bởi một Dịch vụ Windows và cần phải nghe trên cổng TCP/IP đã biết. Tôi có thể phân bổ một cổng nào để sử dụng trong tổ chức của mình một cách an toàn? Cổng đó sẽ được nhúng trong các tệp cấu hình cho dịch vụ và các máy khách đang sử dụng dịch vụ.Gán Cổng TCP/IP để Sử dụng Ứng dụng Trong Nhà

+0

Bản sao của http://stackoverflow.com/questions/10476987/best-tcp-port-number-range-for-internal-applications – matt2000

+0

Đây là một câu hỏi hữu ích và những người trả lời khác tạo một trường hợp tốt là "được chấp nhận "câu trả lời (của Jorge Ferreira) là không chính xác hoặc ít nhất là không đầy đủ, cũng như các câu trả lời cho câu hỏi mà đây là một bản sao. Có thể "không chấp nhận" câu trả lời đó không? –

Trả lời

26

Chọn số cổng từ 49152 đến 65535.

IANA xuất bản danh sách các cổng hiện được chỉ định.

http://www.iana.org/assignments/port-numbers

Các động và/hoặc cổng tư nhân là từ 49152 đến 65535. Đây là phạm vi từ nơi bạn nên chọn một cổng cho các ứng dụng trong nhà của bạn. Tất nhiên bất kỳ cổng nào thuộc một trong các dãy chưa được gán trong danh sách được xuất bản đều có thể được sử dụng. Nhưng lưu ý rằng bằng cách chọn một số cổng từ các dãy chưa được gán đó, sẽ không có gì đảm bảo rằng cổng bạn chọn sẽ không là cổng dự trữ trong tương lai.

SỐ ĐIỆN THOẠI NGOẠI HỐI NÊN KHÔNG ĐƯỢC SỬ DỤNG. IANA S ASS GIAO SỐ CHO CẢNG SAU KHI ĐƠN ĐĂNG KÝ CỦA BẠN ĐÃ ĐƯỢC CHẤP THUẬN.

Và chắc chắn rằng số cổng bạn chọn được cấu hình như bạn đã nêu:

Đó cổng sẽ được nhúng trong tập tin cấu hình cho dịch vụ và khách hàng mà đang tiêu thụ các dịch vụ .

Điều này sẽ tránh đau đầu trong trường hợp một số bên thứ ba khác mà bạn không thể chạm vào phần mềm đang sử dụng số cổng của bạn. Nếu điều đó xảy ra bạn chỉ cần tiếp tục và thay đổi nó trên tập tin cấu hình và nó chỉ hoạt động.

+5

_ Mặt khác, phần mềm ứng dụng PHẢI KHÔNG giả định rằng một số cổng cụ thể trong dải Cổng động sẽ luôn sẵn sàng để liên lạc mọi lúc và số cổng trong phạm vi đó vì thế ** KHÔNG ĐƯỢC ** sử dụng như số nhận dạng dịch vụ._ [RFC 6335] (http://tools.ietf.org/html/rfc6335#page-20) – Bolu

+2

Bolu là chính xác. ** Không sử dụng số cổng trong phạm vi động **. Xem giải thích của tôi ở nơi khác trên trang này. – adrianwadey

+0

Không khôn ngoan. Vì hệ thống có thể chọn gán cổng bạn đang sử dụng tại bất kỳ thời điểm cụ thể nào. Vì vậy, máy chủ của bạn có thể trông giống như nó chỉ hoạt động khi không tải được. – rxantos

0

Đây là một số tốt list of common application ports. Hãy lựa chọn của riêng bạn trong một khe trống. Có lẽ bạn cũng nên quét mạng của mình để tìm bất kỳ ứng dụng đặc biệt nào trong nhà.

Cổng số cao thường có sẵn và tôi sẽ đề xuất chúng nhưng chúng có thể bị chặn bởi tường lửa.

+0

liên kết bị hỏng. Vui lòng sửa lỗi – German

3

Ngoài các đề xuất khác về việc chọn một cổng ứng dụng chung, tôi khuyên bạn nên đặt cổng có thể định cấu hình trong ứng dụng của mình. Các số cổng được mã hóa cứng là một ý tưởng tồi, đặc biệt nếu sau này bạn tìm thấy xung đột cổng với một ứng dụng khác và cần thay đổi ứng dụng của bạn.

4

Trả lời ngắn: Tránh mọi thứ đến và bao gồm 1023 hoặc trên 49152 và kiểm tra cổng đã chọn đối với các dịch vụ trên mạng của bạn.

Nếu bạn đã thực hiện các biện pháp phòng ngừa hợp lý mà bạn có (đặt số cổng trong tệp cấu hình), nó không phải là sự gián đoạn lớn nếu sau này bạn phát hiện ra xung đột.

Nhưng (để tôi có thể thêm nội dung nào đó vào các đề xuất khác đã xuất hiện trong khi tôi đang nhập), hãy đảm bảo rằng bạn dễ dàng thay đổi! Nếu nó trong tập tin cấu hình, làm cho nó rõ ràng. Viết tài liệu và chỉ ra trong khắc phục sự cố. Đó là loại điều có thể sai, vì vậy hãy dễ dàng gỡ lỗi nếu nó cần thay đổi.

+7

Chờ đã, bạn đang yêu cầu tôi * tránh * các cổng ở trên 49152, nhưng câu trả lời hàng đầu cho biết bạn nên * chỉ * chọn các cổng 49152 trở lên. Gì? –

+1

@CamiloMartin Xem thêm câu trả lời của adrianwadey. Câu trả lời hàng đầu là lời khuyên âm thanh cho các ứng dụng ngang hàng (ví dụ: BitTorrent), vì chúng có xu hướng sử dụng các cổng động, thường là với một số loại dịch vụ khám phá; không quá nhiều cho các ứng dụng client-server, cần một số cổng hợp lý ổn định - ngay cả khi số cổng được lưu trữ trong một tệp cấu hình, bạn cần phải cấu hình lại máy chủ _and_ các máy khách của nó bất cứ khi nào nó thay đổi. – criptych

0

Như một lưu ý hãy nhớ kiểm tra các cổng đó bằng netstat/a/n để xem nó có được ứng dụng khác sử dụng hay không. Tôi tìm ra vista sử dụng 49152 .... cho một số lý do mức ứng dụng. Về cơ bản, bởi vì hầu hết các trình lắng nghe mức hệ thống không thực hiện việc chia sẻ cổng an toàn của nó để sử dụng các cổng đó không được sử dụng chút nào.

có nice day trình Amir

17

cổng 0-1023 được các cảng nổi tiếng và được sự phân công của IANA. Những chỉ nên được sử dụng cho các giao thức được giao trên mạng công cộng.

Cổng 1024-65535 được sử dụng để gọi là Số cổng đã đăng ký (xem rfc1700) nhưng hiện được chia thành hai khu vực (xem rfc6335).

Cổng 1024-49151 là Cổng người dùng và là cổng để sử dụng cho giao thức của riêng bạn.

Cổng 49152-65535 là cổng Động và không được quy định cho giao thức.

Cổng người dùng có thể được sử dụng cho bất kỳ giao thức nào, nhưng có một số hữu hạn, vì vậy việc sử dụng của bạn sẽ xung đột với một người nào đó sử dụng trên một số mạng ở đâu đó. IANA giữ một bản ghi các số cổng đã đăng ký (0-49151). Nếu giao thức của bạn sẽ được sử dụng trên các mạng công cộng thì bạn cần phải xem xét việc đăng ký nó với IANA. Nếu bạn chỉ sử dụng nó trong mạng của riêng bạn thì hãy chọn một cổng trong khu vực này (1024-49151) và kiểm tra cổng đó với IANA register để đảm bảo cổng không được sử dụng bởi giao thức có thể được sử dụng trên mạng của bạn. Để sử dụng cá nhân, có lẽ tốt hơn nên chọn một số được chỉ định cho giao thức mà bạn biết sẽ không được sử dụng để chọn một số chưa được gán và có thể được chỉ định trong tương lai.

Không sử dụng số cổng trong phạm vi Dynamic. Các cổng này được gán bởi hệ điều hành, động và ngẫu nhiên. Nếu bạn mở một kết nối máy khách (sử dụng bind() với port = 0), bạn sẽ được gán một cổng chưa sử dụng từ dải động. Không có cách nào để đảm bảo rằng một cổng trong phạm vi này sẽ luôn miễn phí cho giao thức của bạn.

Các vấn đề liên quan