ฉันจะจองรายการพอร์ตสำหรับแอปพลิเคชันที่กำหนดเองได้อย่างไร
ความเฉพาะเจาะจงผลิตภัณฑ์ที่ฉันสร้างมีกระบวนการมากมายและการสื่อสารระหว่างกันมากมาย
ปัญหาที่ฉันมีคือทุกครั้งที่ระบบปฏิบัติการขโมยพอร์ตของฉัน มันหายาก แต่มันเกิดขึ้น
อาจเป็นเพราะแอปพลิเคชันอื่นใช้ ":: bind" โดยไม่ได้ระบุพอร์ต
หรือบางครั้งแอปพลิเคชันของฉันเองขโมยพอร์ตเมื่อฉันเรียกว่า ":: connect" ด้วยซ็อกเก็ตที่ไม่ได้ผูกไว้ เท่าที่เห็นจากหน้าคน:
หากซ็อกเก็ตยังไม่ได้ถูกผูกไว้กับที่อยู่ในท้องถิ่นเชื่อมต่อ () จะผูกไว้กับที่อยู่ซึ่งเว้นแต่ครอบครัวที่อยู่ของซ็อกเก็ตคือ AF_UNIX เป็นที่อยู่ในท้องถิ่นที่ไม่ได้ใช้
ดังนั้นคำถามของฉันคือฉันสามารถจองพอร์ตที่ฉันต้องการเพื่อให้ระบบปฏิบัติการไม่ได้ใช้งานได้หรือไม่? สามารถทำได้ด้วย / etc / services หรือไม่ หรือมีวิธีที่แตกต่างกันอย่างไร
SELinux
ในโหมดการบังคับใช้สามารถตอบสนองความต้องการของคุณได้หรือไม่ฉันยังคงเรียนรู้อยู่ ดังนั้นเพียงแค่การคาดเดาบางทีคุณอาจจะสามารถกำหนดนโยบายของคุณเองสำหรับSELinux
การสำรองmy_server_port_t tcp 1111, 2222, 3333, 4444-4600
พอร์ตของคุณเช่น หากแอปพลิเคชันของคุณจะทำงานทุกที่ (ไม่ใช่แอปพลิเคชันเซิร์ฟเวอร์) ฉันกลัวว่าคุณจะไม่สามารถควบคุมได้ว่าSELinux
จะเปิดหรือปิด