In OSX if I type netstat I can see certain things that have an established connection. I don't want to change any settings to close these, I just want to be able to close whatever I ports I choose in the terminal. How do you do that?
12 Answers
You can't close an open socket just like this. Ideally, you would just kill the process that has established the connection.
Check your connections with lsof (netstat won't show the process), filtering the output with whatever connection status you want:
lsof -i lsof -i | grep LISTEN lsof -i | grep ESTABLISHED Or, to get the port, e.g. 17500:
lsof -i:17500 Then, just kill the process. For example:
$ lsof -i | grep "Skype" Skype 438 werner 9u IPv4 0xffffff801dd0c640 0t0 UDP localhost:52218 Skype 438 werner 42u IPv4 0xffffff80231a7a08 0t0 TCP *:29429 (LISTEN) Skype 438 werner 43u IPv4 0xffffff8022e18a40 0t0 UDP *:29429 Kill Skype:
killall Skype Note though that this won't prevent the connections from being made – something you have to specify in your Firewall preferences.
Can also use the use the fuser or netstat commands.
fuser syntax is
fuser -k -n protocol portno Example:
$ fuser -k -n udp 7777 7777/udp: 11774 The number 11774 is the pid.
netstat example:
$ sudo netstat -ap | grep :9050 tcp 0 0 localhost:9050 *:* LISTEN 1613/tor The number 1613 is the pid and "tor" is the process name.
Once you have the pid just end it using the kill or killall command
kill pid
or
2killall -9 command_name