Я хотел бы сделать то, что TCPView делает из командной строки, например, закрыть соединение, используемое определенным процессом (без завершения процесса). Есть ли способ сделать это?
http://nirsoft.net/utils/cports.html - см. раздел «Закрытие соединения из командной строки» (не пробовал).
Вы можете использовать hping3 для отправки сброса tcp с того же исходного порта на тот же IP / порт назначения, что и соединение, которое вы хотите закрыть. netstat -b
предоставит вам информацию о процессе.
Tcpkill из dsniff выполняет брутфорс в последовательности TCP, чтобы отправить RST целевому потоку. Используйте это с lsof
или netstat
чтобы получить открытые сокеты, затем убейте их:
petrus@seth:~$ sudo lsof -i TCP:80
COMMAND PID USER TYPE NODE NAME
chromium- 2674 petrus IPv4 TCP seth:44545->stackoverflow.com:www (ESTABLISHED)
petrus@seth:~$ sudo tcpkill -9 port 44545
tcpkill: listening on eth0 [port 44545]
64.34.119.12:80 > 172.22.151.34:44545: R 2186116153:2186116153(0) win 0
64.34.119.12:80 > 172.22.151.34:44545: R 2186116230:2186116230(0) win 0
64.34.119.12:80 > 172.22.151.34:44545: R 2186116384:2186116384(0) win 0
64.34.119.12:80 > 172.22.151.34:44545: R 2186116615:2186116615(0) win 0
Вы можете попробовать wkillcx.
wkillcx может закрыть активное соединение.
Вы можете скачать wkillcx по адресу: http://sourceforge.net/projects/wkillcx/
Это бесплатное ПО.
Вы также можете просмотреть пример в конце этого сообщения (он на испанском языке):
http://www.sysadmit.com/2015/01/windows-eliminar-conexiones-activas-tcp.html