หมายเลขพอร์ตสูงสุดที่หนึ่งสามารถใช้คืออะไร
หมายเลขพอร์ตสูงสุดที่หนึ่งสามารถใช้คืออะไร
คำตอบ:
หมายเลขพอร์ตเป็นจำนวนเต็ม 16 บิตที่ไม่ได้ลงชื่อดังนั้น 65535
หมายเลขพอร์ตที่ใหญ่ที่สุดคือ short ที่ไม่ได้ลงชื่อ 2 ^ 16-1: 65535
พอร์ตที่ลงทะเบียนนั้นได้รับมอบหมายจาก Internet Corporation สำหรับชื่อและหมายเลขที่กำหนด (ICANN) ให้กับการใช้งานบางอย่าง แต่ละพอร์ตที่ลงทะเบียนอยู่ในช่วง 1024–49151
ตั้งแต่วันที่ 21 มีนาคม 2544 บริษัท ตัวแทนการจดทะเบียนคือ ICANN ก่อนหน้านั้น IANA
พอร์ตที่มีตัวเลขต่ำกว่าพอร์ตที่ลงทะเบียนจะเรียกว่าพอร์ตที่รู้จักกันดี พอร์ตที่มีตัวเลขมากกว่าพอร์ตที่ลงทะเบียนจะเรียกว่าพอร์ตแบบไดนามิกและ / หรือพอร์ตส่วนตัว
ตามที่ฉันเข้าใจแล้วคุณควรใช้มากถึง 49151 เนื่องจากตั้งแต่ 49152 ถึง 65535 สงวนไว้สำหรับพอร์ตชั่วคราว
$ cat /proc/sys/net/ipv4/ip_local_port_range
32768 61000
ถ้าหากใครควรหรือไม่ควรใช้พอร์ตในช่วงพอร์ตชั่วคราวของระบบฉันสงสัยว่ามากที่สุดหากระบบปฏิบัติการเครือข่ายสมัยใหม่ทุกวันจะข้ามพอร์ตที่ใช้งานไปแล้ว
เพียงแค่การติดตามsmasheryคำตอบ 's ช่วงพอร์ตชั่วคราว (บน Linux อย่างน้อยและฉันสงสัยว่า Unices อื่นเช่นกัน) ไม่ใช่การแก้ไข สิ่งนี้สามารถควบคุมได้โดยการเขียนถึง
/proc/sys/net/ipv4/ip_local_port_range
ข้อ จำกัด เพียงอย่างเดียว (เท่าที่เกี่ยวข้องกับ IANA) คือพอร์ตที่ต่ำกว่า 1024 ถูกกำหนดให้เป็นพอร์ตที่รู้จักกันดี พอร์ตด้านบนที่ให้บริการฟรี บ่อยครั้งที่คุณจะพบว่าพอร์ตที่ต่ำกว่า 1024 ถูก จำกัด ให้เข้าถึง superuser ฉันเชื่อว่าด้วยเหตุผลนี้
ตาม RFC 793 พอร์ตนั้นเป็นบิต 16 บิตที่ไม่ได้ลงชื่อ
ซึ่งหมายความว่าช่วงคือ 0 - 65535
อย่างไรก็ตามภายในช่วงนั้นพอร์ต 0 - 1023 จะถูกสงวนไว้สำหรับวัตถุประสงค์เฉพาะ ฉันพูดโดยทั่วไปเพราะนอกเหนือจากพอร์ต 0 ปกติแล้วจะไม่มีการบังคับใช้การจอง 0-1023 TCP / UDP การใช้งานมักจะไม่บังคับใช้นอกเหนือจากการจอง 0 คุณสามารถถ้าคุณต้องการที่จะวิ่งขึ้นพอร์ต TLS เว็บเซิร์ฟเวอร์บนพอร์ต 80 หรือ 25 หรือ 65535 แทนมาตรฐาน 443 ในทำนองเดียวกันแม้สรรพสินค้ามันเป็น มาตรฐานที่เซิร์ฟเวอร์ SMTP รับฟังพอร์ต 25 คุณสามารถเรียกใช้บน 80, 443 หรืออื่น ๆ
การใช้งานส่วนใหญ่สำรอง 0 เพื่อวัตถุประสงค์เฉพาะ - การกำหนดพอร์ตแบบสุ่ม ดังนั้นในการติดตั้งใช้งานส่วนใหญ่การพูดว่า "ฟังบนพอร์ต 0" จริงๆแล้วหมายถึง "ฉันไม่สนใจพอร์ตที่ฉันใช้เพียงแค่ให้พอร์ตที่ไม่ได้กำหนดแบบสุ่มให้ฟัง"
ดังนั้นข้อ จำกัด ใด ๆ ในการใช้พอร์ตในช่วง 0-65535 รวมถึง 0 ช่วงการสำรองชั่วคราว ฯลฯ เป็นการใช้งาน (เช่น OS / ไดรเวอร์) โดยเฉพาะอย่างไรก็ตามทั้งหมดรวมถึง 0 เป็นพอร์ตที่ถูกต้องใน RFC 793
ขึ้นอยู่กับช่วงที่คุณพูดถึง แต่ช่วงไดนามิกนั้นสูงถึง 65535 หรือ 2 ^ 16-1 (16 บิต)
http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
หมายเลขที่ถูกต้องสำหรับพอร์ตคือ: 0 ถึง 2 ^ 16-1 = 0 ถึง 65535
นั่นเป็นเพราะหมายเลขพอร์ตมีความยาว 16 บิต
อย่างไรก็ตามพอร์ตจะแบ่งออกเป็น:
พอร์ตที่รู้จัก : 0 ถึง 1,023 (ใช้สำหรับบริการระบบเช่น HTTP, FTP, SSH, DHCP ... )
พอร์ตที่ลงทะเบียน / ผู้ใช้ : 1024 ถึง 49151 (คุณสามารถใช้กับเซิร์ฟเวอร์ของคุณได้ ระวังแอปพลิเคชั่นที่มีชื่อเสียง: เช่นเซิร์ฟเวอร์ระบบการจัดการฐานข้อมูล Microsoft SQL Server (Apache) หรือ Apache Derby Network Server กำลังใช้งานอยู่ในช่วงนี้นั่นคือไม่แนะนำให้กำหนดพอร์ตของ MSSQL ให้กับเซิร์ฟเวอร์ของคุณมิฉะนั้นถ้า MSSQL ทำงานอยู่ อาจจะไม่ทำงานเนื่องจากข้อขัดแย้งของพอร์ต) พอร์ต
แบบไดนามิก / ส่วนตัว : 49152 ถึง 65535 (ไม่ใช้สำหรับเซิร์ฟเวอร์แทนไคลเอนต์เช่นในบริการ NATing)
ในการเขียนโปรแกรมคุณสามารถใช้หมายเลข 0 ถึง 65535 สำหรับเซิร์ฟเวอร์ของคุณได้อย่างไรก็ตามคุณควรปฏิบัติตามช่วงที่ระบุไว้ข้างต้นมิฉะนั้นบริการระบบบางอย่างหรือบางแอปพลิเคชันจะไม่ทำงานเนื่องจากพอร์ตที่ขัดแย้งกัน
ตรวจสอบรายการพอร์ตส่วนใหญ่ได้ที่นี่: https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
ควรเป็น 65535