Estoy trabajando con una aplicación que utiliza un puerto por debajo de 1024 porque originalmente estaba destinado a ejecutarse como root
. Me gustaría depurar la aplicación en un IDE que abro como yo mismo (usuario no root) pero tengo sudo
privilegios. Tengo razones contra la depuración remota, así como también para abrir el IDE en sudo.
Entonces, la única manera de hacer esto sería permitir que un usuario no root use puertos o un puerto por debajo de 1024. ¿Se puede hacer eso y cómo?
ipfw
método, definitivamente así mejor que la solución netcat para no introducir una complejidad adicional con el manejo de la conexión.Advertencia: si su depuración solo requiere una única conexión, y no necesita depurar específicamente eventos de conexión / desconexión ...
Podría usar
netcat
(onc
en algunos sistemas).Configura su aplicación para abrir, digamos, el puerto 12345 (que puede abrir el usuario). Luego usa netcat para abrir, digamos, el puerto 123 (solo para usuarios privilegiados) y reenviar los datos al puerto 12345.
La primera mitad del comando ejecuta netcat
nc
y le dice que escuche-l
en el puerto123
. La tubería redirige los datos de la primera instancia de netcat a otra. El segundo comando se conecta a su aplicación y reenvía los datos.Tenga en cuenta que tan pronto como ejecute este comando, la segunda instancia de netcat se conectará a su aplicación. Si su aplicación va a comenzar a enviar datos de inmediato, querrá conectar a su cliente muy rápidamente y deberá tener cuidado con la forma en que se almacenan los datos.
Si desea que el cliente pueda desconectarse y volver a conectarse sin tener que reiniciar netcat, ejecute en su lugar:
El
-k
le dice a netcat que siga ejecutándose si el cliente se desconecta del puerto 123.Nuevamente, hay limitaciones con este método, ya que estás cediendo en gran medida el control del lado de la conexión al hacer que netcat lo maneje por ti. Por otro lado, es muy rápido y fácil de configurar y desmontar, si eso es todo lo que necesita.
fuente