De vez en cuando alguien hace la siguiente pregunta: "Añadimos nuestro puerto de aplicación al archivo de servicios y ahora alguna otra aplicación lo está usando - por qué". La respuesta es porque el archivo de servicios no reserva los números de puerto. El archivo de servicios existe para que las aplicaciones puedan llamar a la función getservbyname para encontrar el número de puerto asociado a un servicio o llamar a la función getservbyport para encontrar el nombre de un servicio asociado a un número de puerto. No hay nada que impida que dos servicios diferentes se asignen al mismo número de puerto, aunque la función getservbyport sólo devolverá el primero. Tampoco hay ningún requisito de que una aplicación llame a getservbyname para averiguar qué puerto debe utilizar. El desarrollador de la aplicación puede simplemente codificar el número de puerto o permitir que se introduzca como un parámetro.
- Ejecute el comando
“netstat -numeric -all_sockets -PCB_addr”
e identificar al intruso, en este caso el número de puerto que me interesa es 13592.
netstat -numeric -all_sockets -PCB_addr
Active connections (including servers)
PCB Proto Recv-Q Send-Q Local Address Foreign Address
(state)
. . .
8e3aa300 tcp 0 0 *:13592 *:* LISTEN
. . .
ready 13:50:12
- Ejecute el comando
“analyze_system -request_line 'match dv; dump_onetcb 8e3aa300' -quit”
OpenVOS Release 17.0.1aj, analyze_system Release 17.0.1aj
Current process is 664, ptep 8E0EE800, Noah_Davids.CAC
sth_dvtx = 121 (stcp.m16_202)
- Ejecute el comando
“who_locked #stcp.m16_202”
para determinar qué proceso está usando el dispositivo.
stcp.m16_202:
Object is write locked by Barney_Rubble.Dev (login) on module
%vs#m1
executing stcp_calls.pm.