มีเวลาเมื่อ IANA มอบหมายเพียงพอร์ตถึง 1023 ดูเป็นRFC1700 ครั้งหนึ่งนี่เป็นมาตรฐาน ส่วนใหญ่ฉันไม่มีปัญหาในการค้นหาเมื่อสิ่งต่าง ๆ เปลี่ยนแปลงในกระแสของ RFC แต่สำหรับคำถามของการเปลี่ยนพอร์ตจาก 1024 เป็น 49152 จากการลงทะเบียนเป็นมอบหมายฉันมาสั้น ๆ
ในแง่ของประวัติลินุกซ์มีคำถามเกิดขึ้นเกี่ยวกับ ip_local_port_range ที่เป็นค่าเริ่มต้นในปี 2007 ในเวลานั้นมันได้ตัดสินใจใช้ช่วงของ Linux ที่คุณพูดถึงเพราะกลัวว่าหมายเลขพอร์ตที่สูงอาจทำให้เกิดปัญหาและการเริ่มต้นที่ 49152 อาจน้อยเกินไป หมายเลขพอร์ตในพูล ดูสิ่งนี้และด้าย ความคิดที่แสดงออกมาในขณะนั้นคือการเริ่มต้นที่ 32768 นั้นอยู่ในจิตวิญญาณของกระบวนการของ IANA ถ้าไม่สอดคล้องอย่างเต็มที่ ในการอ่านนี้ฉันอนุมานว่านักพัฒนาสันนิษฐานว่างานที่มอบหมายส่วนใหญ่จะเกิดขึ้นจากด้านล่างของช่วงและเลื่อนขึ้น ในการเขียนครั้งนี้ฉันนับจำนวนพอร์ตที่ได้รับมอบหมายมากกว่า 100 หมายเลขเล็กน้อย (ไม่นับโปรโตคอลที่แตกต่างกันแยกต่างหาก) ระหว่าง 32768 ถึง 49152 ดังนั้นมันจึงค่อนข้างดีในช่วงห้าปีที่ผ่านมา
ฉันไม่รู้ว่าทำไมช่วงนั้นเล็กเกินไป แต่ฉันนึกได้สองเหตุผล:
- หมายเลขพอร์ตจะถูกสุ่มเพื่อป้องกันการโจมตีบางอย่าง ยิ่งมีที่อยู่ในพูลมากเท่าไหร่การป้องกันนี้ก็สามารถทำงานได้ดีขึ้น
- เซิร์ฟเวอร์กิจกรรมสูงอาจมีปัญหากับหมายเลขพอร์ตหมด ในขณะที่พอร์ตอาจไม่ยั่งยืนการใช้งานนั้นไม่ได้เกิดขึ้นทันที โดยเฉพาะอย่างยิ่งซ็อกเก็ตอาจใช้เวลาหลายนาทีหลังจากปิด TCP
โพสต์บล็อกนี้สัมผัสกับหมายเลข 2 และแนะนำคำตอบหากคุณต้องการให้ระบบ Linux ของคุณใช้พอร์ตท้องถิ่นต่างๆ (การใช้ /etc/sysctl.d เพื่อกำหนดช่วงที่คุณต้องการนอกจากนี้ยังมีรายการ ip_local_reserved_ports ที่อาจใช้งานได้หากมีข้อขัดแย้งเกิดขึ้นตรงกับรายการ / proc / sys ที่คุณอ้างถึง)
สรุป. ค่าเริ่มต้นของ Linux ไม่ตรงกับข้อกำหนด IANA ปัจจุบัน แต่ระบบ Linux ใด ๆ สามารถทำได้หากเจ้าของต้องการ
ip_local_port_range
ไม่ควรใช้ค่าของ