리눅스 ss 명령어로 network session 강제 종료하기
리눅스에서는 netstat 명령어로 현재 네트워크 세션을 확인 가능하다.
현재 tcp 세션을 확인하려면 아래와 같이 -t 옵션을 주면 된다.
snowfox@fox:~$ netstat -nt Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 192.168.100.122:22 192.168.100.121:13502 ESTABLISHED tcp 0 36 192.168.100.122:22 192.168.100.121:13500 ESTABLISHED tcp 0 0 192.168.100.122:52218 192.168.216.133:2511 ESTABLISHED
netstat 명령으로 세션을 확인 할 수는 있지만 특정 세션을 kill 하는 옵션은 없다. netstat를 대체하는 ss 명령어를 사용하면 특정 세션을 강제 종료할 수 있다.
ss 사용법은 netstat와 유사하며, 아래처럼 현재 세션을 확인 할 수 있다.
snowfox@fox:~$ ss -nt State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 0 192.168.100.122:22 192.168.100.121:13502 ESTAB 0 36 192.168.100.122:22 192.168.100.121:13500 ESTAB 0 0 192.168.100.122:52218 192.168.216.133:2511
이제 세번째 세션을 강제로 종료해 보도록 하려면, ss 명령어에 –kill 옵션을 사용한다. 이때, dport 옵션과 = 포트번호 사이는 반드시 띄어쓰기를 해야한다.
snowfox@fox:~$ sudo ss --kill dst 192.168.216.133 dport = 2511 [sudo] password for snowfox: Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port tcp ESTAB 0 0 192.168.100.122:52218 192.168.216.133:2511
다시 ss 명령어로 확인해 보면 아래처럼 세션이 종료된 것을 볼 수 있다.
snowfox@fox:~$ ss -nt State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 0 192.168.100.122:22 192.168.100.121:13502 ESTAB 0 36 192.168.100.122:22 192.168.100.121:13500