質問: プロセスのネットワーク接続を表示する プロセスの接続を表示する方法はありますか?そんな感じ:show pid ここで、showはこれを行うコマンドであり、pidはプロセスのpidです。必要な出力は、プロセスのすべての接続(リアルタイム)で構成されています。たとえば、プロセスが173.194.112.151に接続しようとすると、出力は173.194.112.151。firefoxのより具体的な例:show `pidof firefox` そして、firefoxでは、最初にgoogle.com、次にnix.stackexchange.com、最後に192.30.252.129に移動します。ブラウザーを閉じると、出力は次のようになります。google.com stackexchange.com 192.30.252.129 (他の多くの関連する接続があるため、ブラウザーではこの出力は現実的ではありませんが、これは単なる例です。)
回答: straceを探しています!私は askubuntuのこの回答 を見つけましたが、それはunixで有効です: 新しいプロセスを開始して監視するには: strace -f -e trace=network -s 10000 process arguments 既知のpidで既存のプロセスを監視するには: strace -p $pid -f -e trace=network -s 10000 それ以外の場合は、linuxに固有ですが、 隔離されたネットワーク名前空間でプロセスを実行し、wiresharkを使用してトラフィックを監視する を実行できます。これはおそらくstraceログを読むよりも便利でしょう: テストネットワーク名前空間を作成します。 ip netns add test 仮想ネットワークインターフェイスのペア(veth-aおよびveth-b)を作成します。 ip link add veth-a type veth peer name veth-b veth-aインターフェースのアクティブな名前空間を変更します。 ip link set veth-a netns test 仮想インターフェイスのipアドレスを構成します。 ip netns exec test ifconfig veth-a up 192.168.163.1 netmask 255.255.255.0 ifconfig veth-b up 192.168.163.254 netmask 255.255.255.0 テスト名前空間でルーティングを構成します。 ip netns exec test route add default gw 192.168.163.254 dev veth-a ip_forwardをアクティブにし、natルールを確立して、作成したネームスペースから着信するトラフィックを転送します(ネットワークインターフェースとsnat ipアドレスを調整する必要があります): echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -a postrouting -s 192.168.163.0/24 -o yournetworkinterface -j snat --to-source youripaddress (必要に応じてmasqueradeルールを使用することもできます) 最後に、分析したいプロセスを新しい名前空間で実行し、wiresharkも実行できます。 ip netns exec test thebinarytotest ip netns exec test wireshark veth-aインターフェイスを監視する必要があります。