

Macがどこと通信をしているか調べる方法はありますか?  
ターミナルなどを使う操作でも良いのでおしえてください。

例えばスカイプを起動している時に通信しているサーバーや送信情報など。


CC BY-SA 3.0
2015-01-25T13:30:23.917
5258
2015-01-26T09:56:58.867
2015-01-25T14:15:13.673
5855
question
macos network
Macの通信状態を調べたい


ターミナル(コマンドライン)で使うのでしたら、`lsof` コマンドが適当ではないかと思います(あるいは
`netstat`)。ただし、通信先だけで通信内容を表示する機能はありません。

[code]

    $ sudo lsof -iTCP -sTCP:ESTABLISHED
    mplayer  1466 nemo 1007u  IPv4 1668456      0t0  TCP nemo:39041->pub5.jazzradio.com:http (ESTABLISHED)
    firefox 19140 nemo   35u  IPv4 1658292      0t0  TCP nemo:50422->r-100-00-000-00.twttr.com:https (ESTABLISHED)
    firefox 19140 nemo   60u  IPv4 1669084      0t0  TCP nemo:42877->stackoverflow.com:https (ESTABLISHED)
    chrome  20695 nemo  108u  IPv4 1696820      0t0  TCP nemo:53326->hogeXXsYY-in-fT.1ex00.net:https (ESTABLISHED)
    mplayer 20778 nemo 1007u  IPv4 1668456      0t0  TCP nemo:39041->pub5.jazzradio.com:http (ESTABLISHED)
    
[/code]

`lsof` のオプションについては `man lsof` でご確認下さい。  
通信内容も知りたい場合は、、まぁ、それなりのモノを使えば良いかと思います。


CC BY-SA 3.0
2015-01-25T13:59:09.187
5259
2015-01-25T14:08:41.687
2015-01-25T14:08:41.687
5258
answer


# 前置き

## アクティビティモニタ

プリインストールされているものでいえば、ユーティリティフォルダの「アクティビティモニタ」が使えます。  
起動して、通信状況を確認したいアプリケーションの名称をダブルクリック（または
⌘-I）し、表示されるウィンドウで「開いているファイルとポート」タブを選択して暫く待つと、アプリケーションが開いているファイルのリスト、そして末尾の方にポート及び通信先IPアドレスなどが表示されます。

  * [See What Files & Ports an Application is Using with Activity Monitor](http://osxdaily.com/2012/05/05/see-what-files-ports-an-application-is-using-with-activity-monitor/)

ただし。  
非常に読みづらいです。

## ネットワークユーティリティ

通信と言えば Netstat 。ユーティリティフォルダには以前 Netstat を含む「ネットワークユーティリティ」があったはずなのですが…と思って
Spotlight で探してみると見つかりました。今（ Mavericks 以降）は
`/System/Library/CoreServices/Applications/` 以下にあります。

>
> 各ツールとその使い方についてもっと詳しく知りたい場合は、ネットワークユーティリティを開いて「ヘルプ」メニューの「ネットワークユーティリティ・ヘルプ」を選択します。

  * [OS X：ネットワークユーティリティについて - Apple サポート](http://support.apple.com/ja-jp/HT5897)

しかし。  
Netstat って各アプリケーションには関連しないのですね、忘れていましたorz

## Wireshark

パケットキャプチャしたいならばもちろん Wireshark
がベストだと思います。しかし、インストールが面倒で、しかも機能が多すぎて使いづらい。通信内容を確認したいならばともかく、何がどこと通信してるか程度を知りたいときに
Wireshark を使うのは大げさです。

# 本編

先ほど引用した [See What Files & Ports an Application is Using with Activity
Monitor](http://osxdaily.com/2012/05/05/see-what-files-ports-an-application-
is-using-with-activity-monitor/) で

> The data is presented a little rough, if you want an easier to browse
> version of open network connections take a look at the free GUI tool
> [PrivateEye](https://radiosilenceapp.com/private-eye).

というコメントが載っていました。  
私もこれで初めて知ったアプリケーションなのですが、これはかなり便利です。

  * [Private Eye | Free Network Monitor for Mac](https://radiosilenceapp.com/private-eye)

![screenshot_b.png
\(968×636\)](https://radiosilenceapp.com/img/privateeye/screenshot_b.png)

通信状況が時刻とアプリケーション名と通信先（名前解決できればURLで、できなければIPアドレスで）表示されます。そして表示項目は時刻・アプリケーション・通信先でソート出来ます。また通信は、全て、受信、送信、もしくはアプリケーションを指定して表示することが出来ます。

# 結論

Private Eye 、お勧めです。  
（ただ、 ~~送信~~ 受信がキャプチャ出来てるのか、少し気に掛かります。 ~~受信~~ 送信しか表示されない…）


CC BY-SA 3.0
2015-01-25T16:37:02.177
5267
2015-01-26T09:56:58.867
2017-03-10T09:42:48.647
-1
4114
5258
answer


GUIで細かいところまで知りたいのであれば、Windowsと同様にWiresharkを利用すればいいかと思います。  
<https://www.wireshark.org/download.html>

動かすまでが面倒なので、この辺りを参考に・・・  
<http://blog.pg1x.com/entry/2014/07/08/231557>


CC BY-SA 3.0
2015-01-26T06:31:22.170
5310
2015-01-26T06:31:22.170
4371
5258
answer


Wiresharkで通信先を確認するのが良いかと思います。  
下記に手順を記載します。

X11をダウンロードし、インストール

[code]

    http://xquartz.macosforge.org/landing/
    
[/code]

Wiresharkをダウンロードし、インストール。

[code]

    https://www.wireshark.org/download.html
    
[/code]

X11の格納先を聞かれた場合

[code]

    /Applications/Utilities/XQuartz.app 
    
[/code]

に格納されているので、指定する。

インターフェースへのアクセス権を設定

[code]

    sudo chmod 0644 /dev/bpf*
    
[/code]

キャプチャするインターフェースeth0などを指定し、  
startボタンを押下で、該当インターフェースでの通信ログを取得することができます。  
![インターフェース追加設定画面](https://i.stack.imgur.com/gsvHh.png)


CC BY-SA 3.0
2015-01-26T07:00:34.903
5314
2015-01-26T07:05:57.960
2015-01-26T07:05:57.960
7590
7590
5258
answer