Esto parece una instancia perfecta de un xyproblem . Si bien puede limitar el conjunto de puertos de cliente efímeros que usa su sistema operativo a 1 y, por lo tanto, configurar el puerto de cliente para cada conexión que desee, no sería lo suficientemente rápido como para no causar problemas de red en el camino ( Es decir, la carga de una página web puede abrir 20 conexiones en un período de tiempo muy corto.)
No está claro por qué quieres hacerlo, por lo tanto, la referencia al problema xy.
Como dije en los comentarios:
Cada vez que un programa utiliza la API del sistema operativo para obtener un socket de red, puede elegir un puerto de su agrado y controlar el error si ese puerto está ocupado o hacer que el sistema operativo extraiga de un rango de puertos disponibles y permitidos para que el programa se enlace a.
Además de la elección local de los puertos de origen, existe este nuevo concepto de Traducción de direcciones de red que hace lo que quieres como efecto secundario.
Por último, no me queda claro qué implicaciones de seguridad pueden derivar de no tener un control total sobre los puertos de origen, no cómo sería beneficioso.