Quando um programa tem conexões, e depois que você mata o processo, um tempo limite pode ser definido para a porta demorar.
As variáveis do kernel envolvidas para alterar os tempos limite são:
/proc/sys/net/ipv4/tcp_tw_reuse
- This allows reusing sockets in TIME_WAIT state for new connections when it is safe from protocol viewpoint. Default value is 0 (disabled)./proc/sys/net/ipv4/tcp_fin_timeout
- This setting determines the time that must elapse before TCP/IP can release a closed connection and reuse its resources. During this TIME_WAIT state, reopening the connection to the client costs less than establishing a new connection. By reducing the value of this entry, TCP/IP can release closed connections faster, making more resources available for new connections.
Você pode alterá-lo temporariamente com:
sudo sysctl -w sudo sysctl -w net.ipv4.tcp_fin_timeout=30
sudo sysctl -w sudo sysctl -w net.ipv4.tcp_tw_reuse=1
Ou para adicionar a configuração permanentemente, edite /etc/sysctl.conf
e adicione:
net.ipv4.tcp_fin_timeout=30
net.ipv4.tcp_tw_reuse=1
Assim, será aplicado também na inicialização.
Para mais orientações, leia: Reduzir as conexões do soquete TIME_WAIT
No nível do aplicativo, você também pode especificar o SO_REUSEADDR ao abrir a meia por este post: um caso de terminação de programa">
Como dr01 afirma, outra alternativa é fazer manualmente:
service networking restart