เมื่อพัฒนาแอปที่จะรับฟังพอร์ต TCP / IP ควรเลือกพอร์ตเริ่มต้นอย่างไร สมมติว่าแอปนี้จะติดตั้งในคอมพิวเตอร์หลายเครื่องและต้องการหลีกเลี่ยงความขัดแย้งของพอร์ต
เมื่อพัฒนาแอปที่จะรับฟังพอร์ต TCP / IP ควรเลือกพอร์ตเริ่มต้นอย่างไร สมมติว่าแอปนี้จะติดตั้งในคอมพิวเตอร์หลายเครื่องและต้องการหลีกเลี่ยงความขัดแย้งของพอร์ต
คำตอบ:
ไปที่นี่และเลือกพอร์ตพร้อมคำอธิบายUnassigned
ขั้นตอนแรก: ดูรายชื่อ IANA :
คุณจะเห็นที่ส่วนท้ายของรายการ
"พอร์ตไดนามิกและ / หรือพอร์ตส่วนตัวคือพอร์ตตั้งแต่ 49152 ถึง 65535"
ดังนั้นสิ่งเหล่านี้จะเป็นการเดิมพันที่ดีกว่าของคุณ แต่เมื่อคุณเลือกแล้วคุณสามารถเปิด Google ได้ตลอดเวลาเพื่อดูว่ามีแอปยอดนิยมเพียงพอที่ "อ้างสิทธิ์" แล้วหรือยัง
หากใช้กันอย่างแพร่หลายหมายความว่าคุณต้องการป้องกันบุคคลอื่นที่ใช้แอปนี้ในอนาคตคุณสามารถสมัครเพื่อให้ IANA ทำเครื่องหมายว่าสงวนไว้สำหรับแอปของคุณได้ที่นี่
รายการครอบคลุมมากที่สุดของหมายเลขพอร์ต IANA อย่างเป็นทางการและหมายเลขพอร์ตไม่เป็นทางการที่ฉันรู้คือnmap บริการ
คุณอาจต้องการหลีกเลี่ยงการใช้พอร์ตใด ๆ จากรายการนี้ (Wikipedia)
ฉันจะเลือกหนึ่งและเมื่อแอปถูกใช้โดยคนทั่วไปหมายเลขพอร์ตจะกลายเป็นที่รู้จักและรวมอยู่ในรายการดังกล่าว
ตามที่คนอื่นพูดถึงตรวจสอบ IANA
จากนั้นตรวจสอบระบบ / etc / services ในพื้นที่ของคุณเพื่อดูว่ามีพอร์ตที่กำหนดเองที่ใช้งานอยู่หรือไม่
และโปรดอย่าฮาร์ดโค้ด ตรวจสอบให้แน่ใจว่าสามารถกำหนดค่าได้ในบางกรณี - หากไม่มีเหตุผลอื่นใดที่คุณต้องการให้มีนักพัฒนาหลายคนโดยใช้บิวด์ที่แปลเป็นภาษาท้องถิ่นของตนเองในเวลาเดียวกัน
การเลือกผลิตภัณฑ์ที่ยังไม่ได้มอบหมายจากรายการ IANA นั้นมักจะเพียงพอ แต่ถ้าคุณกำลังพูดถึงผลิตภัณฑ์ที่วางจำหน่ายในเชิงพาณิชย์คุณควรสมัครกับ IANA เพื่อรับมอบหมายให้คุณ โปรดทราบว่าขั้นตอนการดำเนินการนี้ง่าย แต่ช้า ครั้งสุดท้ายที่ฉันสมัครใช้เวลาหนึ่งปี
หากนี่เป็นแอปพลิเคชันที่คุณคาดว่าจะใช้กันอย่างแพร่หลายให้ลงทะเบียนหมายเลข ที่นี่เพื่อไม่มีใครใช้
มิฉะนั้นให้เลือกอันที่ไม่ได้ใช้แบบสุ่ม
ปัญหาในการใช้หนึ่งในช่วงไดนามิกคืออาจไม่พร้อมใช้งานเนื่องจากอาจถูกใช้สำหรับหมายเลขพอร์ตไดนามิก
ใช้รายการ iana ดาวน์โหลดไฟล์ csv จาก:
https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.csv
และใช้เชลล์สคริปต์นี้เพื่อค้นหาพอร์ตที่ไม่ได้ลงทะเบียน:
for port in {N..M}; do if ! grep -q $port service-names-port-numbers.csv; then echo $port;fi; done;
และใส่ตัวเลข 2 ตัวแทน N และ M
คุณสามารถอ้างอิงหมายเลขพอร์ตที่ใช้กันทั่วไปได้ที่นี่และพยายามอย่าใช้ของคนอื่น
ถ้าคุณ "เปิดต่อสาธารณะโดยทั่วไป" หมายความว่าคุณกำลังเปิดพอร์ตในระบบของคุณเองฉันจะคุยกับผู้ดูแลระบบของคุณเกี่ยวกับพอร์ตที่พวกเขารู้สึกสบายใจที่จะทำเช่นนั้น
เลือกพอร์ตเริ่มต้นที่ไม่รบกวน daemons และเซิร์ฟเวอร์ทั่วไป ตรวจสอบให้แน่ใจด้วยว่าหมายเลขพอร์ตไม่ได้อยู่ในรายการเป็นเวกเตอร์การโจมตีสำหรับไวรัสบางตัว - บาง บริษัท มีนโยบายที่เข้มงวดเพื่อบล็อกพอร์ตดังกล่าวไม่ว่าจะเกิดอะไรขึ้นก็ตาม สุดท้าย แต่ไม่ท้ายสุดตรวจสอบให้แน่ใจว่าสามารถกำหนดหมายเลขพอร์ตได้