ฉันจะเลือกหมายเลขพอร์ตสำหรับเครื่องมือใหม่ได้อย่างไร


13

ฉันกำลังสร้างเครื่องมือการทำงานร่วมกันภายในที่จะใช้เซิร์ฟเวอร์กลาง (บนอินทราเน็ต) และพอร์ตอย่างน้อยหนึ่งพอร์ตสำหรับซ็อกเก็ตการสื่อสารกับลูกค้า ฉันรู้ว่าพอร์ตจำนวนมากถูกสงวนไว้สำหรับวัตถุประสงค์เฉพาะและอื่น ๆ มีการใช้งานตามอัตภาพสำหรับการรับส่งข้อมูลบางประเภท

ฉันจะเลือกพอร์ตเริ่มต้นที่คนอื่นจะอ้างว่า "อ้างสิทธิ์" เป็นเครื่องมือได้อย่างไร มีฐานข้อมูลที่ระบุการใช้พอร์ตที่รู้จัก (ไม่เป็นทางการ) หรือไม่?


3
นี่เป็นเพียงปัญหาเท่านั้นหากมีบางสิ่งที่ใช้พอร์ตบนเซิร์ฟเวอร์อยู่แล้ว อย่างไรก็ตามพอร์ตควรกำหนดค่าได้ ฉันเห็นซอฟต์แวร์จำนวนมากมีพอร์ตฮาร์ดโค้ดซึ่งไม่ใช่สิ่งที่คุณต้องการ
devicenull

@devicenull ฉันจะมีตัวเลือกให้แทนที่ค่าเริ่มต้น
Jace Browning

3
หากเคราของคุณมีสีเทาคุณสามารถใช้ RPC และลงทะเบียนอุปกรณ์ปลายทางของคุณเอง msdn.microsoft.com/en-us/library/windows/desktop/ …
Ryan Ries

2
ถ้าคุณไม่มีเหตุผลที่ดีไม่ควรใช้โปรโตคอลที่มีอยู่ในที่ที่ทำได้ a) เป็นธรรมดาที่คิดว่าคุณสามารถทำงานได้ดีขึ้นสำหรับคนส่วนใหญ่ที่ไม่เป็นความจริง แต่แม้ว่าคุณจะทำได้ดีกว่าที่จะตอบโต้ b) เครื่องมือ / อุปกรณ์เครือข่ายได้รับการตั้งค่าให้ทำงานกับมาตรฐานที่มีอยู่แล้ว การเพิ่มสิ่งใหม่มีอุปสรรคและปริมาณงานที่ต้องทำ
JamesRyan

2
สำหรับสิ่งที่มีการทำงานร่วมกันภายในอะไร> 1024 และ <32768 (ควรป้องกันการผูกพอร์ตชั่วคราว) และไม่ได้แสดงไว้ในการลงทะเบียนพอร์ต IANA จะไม่เป็นไรให้คุณสื่อสารกับแผนกภายในของคุณได้อย่างมีประสิทธิภาพ
Matthew Ife

คำตอบ:


16

ใช่ IANA รักษาอย่างเป็นทางการให้บริการและหมายเลขพอร์ตรีจิสทรี

กระบวนการในการได้รับหมายเลขพอร์ตมอบหมายให้คุณจะถูกบันทึกไว้ในRFC 6335 กระบวนการตรวจสอบเป็นสิ่งจำเป็นสำหรับการกำหนดพอร์ตใด ๆ แต่จะเข้มงวดกว่าสำหรับพอร์ต <1024; การมอบหมายดังกล่าวต้องการ (เหนือสิ่งอื่นใด) ที่โปรโตคอลของคุณได้รับการบันทึกไว้ใน RFC

(โปรดทราบว่ากระบวนการนี้ค่อนข้างใหม่และมีพอร์ตที่ได้รับมอบหมายจำนวนมากซึ่งเป็นแบบปู่)

สำหรับ <1024 พอร์ต 1021 และ 1022 สงวนไว้สำหรับการทดลอง ด้านบนนั้นสำหรับการทดลองคุณสามารถใช้พอร์ตแบบไดนามิก> = 49152


1
ทางลัดเพื่อค้นหา "ไม่ได้กำหนด": iana.org/assignments/service-names-port-numbers/ ......
Jace Browning

3

ในกรณีส่วนใหญ่จะเป็นการดีกว่าที่จะใช้ HTTP เพราะไม่ช้าก็เร็วจะมีไฟร์วอลล์ที่คุณต้องข้าม ระบบปฏิบัติการส่วนใหญ่อนุญาตให้แบ่งที่อยู่ HTTP ออกเป็นส่วน ๆ ระหว่างกระบวนการ


2
ฉันสับสนฉันไม่สามารถใช้ HTTP ผ่านพอร์ตใด ๆ ได้หรือไม่ ฉันไม่ต้องการเริ่มต้น:80หรือ:8080เพราะมีความเป็นไปได้สูงที่จะมีการใช้งานอยู่แล้ว คำถามของฉันยังไม่ถูกต้องใช่ไหม
Jace Browning

@ JaceBrowning ใช่คุณทำได้ แต่การใช้พอร์ตอื่นเป็นเพียงประวัติย่อ :-) ระบบปฏิบัติการที่เหมาะสมใด ๆ จะช่วยให้คุณแบ่งเนมสเปซ HTTP ระหว่างแอปพลิเคชัน
Ian Ringrose
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.