Unix alan soketini taşımak socat'ın trafiği izlemesini nasıl sağlar?


12

socat Unix alan soketi üzerindeki trafiği izlemek için kullanılabilir:

sudo mv /path/to/sock /path/to/sock.original
sudo socat -t100 -x -v UNIX-LISTEN:/path/to/sock,mode=777,reuseaddr,fork UNIX-CONNECT:/path/to/sock.original

Birisinin biraz açıklayabileceğini umarak bu mekanizmanın nasıl çalıştığını tam olarak anlamıyorum. Özellikle, bir işlem zaten dinliyorsa soket dosyasının taşınması nasıl çalışır? Ayrıca, hareketten sonra: ne sonuç ne lsof /path/to/sockde /path/to/sock.originalsonuç verir.

Yanıtlar:


11

İzlemek istediğiniz sunucu şu anda dinliyorsa, bu komutların çalıştırılması gerekir /path/to/sock. Sonra, yeniden adlandırırsanız /path/to/sock, sunucu etkilenmez.

socatKomut bir adam-in-the-middle ekler. /path/to/socksİstemciler tarafından tüm trafiği dinler ve iletir /path/to/socks.original(ve işlemde günlüğe kaydeder -v).

Bu sadece akış tipi soketler için ( datagram soketleri için UNIX-RECVFROM/ kullanın ) ve sadece istemciler sadece bu soketler üzerinde çalışıyorsa, yardımcı veriler ve diğer süslü şeyler için geçerli değildir.UNIX-RECVread/write/send/recvsendmsg()

lsofyalnızca dinleme işlemlerini ( socatve dinleme ve kabul edilen soketler için sunucuyu) rapor eder . İstemcideki bağlı bir soketi soketin yoluna bağlamak genellikle mümkün değildir .

Bunu yaparsanız önce sunucuyu başlayarak daha sonra sunucu olarak o olmaz iş çalışacaktır dinlemek üzerinde /path/to/socksve aynı başarısız socatzaten dinliyor. Veya sunucuya dinlemesini söylemeniz gerekir /path/to/sock.original.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.