Keepalive seçeneğini kullanarak socat nasıl canlı tutulur


10

İyi çalışan bu socat komutum var, ancak hiçbir veri aktarılmadığında, tam olarak 5 dakika sonra ölüyor ve neden ilk 10 saniyeden sonra her 10 saniyede bir 100 saklayıcı göndermeye ayarladığımı anlamıyorum. . Socat man sayfasından anladığım kadarıyla, bunu 1000'ler boyunca 16 dakika olan canlı tutmalı. Ayrıca, keepcnt'yi 200 olarak ayarlamaya çalışırsam, "setsockopt (7, 6, 6, {200}, 4): Geçersiz argüman" alırım, ancak internetin hiçbir yerinde bu argüman için maksimum değerin ne olduğunu bulabilirim Burada çok bariz bir şeyi kaçırmak zorundayım. Bağımsız değişkenlerle daha fazla deneme yapmak, 5mn zaman aşımı değerini hiçbir zaman değiştirmedi. Keepcnt için daha düşük değer ve keepintvl'nin daha yüksek değerlerinin ayarlanması kabul edilir, ancak görünür bir etkisi yoktur.

socat -d -d -d -v pty,link=/tmp/lp1 tcp:192.168.0.5:9100,reuseaddr,keepalive,keepidle=10,keepintvl=10,keepcnt=100
2017/05/31 08:53:01 socat [16065] I Bu ürün, OpenSSL Projesi tarafından OpenSSL Araç Kitinde kullanılmak üzere geliştirilen yazılım içermektedir. (Http://www.openssl.org/)
2017/05/31 08:53:01 socat [16065] I Bu ürün, Tim Hudson (tjh@cryptsoft.com) tarafından yazılan yazılımı içerir
2017/05/31 08:53:01 socat [16065] "Sembolik bağlantı" seçeneğini "/ tmp / lp1" olarak ayarlıyorum
2017/05/31 08:53:01 socat [16065] Openpty ({5}, {6}, {"/ dev / pts / 1"} ,,) -> 0
2017/05/31 08:53:01 socat [16065] N PTY ​​/ dev / puan / 1
2017/05/31 08:53:01 socat [16065] "So-keepalive" seçeneğini 1 olarak ayarlıyorum
2017/05/31 08:53:01 socat [16065] "tcp-keepidle" seçeneğini 10 olarak ayarlıyorum
2017/05/31 08:53:01 socat [16065] "tcp-keepintvl" seçeneğini 10 olarak ayarlıyorum
2017/05/31 08:53:01 socat [16065] "tcp-keepcnt" seçeneğini 100 olarak ayarlıyorum
2017/05/31 08:53:01 socat [16065] AF'nin açılış bağlantısı N = 2 192.168.0.5:9100
2017/05/31 08:53:01 socat [16065] Bağlantı döngüsünü başlatıyorum
2017/05/31 08:53:01 socat [16065] I soket (2, 1, 6) -> 7
2017/05/31 08:53:01 socat [16065] N yerel adresten başarıyla bağlandı AF = 2 192.168.0.4:56482
2017/05/31 08:53:01 socat [16065] Tüm çorap adreslerini çözdüm ve açtım
2017/05/31 08:53:01 socat [16065] FD'ler [5,5] ve [7,7] ile N başlangıç ​​veri aktarımı döngüsü
2017/05/31 08:58:01 socat [16065] N soket 2 (fd 7) EOF'da
2017/05/31 08:58:02 socat [16065] Zaman aşımına uğradım (0,500000 saniye içinde veri yok)
2017/05/31 08:58:02 socat [16065] Kapatıyorum (5)
2017/05/31 08:58:02 socat [16065] Kapattım (7, 2)
2017/05/31 08:58:02 socat [16065] N, durum 0'dan çıkıyor

Bazı NAT yönlendiricilerinin etkinlik yerine belirli bir süre sonra bağlantısı kesildi
Ferrybig

Yanıtlar:


5

Gönderen SoCat manpage için -t<timeout>:

Bir kanal EOF'a ulaştığında, diğer kanalın yazma kısmı kapatılır.

ignoreeofSeçeneği eklemeyi deneyin .


0

Kullandığınız Bir gibi komut DİNLE OPENSSL-LISTEN, TCP-LISTENvb forko SoCat almaya devam böylece seçeneği çocuk sürece bağlantıları devre dışı spin olacaktır.

Misal:

socat - OPENSSL-LISTEN:443,method=TLS1.2,verify=0,cert=cert.pem,key=key.pem,fork

Teşekkürler: https://unix.stackexchange.com/a/283289/15954

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.