Bagaimana cara memesan daftar port untuk aplikasi khusus saya?
Untuk lebih spesifik, produk yang saya buat memiliki banyak proses dan banyak komunikasi antara mereka.
Masalah yang saya alami adalah - sesekali - OS mencuri port saya. Jarang, tetapi itu terjadi.
Ini bisa jadi karena aplikasi yang berbeda telah menggunakan ":: bind" tanpa port yang ditentukan.
Atau kadang-kadang aplikasi saya sendiri mencuri port ketika saya memanggil ":: connect" dengan soket yang tidak terikat. Seperti yang terlihat dari halaman manual:
Jika soket belum terikat ke alamat lokal, sambungkan () akan mengikatnya ke alamat yang, kecuali keluarga alamat soket adalah AF_UNIX, adalah alamat lokal yang tidak digunakan.
Jadi pertanyaan saya adalah, bisakah saya memesan port yang saya butuhkan sehingga OS tidak menggunakannya? Apakah ini dapat dilakukan dengan / etc / services? Atau ada cara lain?
SELinux
dalam mode Penegakan dapat memenuhi kebutuhan Anda, saya masih belajar tentang itu. Jadi hanya menebak, mungkin Anda dapat menentukan kebijakan Anda sendiri untuk SELinux
untuk cadangan Anda port, seperti my_server_port_t tcp 1111, 2222, 3333, 4444-4600
. Jika aplikasi Anda akan berjalan di mana-mana (bukan aplikasi server), saya khawatir Anda tidak dapat mengontrol apakah SELinux
ON atau OFF.