How to manually close a port

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?

1

2 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

killall -9 command_name

2

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like