web-dev-qa-db-ja.com

ポートを手動で閉じる方法

OSXでnetstatと入力すると、接続が確立されている特定のものが表示されます。これらを閉じるために設定を変更したくはありません。ターミナルで選択したポートをすべて閉じることができるようにしたいだけです。どうやってそれをしますか?

3
tony_sid

このように開いているソケットを閉じることはできません。理想的には、接続を確立したプロセスを強制終了するだけです。

lsofnetstatはプロセスを表示しません)で接続を確認し、必要な接続ステータスで出力をフィルタリングします。

lsof -i
lsof -i | grep LISTEN
lsof -i | grep ESTABLISHED

または、ポートを取得するには、たとえば17500

lsof -i:17500

次に、プロセスを強制終了します。例えば:

$ 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

Skypeを殺す:

killall Skype

ただし、これによって接続が確立されるのを防ぐことはできません。ファイアウォールの設定で指定する必要があります。

6
slhck

fuserまたはnetstatコマンドを使用することもできます。

fuser構文は

fuser -k -n protocol portno

例:

$ fuser -k -n udp 7777

7777/udp:            11774

番号11774はpidです。

netstat例:

$ Sudo netstat -ap | grep :9050

tcp        0      0 localhost:9050          *:*       LISTEN      1613/tor

番号1613はpidで、「tor」はプロセス名です。

Pidを取得したら、killまたはkillallコマンドを使用して終了します。

pidを殺す

または

killall -9 command_name

3
Silver Moon