socat

Obsah

Jméno
Synopse
Popis
Možnosti
SPECIFIKACE ADRESY
TYPY ADRES
MOŽNOSTI ADRESY
DATOVÉ HODNOTY
Příklady
Diagnostika
Soubory
PROMĚNNÉ PROSTŘEDÍ
Kredity
Verze
Chyby
VIZ TAKÉ

Jméno

socat - Víceúčelové relé (SOcket CAT)

Synopse

socat [options] <address> <address>
socat -V
socat -h[h[h]] | -?[?[?]]
filan
procan

Popis

Socat je nástroj založený na příkazovém řádku, který vytváří dva obousměrné bajtové proudy a přenáší data mezi nimi. Vzhledem k tomu, že datové proudy mohou být vytvořeny z velké sady různých typů jímky dat a zdrojů (viz typy adres), a protože mnoho možností adresy mohou být použity pro datové proudy, socat lze použít pro mnoho různých účelů.

Filan je nástroj, který tiskne informace o svých aktivních popisovačích souborů na stdout. To bylo napsáno pro ladění socat, ale může být užitečné i pro jiné účely. Pomocí možnosti -h najdete další informace.

Procan je nástroj, který tiskne informace o parametrech procesu na stdout. Byl napsán, aby lépe porozuměl některým vlastnostem procesu systému UNIX a ladění socatu, ale může být užitečný i pro jiné účely.

Životní cyklus socat instance se obvykle skládá ze čtyř fází.

Ve fázi init jsou možnosti příkazového řádku analyzovány a protokolování je inicializováno.

Během otevřené fáze socat otevře první adresu a poté druhou adresu. Tyto kroky jsou obvykle blokování; proto, zejména pro složité typy adres, jako jsou ponožky, požadavky na připojení nebo ověřování dialogy musí být dokončena před dalším krokem je spuštěn.

Ve fázi přenosu socat sleduje popisovače čtení a zápisu souborů obou streamů prostřednictvím select() a když jsou data k dispozici na jedné straně a mohou být zapsána na druhou stranu, socat ji přečte, v případě potřeby provede převody znaků nového řádku a zapíše data do deskriptoru souboru jiného datového proudu a pak pokračuje v čekání na další data v obou směrech.

Když jeden z datových proudů efektivně dosáhne EOF, začne závěrečná fáze. Socat přenáší podmínku EOF do druhého datového proudu, tj. Pro definovanou dobu socat pokračuje v přenosu dat v opačném směru, ale pak zavře všechny zbývající kanály a ukončí.

Možnosti

Socat poskytuje některé možnosti příkazového řádku, které mění chování programu. Nemají nic společného s takzvanými možnostmi adres, které se používají jako součást specifikací adresy.

-V
Vytiskněte verzi a dostupné informace o funkcích do stdout a ukončete.
-h | -?
Vytiskněte text nápovědy na stdout popisující možnosti příkazového řádku a dostupné typy adres a ukončete.
-hh | -??
Stejně jako -h, plus seznam krátkých názvů všech dostupných možností adresy. Některé možnosti jsou závislé na platformě, takže tento výstup je užitečný pro kontrolu konkrétní implementace.
-hhh | -???
Stejně jako -hh, plus seznam všech dostupných názvů možností adresy.
-d
Bez této možnosti jsou generovány pouze závažné a chybové zprávy; použití této možnosti také vytiskne varovné zprávy. Další informace naleznete v tématu DIAGNOSTIKS.
-d -d
Tiskne závažné zprávy, chyby, upozornění a oznámení.
-d -d -d
Tiskne zprávy o fatálních, chybových, výstražných, výstražných a informačních zprávách.
-d -d -d -d
Tiskne závažné zprávy, chyby, upozornění, upozornění, informace a ladění.
-D
Před zahájením fáze přenosu zaznamená informace o popisovačích souborů.
-ly[<facility>]
Zapisuje zprávy syslog místo stderr; závažnosti, jak je definována s volbou -d. S volitelným <facility>lze vybrat typ syslogu, výchozí hodnota je "démon". Knihovny třetích stran nemusí tuto možnost dodržovat.
-lf <logfile>
Zapisuje zprávy do souboru <logfile> [název souboru] místo stderr. Některé knihovny třetích stran, zejména libwrap, nemusí tuto možnost dodržovat.
-ls
Zapíše zprávy stderr (toto je výchozí). Některé knihovny třetích stran nemusí tuto možnost dodržovat, zejména libwrap se zdá, že se protokoluje pouze k syslogu.
-lp<progname>
Přepíše název programu vytištěný v chybových zprávách a používaný pro vytváření názvů proměnných prostředí.
-lu
Rozšiřuje časové razítko chybových zpráv na mikrosekundové rozlišení. Nefunguje při protokolování syslog.
-lm[<facility>]
Režim smíšeného protokolu. Během spuštění zprávy jsou vytištěny na stderr; když socat spustí přenosovou fázovou smyčku nebo režim démona (tj. po otevření všech datových proudů a před zahájením přenosu dat, nebo s poslechovými sokety s možností rozdání před prvním přijmout volání), přepne protokolování do syslogu. S volitelným <facility>lze vybrat typ syslogu, výchozí hodnota je "démon".
-lh
Přidá název hostitele do zpráv protokolu. Pokud není nastaveno názvové názvy HOSTNAME, použije hodnotu z proměnné prostředí HOSTNAME nebo z hodnoty načtené s uname()
-v
Zapíše přenesená data nejen do jejich cílových datových proudů, ale také do stderr. Výstupní formát je text s některými převody pro čitelnost a předponou "> " nebo "< " označující směry toku.
-x
Zapíše přenesená data nejen do jejich cílových datových proudů, ale také do stderr. Výstupní formát je šestnáctkový, s předponou "> " nebo "< " označující směry toku. Lze kombinovat s -v .
-r <file>
Vypíše nezpracovaná (binární) data točená zleva doprava na danou adresu.
-R <file>
Vypíše nezpracovaná (binární) data točená zprava doleva na daný soubor.
-b<size>
Nastaví blok přenosu dat <size> [size_t]. Maximálně <velikost> bajty jsou přeneseny za krok. Výchozí hodnota je 8192 bajtů.
-s
Ve výchozím nastavení socat ukončí, když došlo k chybě zabránit spuštění procesu při některé možnost nelze použít. S touto volbou je socat nedbalý s chybami a snaží se pokračovat. I s touto možností socat ukončí na fatální a přeruší pokusy o připojení při kontrole zabezpečení se nezdařilo.
-t<timeout>
Po dosažení jednoho kanálu EOF je vypnuta část druhého kanálu pro zápis. Potom socat čeká <timeout> [timeval] sekund před ukončením. Výchozí hodnota je 0,5 sekundy. Tento časový protiúčet se vztahuje pouze na adresy, kde lze zavřít část zápisu a čtení nezávisle. Při během intervalu časového pro čtení čtecí část poskytuje EOF, socat ukončí bez čekání na časový výuce.
-T<timeout>
Celkový časový rozsah nečinnosti: pokud je socat již ve smyčce přenosu a u <timeout> [timeval]sekund se nic nestalo (nebyla doručena žádná data, nedošlo k žádnému přerušení...), pak se ukončí. Užitečné s protokoly, jako je UDP, které nemohou přenášet EOF.
-u
Používá jednosměrný režim. První adresa se používá pouze pro čtení a druhá adresa se používá pouze pro psaní (příklad).
-U
Používá jednosměrný režim v opačném směru. První adresa se používá pouze pro zápis a druhá adresa se používá pouze pro čtení.
-g
Během analýzy možnosti adresy nekontrolujte, zda je tato možnost považována za užitečnou v daném adresním prostředí. Použijte jej, pokud chcete vynutit, například zařízení zásuvky možnost sériového zařízení.
-L<lockfile>
Pokud lockfile existuje, ukončí s chybou. Pokud lockfile neexistuje, vytvoří jej a pokračuje, odpojí lockfile na exit.
-W<lockfile>
Pokud lockfile existuje, čeká, dokud zmizí. Pokud lockfile neexistuje, vytvoří jej a pokračuje, odpojí lockfile na exit.
-4
Použijte ip verzi 4 v případě, že adresy implicitně nebo explicitně neurčují verzi; Toto je výchozí nastavení.
-6
Použijte IP verzi 6 v případě, že adresy implicitně nebo explicitně zadat verzi.

SPECIFIKACE ADRESY

S argumenty příkazového řádku adresy uživatel poskytuje socat pokyny a potřebné informace pro vytvoření bajtových datových proudů.

Specifikace adresy se obvykle skládá z klíčového slova typu adresa, nuly nebo více požadovaných parametrů adresy oddělených ":" od klíčového slova a od sebe navzájem a z možností nula nebo více adres oddělených ''.

Klíčové slovo určuje typ adresy (např. Pro některá klíčová slova existují synonyma ('-' pro STDIO, TCP pro TCP4). Klíčová slova jsou velká a velká písmena. U několika typů speciálních adres může být klíčové slovo vynecháno: Specifikace adresy začínající číslem jsou považovány za adresy FD (raw file deskor); pokud je před prvním ':' nebo ' nalezen '/', předpokládá se GOPEN (obecný soubor otevřený).

Požadovaný počet a typ parametrů adresy závisí na typu adresy. Například TCP4 vyžaduje specifikaci serveru (název nebo adresu) a specifikaci portu (číslo nebo název služby).

U každé adresy mohou být uvedeny nulové nebo více možností adresy. V některých ohledech ovlivňují adresu. Možnosti se skládají z klíčového slova option nebo klíčového slova option a hodnoty oddělené hodnotou =. Klíčová slova Option jsou velká a velká písmena. Pro filtrování možností, které jsou užitečné s typem adresy, je každá možnost členem jedné skupiny možností. Pro každý typ adresy je povolena sada skupin možností. Lze použít pouze možnosti, které patří do jedné z těchto skupin adres (s výjimkou).

Specifikace adresy podle výše uvedeného schématu se také nazývají specifikace jedné adresy. Dvě jednotlivé adresy lze kombinovat s "!!" a vytvořit tak adresu dvojího typu pro jeden kanál. Zde je první adresa používá socat pro čtení dat a druhá adresa pro zápis dat. Neexistuje žádný způsob, jak zadat možnost pouze jednou pro použití na obě jednotlivé adresy.

Adresy se obvykle otevírají v režimu čtení a zápisu. Pokud je adresa součástí specifikace dvou adres nebo pokud je použita možnost -u nebo -U, může být adresa použita pouze pro čtení nebo zápis. Vzhledem k tomu, že je to důležité u některých typů adres.

S socat verze 1.5.0 a vyšší, lexikální analýza se snaží zpracovat uvozovky a závorky smysluplně a umožňuje únik speciálních znaků. Pokud je nalezen jeden ze znaků ( { [ ' je nalezen odpovídající uzavírací znak - ) } ] ] ' - je hledána; mohou být také vnořeny. V rámci těchto konstrukcí, socats speciální znaky a řetězce : , !! nejsou zpracovávány zvlášť. Všechny tyto znaky a řetězce mohou být uvozeny pomocí \ nebo v rámci ""

TYPY ADRES

Tato část popisuje dostupné typy adres s jejich klíčovými slovy, parametry a sémantikou.

CREATE:<filename>
Otevře <název souboru> s creat() a použije popisovač souboru pro zápis. Tento typ adresy vyžaduje kontext pouze pro zápis, protože soubor otevřený s creat nelze číst.
Příznaky, jako je O_LARGEFILE nelze použít. Pokud je potřebujete, použijte OPEN s možnostmi vytvořit,vytvořte.
<název_souboru> musí být platnou existující nebo neexistující cestou. Pokud <název souboru> je pojmenovaný kanál, creat() může blokovat; Pokud <název_souboru> odkazuje na soket, jedná se o chybu.
Skupiny možností: FD,REG,S NÁZVEM
Užitečné možnosti: režim, uživatel, skupina, unlink-early, unlink-late, append
Viz také: OPEN, GOPEN
EXEC:<command-line>
Zasadí dílčí proces, který naváže komunikaci s nadřazeným procesem a vyvolá zadaný program s execvp() . <příkazový řádek> je jednoduchý příkaz s argumenty oddělenými jednotlivými mezerami. Pokud název programu obsahuje '/', část za poslední '/' se považuje za ARGV[0]. Pokud název programu je relativní cesta, execvp() sémantika pro nalezení programu prostřednictvím $PATH použít. Po úspěšném spuštění programu socat zapíše data do stdin procesu a čte z jeho stdout pomocí soketu domény UNIX generované socketpair() za výchozí. (příklad)
Skupiny možností: FD,SOCKET,EXEC,FORK,TERMIOS
Užitečné možnosti: cesta, fdin, fdout, chroot, su, su-d, nofork, pty, stderr, ctty, setsid, potrubí, přihlášení, sigint, sigquit
Viz také: SYSTEM
FD:<fdnum>
Používá popisovač souboru <fdnum>. Musí již existovat jako platný popisovač souboru UN*X.
Skupiny možností: FD (TERMIOS,REG,SOCKET)
Viz také: STDIO, STDIN, STDOUT, STDERR
GOPEN:<filename>
(Obecné otevření) Tento typ adresy se pokusí zpracovat libovolnou položku systému souborů s výjimkou adresářů. <název_souboru> může být relativní nebo absolutní cesta. Pokud již existuje, jeho typ je zkontrolován. V případě soketu domény UNIX se socat připojí; Pokud se připojení nezdaří, socat předpokládá soket datagramu a používá sendto() volání. Pokud položka není soket, socat otevře ji použitím O_APPEND Pokud neexistuje, je otevřen s příznakem O_CREAT jako běžný soubor(příklad).
Skupiny možností: FD,REG, SOCKET,NAMED,OPEN
Viz také: OPEN, CREATE, UNIX-CONNECT
IP-SENDTO:<host>:<protocol>
Otevře nezpracovaný soket IP. V závislosti na specifikaci hostitele nebo možnosti pfse používá protokol IP verze 4 nebo 6. Používá <protocol> k odesílání paketů do <host> [IP adresa] a přijímá pakety od hostitele, ignoruje pakety od jiných hostitelů. Protokol 255 používá nezpracovaný soket s hlavičkou IP, která je součástí dat.
Skupiny možností: FD,SOCKET,IP4,IP6
Užitečné možnosti: pf, ttl
Viz také: IP4-SENDTO, IP6-SENDTO, IP-RECVFROM, IP-RECV, UDP-SENDTO, UNIX-SENDTO
INTERFACE:<interface>
Komunikuje se sítí připojenou k rozhraní pomocí nezpracovaných paketů včetně dat na úrovni propojení. <interface> je název síťového rozhraní. V současné době k dispozici pouze na Linuxu. Skupiny možností: FD,SOCKET
Užitečné možnosti: pf, typ
Viz také: ip-recv
IP4-SENDTO:<host>:<protocol>
Stejně jako IP-SENDTO, ale vždy používá IPv4.
Skupiny možností: FD,SOCKET,IP4
IP6-SENDTO:<host>:<protocol>
Stejně jako IP-SENDTO, ale vždy používá IPv6.
Skupiny možností: FD,SOCKET,IP6
IP-DATAGRAM:<address>:<protocol>
Odešle odchozí data na zadanou adresu, která může být zejména adresou všesměrového nebo vícesměrového vysílání. Pakety přicházející do místního soketu jsou kontrolovány, pokud jejich zdrojové adresy odpovídají možnostem RANGE nebo TCPWRAP. Tento typ adresy lze například použít pro implementaci symetrického nebo asymetrického vysílání nebo vícesměrového vysílání.
Skupiny možností: FD, SOCKET, IP4, IP6, RANGE
Užitečné možnosti: bind, rozsah, tcpwrap, vysílání, ip-multicast-loop, ip-multicast-ttl, ip-multicast-if, ip-add-membership, ip-add-source-membership, ttl, tos, pf
Viz také: IP4-DATAGRAM, IP6-DATAGRAM, IP-SENDTO, IP-RECVFROM, IP-RECV, UDP-DATAGRAM
IP4-DATAGRAM:<host>:<protocol>
Stejně jako IP-DATAGRAM, ale vždy používá IPv4. (příklad)
Skupiny možností: FD,SOCKET,IP4,RANGE
IP6-DATAGRAM:<host>:<protocol>
Stejně jako IP-DATAGRAM, ale vždy používá IPv6. Upozorňujeme, že IPv6 nezná vysílání.
Skupiny možností: FD,SOCKET,IP6,RANGE
IP-RECVFROM:<protocol>
Otevře nezpracovaný soket IP <protocol>. V závislosti na možnosti pfse používá IP protokol verze 4 nebo 6. Obdrží jeden paket od nespecifikovaného partnera a může to tou druhé straně odeslat jeden nebo více paketů odpovědí. Tento režim je zvláště užitečný s možností rozvětvení, kde je každý příchozí paket - z libovolného rovnocenného kódu - zpracován vlastním dílčím procesem. To umožňuje chování podobné typické servery založené na UDP, jako je ntpd nebo pojmenované.
Upozorňujeme, že pakety odpovědí mohou být načteny jako příchozí přenosy, pokud jsou ip adresa odesílatele a příjemce identická, protože neexistuje žádné číslo portu, které by rozlišovalo sokety.
Tato adresa funguje dobře s partnery IP-SENDTO adresy (viz výše). Protokol 255 používá nezpracovaný soket s hlavičkou IP, která je součástí dat.
Viz poznámka o adresách RECVFROM.
Skupiny možností: FD,SOCKET,IP4,IP6,CHILD,RANGE
Užitečné možnosti: pf, vidlice, rozsah, ttl, vysílání
Viz také: IP4-RECVFROM, IP6-RECVFROM, IP-SENDTO, IP-RECV, UDP-RECVFROM, UNIX-RECVFROM
IP4-RECVFROM:<protocol>
Stejně jako IP-RECVFROM, ale vždy používá IPv4.
Skupiny možností: FD,SOCKET,IP4,CHILD,RANGE
IP6-RECVFROM:<protocol>
Stejně jako IP-RECVFROM, ale vždy používá IPv6.
Skupiny možností: FD,SOCKET,IP6,CHILD,RANGE
IP-RECV:<protocol>
Otevře nezpracovaný soket IP <protocol>. V závislosti na možnosti pfse používá IP protokol verze 4 nebo 6. Přijímá pakety z více nespecifikovaných partnerů a sloučí data. Žádné odpovědi nejsou možné. Může být například adresována partnery socat IP-SENDTO adres. Protokol 255 používá nezpracovaný soket s hlavičkou IP, která je součástí dat.
Skupiny možností: FD,SOCKET,IP4,IP6,RANGE
Užitečné možnosti: pf, rozsah
Viz také: IP4-RECV, IP6-RECV, IP-SENDTO, IP-RECVFROM, UDP-RECV, UNIX-RECV
IP4-RECV:<protocol>
Stejně jako IP-RECV, ale vždy používá IPv4.
Skupiny možností: FD,SOCKET,IP4,RANGE
IP6-RECV:<protocol>
Stejně jako IP-RECV, ale vždy používá IPv6.
Skupiny možností: FD,SOCKET,IP6,RANGE
OPEN:<filename>
Otevře <název souboru> pomocí systémového volání open() (příklad). Tato operace se nezdaří u soketů domény systému UNIX.
Poznámka: Tento typ adresy je v obousměrném režimu zřídka užitečný.
Skupiny možností: FD,REG,NAMED,OPEN
Užitečné možnosti: creat, excl, noatime, nofollow, append, rdonly, wronly, lock, readbytes, ignoreeof
Viz také: CREATE, GOPEN, UNIX-CONNECT
OPENSSL:<host>:<port>
Pokusí se navázat připojení SSL k <port> [služba TCP] na <host> [IP adresa] pomocí protokolu TCP/IP verze 4 nebo 6 v závislosti na specifikaci adresy, překladu názvů nebo možnosti pf.
Poznámka: Až do verze 1.7.2.4 certifikát serveru byla kontrolována pouze z důvodu platnosti proti úložiště systémových certifikátů nebo cafile nebo capath, ale ne pro shodu s názvem serveru nebo jeho IP adresy. Vzhledem k tomu, že socat verze 1.7.3.0 kontroluje, zda se peer certificate shoduje s parametrem <host> nebo hodnotou možnosti openssl-commonname. Socat se pokusí porovnat s certifikáty subject commonName a rozšíření certifikátů předmětAltName DNS názvy. Zástupné znaky v certifikátu jsou podporovány.
Skupiny možností: FD,SOCKET,IP4,IP6,TCP,OPENSSL,RETRY
Užitečné možnosti: šifra, ověřit, commonname, cafile, capath, certifikát, klíč, komprese, bind, pf, connect-timeout, sourceport, retry
Viz také: OPENSSL-LISTEN, TCP
OPENSSL-LISTEN:<port>
Naslouchá službě tcp <port> [Služba TCP]. IP verze je 4 nebo ten, který je specifikován s pf. Pokud je připojení přijato, tato adresa se chová jako server SSL.
Poznámka: Pravděpodobně budete chtít použít možnost certifikátu s touto adresou.
Poznámka: Klientský certifikát je kontrolována pouze pro platnost proti cafile nebo capath, ale ne pro zápas s názvem klienta nebo jeho IP adresu!
Skupiny možností: FD,SOCKET,IP4,IP6,TCP,Listen,OPENSSL,CHILD,RANGE,RETRY
Užitečné možnosti: pf, šifra, ověřit, commonname, cafile, capath, certifikát, klíč, komprese, vidlice, bind, rozsah, tcpwrap, su, reuseaddr, opakování
Viz také: OPENSSL, TCP-LISTEN
OPENSSL-DTLS-CLIENT:<host>:<port>
Pokusí se navázat připojení DTLS k <port> [UDP service] na <host> [IP adresa] pomocí UDP/IP verze 4 nebo 6 v závislosti na specifikaci adresy, překladu názvů nebo možnosti pf.
Socat zkontroluje peer certifikáty subjectAltName nebo commonName proti možnosti adresy openssl-commonname nebo název hostitele. Zástupné znaky v certifikátu jsou podporovány.
Použijte možnost socat -b, aby se datagramy dostatečně malé, aby se vešly s režií v síti. Použijte možnost -T, abyste zabránili neomezenému zavěšení, když peer šel tiše dolů.
Skupiny možností: FD,SOCKET,IP4,IP6,OPENSSL,RETRY
Užitečné možnosti: šifra, ověřit, commonname, cafile, capath, certifikát, klíč, komprese, bind, pf, sourceport, opakování
Viz také: OPENSSL-DTLS-SERVER, OPENSSL-CONNECT, UDP-CONNECT
OPENSSL-DTLS-SERVER:<port>
Naslouchá službě UDP <port> [UDP . IP verze je 4 nebo ten, který je specifikován s pf. Pokud je připojení přijato, tato adresa se chová jako server DTLS.
Poznámka: Pravděpodobně budete chtít použít možnost certifikátu s touto adresou.
Poznámka: Klientský certifikát je kontrolována pouze pro platnost proti cafile nebo capath, ale ne pro zápas s názvem klienta nebo jeho IP adresu! Použijte možnost socat -b, aby se datagramy dostatečně malé, aby se vešly s režií v síti. Použijte možnost -T, abyste zabránili neomezenému zavěšení, když peer šel tiše dolů.
Skupiny možností: FD,SOCKET,IP4,IP6,LISTEN,OPENSSL,CHILD,RANGE,RETRY
Užitečné možnosti: pf, šifra, ověřit, commonname, cafile, capath, certifikát, klíč, komprese, vidlice, bind, rozsah, tcpwrap, su, reuseaddr, opakování
Viz také: OPENSSL-DTLS-CLIENT, OPENSSL-LISTEN, UDP-LISTEN
PIPE:<filename>
Pokud <název souboru> již existuje, je otevřen. Pokud neexistuje, je vytvořen a otevřen pojmenovaný kanál. Počínaje socat verze 1.4.3, pojmenovaný kanál je odebrán, když je adresa uzavřena (ale viz možnost unlink-close
Poznámka: Pokud se potrubí používá pro čtení i zápis, funguje jako služba echo.
Poznámka: Když se kanál používá pro čtení i zápis a socat se pokusí napsat více bajtů, než může tlumit potrubí (Linux 2.4: 2048 bajtů), socat může blokovat. Zvažte použití možnosti socat, např., -b 2048
Skupiny možností: FD,NAMED,OPEN
Užitečné možnosti: rdonly, nonblock, skupina, uživatel, režim, unlink-brzy
Viz také: nepojmenovaná trubka
PIPE
Vytvoří nepojmenovaný kanál a použije jej pro čtení a zápis. Funguje to jako ozvěna, protože vše, co je napsáno, se okamžitě objeví jako přečtená data.
Poznámka: Když se socat pokusí napsat více bajtů, než může kanál fronty (Linux 2.4: 2048 bajtů), socat může blokovat. Vezměme si například použití možnosti -b 2048
Skupiny možností: FD
Viz také: pojmenovaný kanál
PROXY:<proxy>:<hostname>:<port>
Připojí se k proxy serveru HTTP na portu 8080 pomocí protokolu TCP/IP verze 4 nebo 6 v závislosti na specifikaci adresy, překladu názvů nebo možnosti pfa odešle požadavek CONNECT pro hostname:port. Pokud proxy uděluje přístup a úspěšně se připojí k cíli, přenos dat mezi socat a cíl můžete spustit. Všimněte si, že provoz nemusí být HTTP, ale může být libovolný protokol.
Skupiny možností: FD,SOCKET,IP4,IP6,TCP,HTTP,RETRY
Užitečné možnosti: proxyport, ignorecr, proxyauth, resolve, crnl, bind, connect-timeout, mss, sourceport, retry
Viz také: SOCKS, TCP
PTY
Generuje pseudo terminál (pty) a používá jeho hlavní stranu. Jiný proces může otevřít pty slave stranu pomocí jako sériová linka nebo terminál. (příklad). Pokud jsou k dispozici jak ptmx, tak openpty mechanismy, použije se ptmx (POSIX).
Skupiny možností: FD,NAMED,PTY,TERMIOS
Užitečné možnosti: odkaz, openpty, wait-slave, mode, user, group
Viz také: UNIX-LISTEN, PIPE, EXEC, SYSTEM
READLINE
Používá GNU readline a historii na stdio, aby umožnila editaci a opakované použití vstupních řádků(příklad). To vyžaduje GNU readline a knihovny historie. Všimněte si, že stdio by mělo být (pseudo) koncové zařízení, jinak readline nezdá fungovat.
Skupiny možností: FD,READLINE,TERMIOS
Užitečné možnosti: historie, noecho
Viz také: STDIO
SCTP-CONNECT:<host>:<port>
Vytvoří připojení datového proudu SCTP k zadanému <hostiteli> [IP adrese] a <port> [služba TCP] pomocí protokolu IP verze 4 nebo 6 v závislosti na specifikaci adresy, překladu názvů nebo možnosti pf..
Skupiny možností: FD,SOCKET,IP4,IP6,SCTP,CHILD,RETRY
Užitečné možnosti: bind, pf, connect-timeout, tos, mtudiscover, sctp-maxseg, sctp-nodelay, nonblock, sourceport, retry, readbytes
Viz také: SCTP4-CONNECT, SCTP6-CONNECT, SCTP-Listen, TCP-CONNECT
SCTP4-CONNECT:<host>:<port>
Stejně jako SCTP-CONNECT, ale podporuje pouze protokol IPv4.
Skupiny možností: FD,SOCKET,IP4,SCTP,CHILD,RETRY
SCTP6-CONNECT:<host>:<port>
Podobně jako SCTP-CONNECT, ale podporuje pouze protokol IPv6.
Skupiny možností: FD,SOCKET,IP6,SCTP,CHILD,RETRY
SCTP-LISTEN:<port>
Naslouchá službě <port> [TCP] a přijímá připojení SCTP. Verze IP je 4 nebo ta, která je určena s možností adresy pf, možnost socat (-4, -6) nebo proměnná prostředí SOCAT_DEFAULT_LISTEN_IP. Všimněte si, že otevření této adresy obvykle blokuje, dokud se klient nepřipojí.
Skupiny možností: FD,SOCKET,LISTEN,CHILD,RANGE,IP4,IP6,SCTP,RETRY
Užitečné možnosti: crnl, vidlice, bind, rozsah, tcpwrap, pf, max-children, nevyřízené položky, accept-timeout, sctp-maxseg, sctp-nodelay, su, reuseaddr, retry, cool-write
Viz také: SCTP4-LISTEN, SCTP6-LISTEN, TCP-LISTEN, SCTP-CONNECT
SCTP4-LISTEN:<port>
Stejně jako SCTP-LISTEN, ale podporuje pouze protokol IPv4.
Skupiny možností: FD,SOCKET,LISTEN,CHILD,RANGE,IP4,SCTP,RETRY
SCTP6-LISTEN:<port>
Stejně jako SCTP-LISTEN, ale podporuje pouze protokol IPv6.
Skupiny možností: FD,SOCKET,LISTEN,CHILD,RANGE,IP6,SCTP,RETRY
SOCKET-CONNECT:<domain>:<protocol>:<remote-address>
Vytvoří soket datového proudu pomocí první a druhé dané socket parametry a SOCK_STREAM (viz man socket(2)) a připojí se ke vzdálené adrese. Dva parametry soketu musí být určeny int čísla. Projděte si dokumentaci operačního systému a přidejte soubory, abyste našli příslušné hodnoty. Vzdálená adresa musí být reprezentace dat struktury sockaddr bez sa_family a (BSD) sa_len součásti.
Vezměte prosím na vědomí, že můžete - kromě možností uvedených skupin - také použít možnosti vyšší úrovně protokolů, když použijete možnost socat -g.
Skupiny možností: FD,SOCKET,CHILD,RETRY
Užitečné možnosti: bind, setsockopt,
Viz také: TCP, UDP-CONNECT, UNIX-CONNECT, SOCKET-LISTEN, SOCKET-SENDTO
SOCKET-DATAGRAM:<domain>:<type>:<protocol>:<remote-address>
Vytvoří soket datagramu pomocí prvních tří parametrů soketu (viz man socket(2)) a odesílá odchozí data na vzdálenou adresu. Parametry tří soketů musí být určeny čísly int. Projděte si dokumentaci operačního systému a přidejte soubory, abyste našli příslušné hodnoty. Vzdálená adresa musí být reprezentace dat struktury sockaddr bez sa_family a (BSD) sa_len součásti.
Vezměte prosím na vědomí, že můžete - kromě možností uvedených skupin - také použít možnosti vyšší úrovně protokolů, když použijete možnost socat -g.
Skupiny možností: FD,SOCKET,RANGE
Užitečné možnosti: bind, rozsah, setsockopt,
Viz také: UDP-DATAGRAM, IP-DATAGRAM, SOCKET-SENDTO, SOCKET-RECV, SOCKET-RECVFROM
SOCKET-LISTEN:<domain>:<protocol>:<local-address>
Vytvoří soket datového proudu pomocí první a druhé dané soket parametry a SOCK_STREAM (viz man socket(2)) a čeká na příchozí připojení na místní adrese. Dva parametry soketu musí být určeny int čísla. Projděte si dokumentaci operačního systému a přidejte soubory, abyste našli příslušné hodnoty. Místní adresa musí být reprezentace dat struktury sockaddr bez sa_family a (BSD) sa_len součásti.
Vezměte prosím na vědomí, že můžete - kromě možností uvedených skupin - také použít možnosti vyšší úrovně protokolů, když použijete možnost socat -g.
Skupiny možností: FD,SOCKET,Listen,RANGE,CHILD,RETRY
Užitečné možnosti: setsockopt, setsockopt-poslouchat,
Viz také: TCP, UDP-CONNECT, UNIX-CONNECT, SOCKET-LISTEN, SOCKET-SENDTO, SOCKET-SENDTO
SOCKET-RECV:<domain>:<type>:<protocol>:<local-address>
Vytvoří soket pomocí tří daných parametrů soketu (viz man socket(2)) a sváže jej na <local-address>. Přijímá příchozí data. Tyto tři parametry musí být určeny čísly int. Projděte si dokumentaci operačního systému a přidejte soubory, abyste našli příslušné hodnoty. Místní adresa musí být reprezentace dat struktury sockaddr bez sa_family a (BSD) sa_len součásti.
Skupiny možností: FD,SOCKET,RANGE
Užitečné možnosti: rozsah, setsockopt, setsockopt-poslouchat
Viz také: UDP-RECV, IP-RECV, UNIX-RECV, SOCKET-DATAGRAM, SOCKET-SENDTO, SOCKET-RECVFROM
SOCKET-RECVFROM:<domain>:<type>:<protocol>:<local-address>
Vytvoří soket pomocí tří daných parametrů soketu (viz man socket(2)) a sváže jej na <local-address>. Přijme příchozí data a odešle odpovědi zpět odesílateli. První tři parametry musí být zadány jako int čísla. Projděte si dokumentaci operačního systému a přidejte soubory, abyste našli příslušné hodnoty. Místní adresa musí být reprezentace dat struktury sockaddr bez sa_family a (BSD) sa_len součásti.
Viz poznámka o adresách RECVFROM.
Skupiny možností: FD,SOCKET,CHILD,RANGE
Užitečné možnosti: vidlice, rozsah, setsockopt, setsockopt-poslouchat
Viz také: UDP-RECVFROM, IP-RECVFROM, UNIX-RECVFROM, SOCKET-DATAGRAM, SOCKET-SENDTO, SOCKET-RECV
SOCKET-SENDTO:<domain>:<type>:<protocol>:<remote-address>
Vytvoří soket pomocí tří daných parametrů soketu (viz man socket(2)). Odešle odchozí data na danou adresu a přijme odpovědi. Tři parametry musí být zadány jako int čísla. Projděte si dokumentaci operačního systému a přidejte soubory, abyste našli příslušné hodnoty. Vzdálená adresa musí být reprezentace dat struktury sockaddr bez sa_family a (BSD) sa_len součásti.
Skupiny možností: FD,SOCKET
Užitečné možnosti: vázat, setsockopt, setsockopt-poslouchat
Viz také: UDP-SENDTO, IP-SENDTO, UNIX-SENDTO, SOCKET-DATAGRAM, SOCKET-RECV SOCKET-RECVFROM
SOCKS4:<socks-server>:<host>:<port>
Připojuje se přes <socks-server> [IP adresa] k <host> [IPv4 address] na <port> [TCP service], pomocí protokolu socks verze 4 přes IP verze 4 nebo 6 v závislosti na specifikaci adresy, překladu názvů nebo možnosti pf (příklad).
Skupiny možností: FD,SOCKET,IP4,IP6,TCP,SOCKS4,Retry
Užitečné možnosti: socksuser, socksport, sourceport, pf, retry
Viz také: SOCKS4A, PROXY, TCP
SOCKS4A:<socks-server>:<host>:<port>
jako SOCKS4, ale používá ponožky protokol verze 4a, takže ponechává rozlišení názvu hostitele na serveru ponožek.
Skupiny možností: FD,SOCKET,IP4,IP6,TCP,SOCKS4,Retry
STDERR
Používá popisovač souboru 2.
Skupiny možností: FD (TERMIOS,REG,SOCKET)
Viz také: FD
STDIN
Používá popisovač souboru 0.
Skupiny možností: FD (TERMIOS,REG,SOCKET)
Užitečné možnosti: readbytes
Viz také: FD
STDIO
Používá popisovač souboru 0 pro čtení a 1 pro zápis.
Skupiny možností: FD (TERMIOS,REG,SOCKET)
Užitečné možnosti: readbytes
Viz také: FD
STDOUT
Používá popisovač souboru 1.
Skupiny možností: FD (TERMIOS,REG,SOCKET)
Viz také: FD
SYSTEM:<shell-command>
Rozdvojuje dílčí proces, který naváže komunikaci s nadřazeným procesem a vyvolá zadaný program se system() . Vezměte prosím na vědomí, že <shell-command> [string] nesmí obsahovat ',' nebo "!!" a že meta znaky prostředí mohou být chráněny. Po úspěšném spuštění programu socat zapíše data do stdin procesu a čte z jeho stdout.
Skupiny možností: FD,SOCKET,EXEC,FORK,TERMIOS
Užitečné možnosti: cesta, fdin, fdout, chroot, su, su-d, nofork, pty, stderr, ctty, setsid, potrubí, sigint, sigquit
Viz také: EXEC
TCP:<host>:<port>
Připojuje se k <port> [Služba TCP] na <host> [IP adresa] pomocí protokolu TCP/IP verze 4 nebo 6 v závislosti na specifikaci adresy, překladu názvů nebo možnosti pf.
Skupiny možností: FD,SOCKET,IP4,IP6,TCP,RETRY
Užitečné možnosti: crnl, bind, pf, connect-timeout, tos, mtudiscover, mss, nodelay, nonblock, sourceport, retry, readbytes
Viz také: TCP4, TCP6, TCP-LISTEN, UDP, SCTP-CONNECT, UNIX-CONNECT
TCP4:<host>:<port>
Stejně jako TCP, ale podporuje pouze protokol IPv4(příklad).
Skupiny možností: FD,SOCKET,IP4,TCP,RETRY
TCP6:<host>:<port>
Stejně jako TCP, ale podporuje pouze protokol IPv6.
Skupiny možností: FD,SOCKET,IP6,TCP,RETRY
TCP-LISTEN:<port>
Naslouchá službě <port> [TCP] a přijímá připojení TCP/IP. Verze IP je 4 nebo ta, která je určena s možností adresy pf, možnost socat (-4, -6) nebo proměnná prostředí SOCAT_DEFAULT_LISTEN_IP. Všimněte si, že otevření této adresy obvykle blokuje, dokud se klient nepřipojí.
Skupiny možností: FD,SOCKET,LISTEN,CHILD,RANGE,IP4,IP6,TCP,RETRY
Užitečné možnosti: crnl, vidlice, bind, rozsah, tcpwrap, pf, max-children, nevyřízené položky, accept-timeout, mss, su, reuseaddr, opakování, cool-write
Viz také: TCP4-LISTEN, TCP6-LISTEN, UDP-LISTEN, SCTP-LISTEN, UNIX-LISTEN, OPENSSL-LISTEN, TCP-CONNECT
TCP4-LISTEN:<port>
Stejně jako TCP-LISTEN, ale podporuje pouze protokol IPv4(příklad).
Skupiny možností: FD,SOCKET,LISTEN,CHILD,RANGE,IP4,TCP,RETRY
TCP6-LISTEN:<port>
Stejně jako TCP-LISTEN, ale podporuje pouze protokol IPv6.
Další užitečná možnost: ipv6použduje
Skupiny možností: FD,SOCKET,LISTEN,CHILD,RANGE,IP6,TCP,RETRY
TUN[:<if-addr>/<bits>]
Vytvoří zařízení Linux TUN/TAP a volitelně mu přiřadí adresu a masku sítě danou parametry. Výsledné síťové rozhraní je téměř připraveno k použití jinými procesy; socat slouží své "drátěné straně". Tato adresa vyžaduje přístup pro čtení a zápis k klonovacímu zařízení tunelového propojení, obvykle /dev/net/tun , a také oprávnění k nastavení některých ioctl()s. Možnost iff-up je nutné okamžitě aktivovat rozhraní!
Poznámka: Pokud máte v úmyslu přenášet pakety mezi dvěma "drátovými stranami" Socat, potřebujete protokol, který zachovává hranice paketů, např. Protokol TCP může pracovat s možností nodelay.
Skupiny možností: FD,NAMED,OPEN,TUN
Užitečné možnosti: iff-up, tun-device, tun-name, tun-type, iff-no-pi
Viz také: ip-recv
UDP:<host>:<port>
Připojuje se k <port> [UDP service] na <host> [IP adresa] pomocí UDP/IP verze 4 nebo 6 v závislosti na specifikaci adresy, překladu názvů nebo možnosti pf.
Vezměte prosím na vědomí, že vzhledem k vlastnostem protokolu UDP není navázáno žádné skutečné připojení; data musí být odeslána pro "připojení" k serveru a nelze přepravovat žádnou podmínku konce souboru.
Skupiny možností: FD,SOCKET,IP4,IP6
Užitečné možnosti: ttl, tos, bind, sourceport, pf
Viz také: UDP4, UDP6, UDP-LISTEN, TCP, IP
UDP4:<host>:<port>
Stejně jako UDP, ale podporuje pouze protokol IPv4.
Skupiny možností: FD,SOCKET,IP4
UDP6:<host>:<port>
Stejně jako UDP, ale podporuje pouze protokol IPv6.
Skupiny možností: FD,SOCKET,IP6
UDP-DATAGRAM:<address>:<port>
Odešle odchozí data na zadanou adresu, která může být zejména adresou všesměrového nebo vícesměrového vysílání. Pakety přicházející na místní soketu jsou kontrolovány na správný vzdálený port pouze při použití sourceport možnosti (to je změna s Socat verze 1.7.4.0) a pokud jejich zdrojové adresy odpovídají RANGE nebo TCPWRAP možnosti. Tento typ adresy lze například použít pro implementaci symetrického nebo asymetrického vysílání nebo vícesměrového vysílání.
Skupiny možností: FD,SOCKET,IP4,IP6,RANGE
Užitečné možnosti: bind, rozsah, tcpwrap, vysílání, ip-multicast-loop, ip-multicast-ttl, ip-multicast-if, ip-add-membership, ip-add-source-membership, ttl, tos, sourceport, pf
Viz také: UDP4-DATAGRAM, UDP6-DATAGRAM, UDP-SENDTO, UDP-RECVFROM, UDP-RECV, UDP-CONNECT, UDP-LISTEN, IP-DATAGRAM
UDP4-DATAGRAM:<address>:<port>
Stejně jako UDP-DATAGRAM, ale podporuje pouze protokol IPv4 (příklad1, příklad2).
Skupiny možností: FD,SOCKET,IP4, RANGE
UDP6-DATAGRAM:<address>:<port>
Stejně jako UDP-DATAGRAM, ale podporuje pouze protokol IPv6.
Skupiny možností: FD,SOCKET,IP6,RANGE
UDP-LISTEN:<port>
Čeká na paket UDP/IP přicházející na <port> [Služba UDP] a "připojí se" zpět k odesílateli. Přijatá verze IP je 4 nebo ta, která je specifikována s možností pf. Vezměte prosím na vědomí, že vzhledem k vlastnostem protokolu UDP není navázáno žádné skutečné připojení; data musí nejprve dorazit z druhé strany a nelze přenést žádnou podmínku konce souboru. Všimněte si, že otevření této adresy obvykle blokuje, dokud se klient nepřipojí.
Skupiny možností: FD,SOCKET,LISTEN,CHILD,RANGE,IP4,IP6
Užitečné možnosti: vidlice, bind, rozsah, pf
Viz také: UDP, UDP4-LISTEN, UDP6-LISTEN, TCP-LISTEN
UDP4-LISTEN:<port>
Stejně jako UDP-LISTEN, ale podporují pouze protokol IPv4.
Skupiny možností: FD,SOCKET,LISTEN,CHILD,RANGE,IP4
UDP6-LISTEN:<port>
Stejně jako UDP-LISTEN, ale podporují pouze protokol IPv6.
Skupiny možností: FD,SOCKET,LISTEN,CHILD,RANGE,IP6
UDP-SENDTO:<host>:<port>
Komunikuje se zadanou partnerskou soketou definovanou parametrem <port> [UDP service] na adrese <host> [IP adresa], pomocí protokolu UDP/IP verze 4 nebo 6 v závislosti na specifikaci adresy, překladu názvů nebo možnosti pf. Odesílá pakety a přijímá pakety pouze z tohoto partnerského soketu. Tato adresa efektivně implementuje klienta datagramu. Funguje to dobře s socat UDP-RECVFROM a UDP-RECV adresu vrstevníky.
Skupiny možností: FD,SOCKET,IP4,IP6
Užitečné možnosti: ttl, tos, bind, sourceport, pf
Viz také: UDP4-SENDTO, UDP6-SENDTO, UDP-RECVFROM, UDP-RECV, UDP-CONNECT, UDP-LISTEN, IP-SENDTO
UDP4-SENDTO:<host>:<port>
Stejně jako UDP-SENDTO, ale podporuje pouze protokol IPv4.
Skupiny možností: FD,SOCKET,IP4
UDP6-SENDTO:<host>:<port>
Stejně jako UDP-SENDTO, ale podporuje pouze protokol IPv6.
Skupiny možností: FD,SOCKET,IP6
UDP-RECVFROM:<port>
Vytvoří soket UDP na <port> [UDP service] pomocí UDP/IP verze 4 nebo 6 v závislosti na možnosti pf. Obdrží jeden paket od nespecifikovaného partnera a může to tou druhé straně odeslat jeden nebo více paketů odpovědí. Tento režim je zvláště užitečný s možností rozvětvení, kde je každý příchozí paket - z libovolného rovnocenného kódu - zpracován vlastním dílčím procesem. To umožňuje chování podobné typické servery založené na UDP, jako je ntpd nebo pojmenované. Tato adresa funguje dobře s socat UDP-SENDTO adresu vrstevníky.
Poznámka: Pokud se druhá adresa nezdaří před vstupem do přenosové smyčky, paket je vynechán. Použijte možnost opakovat nebo navždy na druhou adresu, aby se zabránilo ztrátě dat.
Skupiny možností: FD,SOCKET,IP4,IP6,CHILD,RANGE
Užitečné možnosti: vidlice, ttl, tos, bind, sourceport, pf
Viz také: UDP4-RECVFROM, UDP6-RECVFROM, UDP-SENDTO, UDP-RECV, UDP-CONNECT, UDP-LISTEN, IP-RECVFROM, UNIX-RECVFROM
UDP4-RECVFROM:<port>
Stejně jako UDP-RECVFROM, ale podporuje pouze protokol IPv4.
Skupiny možností: FD,SOCKET,IP4,CHILD,RANGE
UDP6-RECVFROM:<port>
Stejně jako UDP-RECVFROM, ale podporuje pouze protokol IPv6.
Skupiny možností: FD,SOCKET,IP6,CHILD,RANGE
UDP-RECV:<port>
Vytvoří soket UDP na <port> [UDP service] pomocí UDP/IP verze 4 nebo 6 v závislosti na možnosti pf. Přijímá pakety z více nespecifikovaných partnerů a sloučí data. Žádné odpovědi nejsou možné. Funguje dobře, například, socat UDP-SENDTO adresu vrstevníků; chová se podobně jako syslog server.
Poznámka: Pokud potřebujete možnost vidlice, použijte místo toho UDP-RECVFROM v jednosměrném režimu (s možností -u).
Skupiny možností: FD,SOCKET,IP4,IP6,RANGE
Užitečné možnosti: pf, bind, sourceport, ttl, tos
Viz také: UDP4-RECV, UDP6-RECV, UDP-SENDTO, UDP-RECVFROM, UDP-CONNECT, UDP-LISTEN, IP-RECV, UNIX-RECV
UDP4-RECV:<port>
Stejně jako UDP-RECV, ale podporuje pouze protokol IPv4.
Skupiny možností: FD,SOCKET,IP4,RANGE
UDP6-RECV:<port>
Stejně jako UDP-RECV, ale podporuje pouze protokol IPv6.
Skupiny možností: FD,SOCKET,IP6,RANGE
UNIX-CONNECT:<filename>
Připojí se k <název_souboru> za předpokladu, že se jedná o soket domény SYSTÉMU UNIX. Pokud <název_souboru> neexistuje, jedná se o chybu; Pokud <název_souboru> není soket domény UNIX, jedná se o chybu; Pokud <název_souboru> je soket domény UNIX, ale žádný proces naslouchá, jedná se o chybu.
Skupiny možností: FD,SOCKET,NAMED,RETRY,UNIX
) Užitečné možnosti: vázat
Viz také: UNIX-LISTEN, UNIX-SENDTO, TCP
UNIX-LISTEN:<filename>
Naslouchá <název_souboru> pomocí soketu datového proudu domény systému UNIX a přijímá připojení. Pokud <název_souboru> existuje a není soket, jedná se o chybu. Pokud <název_souboru> existuje a jedná se o soket domény SYSTÉMU UNIX, vazba na adresu se nezdaří (použijte možnost zrušit propojení brzy!). Všimněte si, že otevření této adresy obvykle blokuje, dokud se klient nepřipojí. Počínaje socat verze 1.4.3, položka systému souborů je odstraněna, když je tato adresa uzavřena (ale viz možnost unlink-close) (příklad).
Skupiny možností: FD,SOCKET,NAMED,LISTEN,CHILD,RETRY,UNIX
Užitečné možnosti: vidlice, umask, režim, uživatel, skupina, unlink-brzy
Viz také: UNIX-CONNECT, UNIX-RECVFROM, UNIX-RECV, TCP-LISTEN
UNIX-SENDTO:<filename>
Komunikuje se zadanou partnerským soketem definovaným [<název_souboru>] za předpokladu, že se jedná o soket datagram domény SYSTÉMU UNIX. Odesílá pakety a přijímá pakety pouze z tohoto partnerského soketu. Vezměte prosím na vědomí, že může být nutné svázat místní soket s adresou (např. /tmp/sock1, která do té doby nesmí existovat). Tento typ adresy funguje dobře s socat UNIX-RECVFROM a UNIX-RECV adresními partnery.
Skupiny možností: FD,SOCKET,NAMED,UNIX
Užitečné možnosti: vázat
Viz také: UNIX-RECVFROM, UNIX-RECV, UNIX-CONNECT, UDP-SENDTO, IP-SENDTO
UNIX-RECVFROM:<filename>
Vytvoří soket datagram domény systému UNIX [<název_souboru>]. Přijme jeden paket a může to tou druhé straně odeslat jeden nebo více paketů odpovědí. Tento režim je zvláště užitečný s možností rozvětvení, kde je každý příchozí paket - z libovolného rovnocenného kódu - zpracován vlastním dílčím procesem. Tato adresa funguje dobře s socat UNIX-SENDTO adresu vrstevníky.
Skupiny možností: FD,SOCKET,NAMED,CHILD,UNIX
Viz poznámka o adresách RECVFROM.
Užitečné možnosti: vidlice
Viz také: UNIX-SENDTO, UNIX-RECV, UNIX-LISTEN, UDP-RECVFROM, IP-RECVFROM
UNIX-RECV:<filename>
Vytvoří soket datagram domény systému UNIX [<název_souboru>]. Přijímá pakety z více nespecifikovaných partnerů a sloučí data. Žádné odpovědi nejsou možné. Může být například adresován partnery socat UNIX-SENDTO adres. Chová se podobně jako syslog server.
Skupiny možností: FD,SOCKET,NAMED,UNIX
Viz také: UNIX-SENDTO, UNIX-RECVFROM, UNIX-LISTEN, UDP-RECV, IP-RECV
UNIX-CLIENT:<filename>
Komunikuje se zadanou partnerským soketem definovaným [<název_souboru>] za předpokladu, že se jedná o soket domény UNIX. Nejprve se pokusí připojit a pokud se to nezdaří, předpokládá, že je datovýgram soketu, tedy podporuje oba typy.
Skupiny možností: FD,SOCKET,NAMED,UNIX
Užitečné možnosti: vázat
Viz také: UNIX-CONNECT, UNIX-SENDTO, GOPEN
VSOCK-CONNECT:<cid>:<port>
Vytvoří připojení datového proudu VSOCK k zadanému <cid> [VSOCK cid] a <port> [Port VSOCK].
Skupiny možností: FD,SOCKET,CHILD,RETRY
Užitečné možnosti: bind, pf, connect-timeout, opakování, readbytes
Viz také: VSOCK-LISTEN,
VSOCK-LISTEN:<port>
Naslouchá na <port> [Port VSOCK] a přijímá připojení VSOCK. Všimněte si, že otevření této adresy obvykle blokuje, dokud se klient nepřipojí.
Skupiny možností: FD,SOCKET,LISTEN,CHILD,RETRY
Užitečné možnosti: vidlice, bind, pf, max-children, nevyřízené položky, su, reuseaddr, opakování, cool-write
Viz také: VSOCK-CONNECT
ABSTRACT-CONNECT:<string>
ABSTRACT-LISTEN:<string>
ABSTRACT-SENDTO:<string>
ABSTRACT-RECVFROM:<string>
ABSTRACT-RECV:<string>
ABSTRACT-CLIENT:<string>
Adresy ABSTRACT jsou téměř totožné se souvisejícími adresami systému UNIX s tím rozdílem, že neeštají sokety založené na systému souborů, ale alternativní adresní prostor domény UNIX. K dosažení tohoto cíle jsou řetězce adresy soketu předponou "\0" interně. Tato funkce je k dispozici (pouze?) na Linuxu. Skupiny možností jsou stejné jako u souvisejících unixových adres s tím rozdílem, že adresy ABSTRACT nejsou členem skupiny POJMENOVANÉ.

MOŽNOSTI ADRESY

Možnosti adresy lze použít k adresování specifikací, aby ovlivnily proces otevírání adres a vlastnosti výsledných datových kanálů.

Z technických důvodů nelze použít všechny možnosti na každý typ adresy; například použití možnosti soketu na běžný soubor se nezdaří. Chcete-li zachytit většinu zbytečných kombinací již v otevřené fázi, byl zaveden koncept skupin možností. Každá možnost patří do jedné nebo více skupin možností. Možnosti lze použít pouze u typů adres, které podporují alespoň jednu ze skupin možností (viz však možnost -g).

Možnosti adresy mají datové typy, které musí jejich hodnoty odpovídat. Každá možnost adresy se skládá pouze z klíčového slova nebo klíčového slova následovaného "=value", kde hodnota musí odpovídat typu voleb. Některé možnosti adresy manipulovat parametry systémových volání; například synchronizace možností nastaví O_SYNC s open() Další možnosti způsobují volání systému nebo knihovny; například s možností 'ttl=value' se použije volání setsockopt(fd, SOL_IP, IP_TTL, value, sizeof(int)) Další možnosti nastavují interní proměnná socat, které se používají při přenosu dat; například "crnl" způsobuje explicitní převody znaků. Několik možností má složitější implementace; například su-d (substuser-delayed) se ptá na některé uživatelské a skupinové informace, ukládá je a aplikuje je později po možném volání chroot()

Pokud je na adresu přiděleno více možností, jejich pořadí ve specifikaci adresy nemá (téměř) žádný vliv na pořadí jejich spuštění/aplikace. Místo toho socat má vestavěný model fáze možnosti, který se pokusí přenést možnosti v užitečném pořadí. Některé možnosti existují v různých formách (např. odpojit, zrušit propojení brzy, zrušit propojení pozdě) pro řízení doby jejich spuštění.

Pokud je stejná možnost zadána více než jednou v rámci jedné specifikace adresy se stejnými nebo odlišnými hodnotami, závisí efekt na druhu možnosti. Možnosti, které mají za následek volání funkce jako setsockopt() způsobit více vyvolání. S možnostmi, které nastavují parametry pro požadované volání jako open() nebo nastavit vnitřní příznaky, hodnota posledního výskytu možnosti je účinná.

Existence nebo sémantika mnoha možností závisí na systému. Socat se obvykle nesnaží napodobit chybějící funkce libc nebo jádra, pouze poskytuje rozhraní k základnímu systému. Pokud tedy operační systém postrádá funkci, související možnost jednoduše není na této platformě k dispozici.

Následující odstavce zavádějí pouze běžnější možnosti adresy. Pro komplexnější odkaz a najít informace o kanonické názvy možností, názvy aliasů, fáze možností a platformy viz soubor xio.help.



Skupina možností FD

Tato skupina voleb obsahuje možnosti, které jsou použity na deskriptor souboru stylu UN*X, bez ohledu na to, jak byl vygenerován. Vzhledem k tomu, že všechny aktuální typy adres socat jsou založeny na popisovači souborů, mohou být tyto možnosti použity na libovolnou adresu.
Poznámka: Některé z těchto možností jsou také členy jiné skupiny možností, která poskytuje jiný mechanismus bez fd. Pro tyto možnosti závisí na typu skutečné adresy a jeho skupiny možností, které mechanismus se používá. Druhý mechanismus bez fd je upřednostněn.

cloexec=<bool>
Nastaví FD_CLOEXEC pomocí systémového volání fcntl() na hodnotu <bool>. Pokud je nastavena, popisovač souboru je uzavřen na exec() volání funkce rodiny. Socat interně zpracovává tento příznak pro fds, které řídí, takže ve většině případů nebude nutné použít tuto možnost.
setlk
Pokusí se nastavit volitelný zámek zápisu do celého souboru pomocí systémového volání fcntl(fd, F_SETLK, ...) Pokud je soubor již uzamčen, výsledkem tohoto volání je chyba. V Linuxu, když jsou oprávnění k souborům pro skupinu "S" (g-x, g+s) a systém souborů je místně připojen s možností "mand", zámek je povinný, tj.
setlkw
Pokusí se nastavit volitelný zámek čekajícího zápisu do celého souboru pomocí systémového volání fcntl(fd, F_SETLKW, ...) Pokud je soubor již uzamčen, tento hovor se zablokuje. Informace o povinném provedení tohoto zámku naleznete v sadě možností.
setlk-rd
Pokusí se nastavit volitelný zámek pro čtení celého souboru pomocí systémového volání fcntl(fd, F_SETLK, ...) Pokud je soubor již uzamčen, výsledkem tohoto volání je chyba. Informace o povinném provedení tohoto zámku naleznete v sadě možností.
setlkw-rd
Pokusí se nastavit volitelný zámek pro čtení celého souboru pomocí systémového volání fcntl(fd, F_SETLKW, ...) Pokud je soubor již uzamčen, tento hovor se zablokuje. Informace o povinném provedení tohoto zámku naleznete v sadě možností.
flock-ex
Pokusí se nastavit blokování výhradní poradní zámek souboru pomocí flock(fd, LOCK_EX) Socat zablokuje v tomto volání, pokud je soubor uzamčen jiným procesem.
flock-ex-nb
Pokusí se nastavit neblokující výhradní poradní zámek souboru pomocí flock(fd, LOCK_EX|LOCK_NB) systémové volání. Pokud je soubor již uzamčen, výsledkem této možnosti je chyba.
flock-sh
Pokusí se nastavit blokování sdíleného poradního zámku souboru pomocí systémového volání flock(fd, LOCK_SH) Socat zablokuje v tomto volání, pokud je soubor uzamčen jiným procesem.
flock-sh-nb
Pokusí se nastavit neblokující sdílený zámek informačního zpravodaje na soubor pomocí flock(fd, LOCK_SH|LOCK_NB) systémové volání. Pokud je soubor již uzamčen, výsledkem této možnosti je chyba.
lock
Nastaví blokování zámku v souboru. Používá mechanismus sedla nebo hejna v závislosti na dostupnosti na konkrétní platformě. Pokud jsou k dispozici obě, použije se varianta POSIX (setlkw).
user=<user>
Nastaví <uživatel> (vlastník) datového proudu. Pokud je adresa členem skupiny voleb POJMENOVANÁ, socat použije systémové volání chown() po otevření souboru nebo vazby na soket domény UNIX (spor!). Bez zadání souborového systému socat nastaví uživatele datového proudu pomocí systémového volání fchown() Tato volání mohou vyžadovat oprávnění root.
user-late=<user>
Nastaví vlastníka fd na <user> pomocí systémového volání fchown() po otevření nebo připojení kanálu. To je užitečné pouze u položek systému souborů.
group=<group>
Nastaví <skupinu> datového proudu. Pokud je adresa členem skupiny voleb POJMENOVANÁ, socat použije systémové volání chown() po otevření souboru nebo vazby na soket domény UNIX (spor!). Bez zadání souborového systému socat nastaví skupinu datového proudu pomocí systémového volání fchown() Tato volání mohou vyžadovat členství ve skupině nebo oprávnění root.
group-late=<group>
Nastaví skupinu fd na <group> pomocí systémového volání fchown() po otevření nebo připojení kanálu. To je užitečné pouze u položek systému souborů.
mode=<mode>
Nastaví <mode> [mode_t] (oprávnění) datového proudu. Pokud je adresa členem skupiny voleb POJMENOVANÁ a používá volání open() nebo creat() použije se s nimi režim. Pokud je adresa členem skupiny možností POJMENOVANÁ bez použití těchto systémových volání, socat používá systémové volání chmod() po otevření položky souborového systému nebo vazby na soket domény UNIX (spor!). Jinak socat nastaví režim datového proudu pomocí fchmod() . Tato volání mohou vyžadovat vlastnictví nebo oprávnění root.
perm-late=<mode>
Nastaví oprávnění fd na hodnotu <mode> [mode_t]pomocí systémového volání fchmod() po otevření nebo připojení kanálu. To je užitečné pouze u položek systému souborů.
append=<bool>
Vždy zapisuje data na skutečný konec souboru. Pokud je adresa členem skupiny možností OPEN, socat používá příznak O_APPEND s open() (příklad). V opačném případě socat použije volání fcntl(fd, F_SETFL, O_APPEND)
nonblock=<bool>
Pokusí se otevřít nebo použít soubor v neblokovacím režimu. Jeho jediným účinkem je, že connect() adres TCP neblokuje a že otevření pojmenovaného kanálu pro čtení neblokuje. Pokud je adresa členem skupiny možností OPEN, socat používá O_NONBLOCK s open() V opačném případě socat použije volání fcntl(fd, F_SETFL, O_NONBLOCK)
binary
Otevře soubor v binárním režimu, aby se zabránilo implicitní převody zakončení řádku (Cygwin).
text
Otevře soubor v textovém režimu, aby vynutit implicitní převody zakončení řádku (Cygwin).
noinherit
Neuchovává tento soubor otevřený v procesu plodu (Cygwin).
cool-write
Bere to snadné, když zápis selže s EPIPE nebo ECONNRESET a protokoluje zprávu s úrovní oznámení místo chyby. Tím zabráníte, aby byl soubor protokolu vyplněn zbytečnými chybovými zprávami, pokud se socat používá jako server s velkým objemem nebo proxy server, kde klienti často přerušují připojení.
Tato možnost je experimentální.
end-close
Změní metodu ukončení připojení (závisí na adrese) a zavře pouze popisovače souborů. To je užitečné, pokud má být připojení znovu).
Za normálních okolností budou připojení soketu shutdown(2) které ukončí soket, i když je sdílen více procesy. close(2) "odpojí" soket od procesu, ale udržuje jej aktivní tak dlouho, dokud jsou stále odkazy z jiných procesů.
Podobně při ukončení adresy typu EXEC nebo SYSTEM socat obvykle explicitně zabije dílčí proces. Pomocí této možnosti pouze zavře popisovače souborů.
shut-none
Změní metodu (závislou na adrese) vypnutí části připojení pro zápis tak, aby neprováděla nic.
shut-down
Změní metodu (závislou na adrese) vypnutí části pro zápis připojení k vypnutí(fd, SHUT_WR). Je užitečné pouze se zásuvkami.
shut-close
Změní metodu (závislou na adrese) vypnutí části zápisu připojení na close(fd).
shut-null
Pokud jedna adresa označuje EOF, socat odešle paket nulové velikosti na kanál pro zápis druhé adresy k přenosu podmínky EOF. To je užitečné u protokolů UDP a dalších datagramů. Byl testován proti netcat a socat s možností null-eof.
null-eof
Normálně socat bude ignorovat prázdné (nulová velikost datové části) pakety přicházející na datagram sokety, takže přežije skenování portů. S touto volbou socat interpretuje prázdné pakety datagramu jako indikátor EOF (viz shut-null).
ioctl-void=<request>
Volá ioctl() s hodnotou požadavku jako druhý argument a NULL jako třetí argument. Tato možnost umožňuje využití ioctls, které nejsou explicitně implementovány v socat.
ioctl-int=<request>:<value>
Volá ioctl() s hodnotou požadavku jako druhý argument a celočíslovou hodnotou jako třetí argument.
ioctl-intp=<request>:<value>
Volá ioctl() s hodnotou požadavku jako druhý argument a ukazatel na celočísí hodnotu jako třetí argument.
ioctl-bin=<request>:<value>
Volá ioctl() s hodnotou požadavku jako druhý argument a ukazatel na danou datovou hodnotu jako třetí argument. Tato data musí být zadána ve formuláři <dalan>.
ioctl-string=<request>:<value>
Volá ioctl() s hodnotou požadavku jako druhý argument a ukazatel na daný řetězec jako třetí argument. <dalan>



Skupina s názvem opce

Tyto možnosti fungují u položek systému souborů.
Vezměte prosím na vědomí, že s adresami klienta domény UNIX to znamená položku vazby, nikoli položku target/peer.
Viz také možnosti uživatel, skupinaa režim.

user-early=<user>
Změní <uživatel> (vlastník) položky systému souborů před přístupem k ní pomocí systémového volání chown() Toto volání může vyžadovat oprávnění root.
group-early=<group>
Změní <group> položky systému souborů před přístupem k ní pomocí systémového volání chown() Toto volání může vyžadovat členství ve skupině nebo oprávnění root.
perm-early=<mode>
Změní <mode> [mode_t] položky systému souborů před přístupem k ní pomocí systémového volání chmod() Toto volání může vyžadovat vlastnictví nebo oprávnění root.
umask=<mode>
Nastaví umask procesu na <mode> [mode_t] před vstupem do položky systému souborů (užitečné se sokety domény UNIX!). Toto volání může ovlivnit všechny další operace procesu socat!
unlink-early
Odpojte (odstraní) soubor před otevřením a ještě před použitím user-early atd.
unlink
Odpojí (odstraní) soubor před přístupem, ale po uživateli-brzy atd.
unlink-late
Odpojte (odebere) soubor po jeho otevření, aby byl nepřístupný pro jiné procesy po krátkém spor.
unlink-close
Odebere položku systému souborů adres při zavírání adresy. U pojmenovaných kanálů, soketů domény SYSTÉMU UNIXa symbolických odkazů adres ptyje výchozí hodnota 1; pro vytvořené soubory, otevřené souborya obecné otevřené soubory je výchozí hodnota 0.



Otevřít skupinu možností

Možnosti skupiny OPEN umožňují nastavení příznaků pomocí systémového volání open() Například možnost "kreat" nastaví O_CREAT vlajku.
Viz také možnosti připojit a nonblock.

creat=<bool>
Vytvoří soubor, pokud neexistuje (například).
dsync=<bool>
Bloky write() volání, dokud metainfo je fyzicky zapsán do médií.
excl=<bool>
S možností creat, pokud soubor existuje, jedná se o chybu.
largefile=<bool>
V 32bitových systémech umožňuje soubor větší než 2 ^31 bajtů.
noatime
Nastaví O_NOATIME možnosti, takže čtení nezmění časové razítko přístupu.
noctty=<bool>
Neuděluje tento soubor řídícím terminálem.
nofollow=<bool>
Nesleduje symbolické odkazy.
nshare=<bool>
Neumožňuje sdílení tohoto souboru s jinými procesy.
rshare=<bool>
Neumožňuje jiným procesům otevřít tento soubor pro zápis.
rsync=<bool>
Bloky write() dokud metainfo je fyzicky zapsán do médií.
sync=<bool>
Bloky write() dokud data fyzicky zapsána na médium.
rdonly=<bool>
Otevře soubor pouze pro čtení.
wronly=<bool>
Otevře soubor pouze pro zápis.
trunc
Při otevírání soubor zkrátí velikost 0.



Reg a BLK skupina možností

Tyto možnosti jsou obvykle použity na deskriptoru souboru UN*X, ale jejich sémantika má smysl pouze u souboru podporujícího náhodný přístup.

seek=<offset>
Použije systémové volání lseek(fd, <offset>, SEEK_SET) (nebo lseek64 čímž umístí ukazatel souboru absolutně na <offset> [off_t nebo off64_t]. Vezměte prosím na vědomí, že chybějící hodnota je výchozí 1, nikoli 0.
seek-cur=<offset>
Použije systémové volání lseek(fd, <offset>, SEEK_CUR) (nebo lseek64 čímž umístí ukazatel souboru <offset> [off_t nebo off64_t] bajtů relativně na jeho aktuální pozici (což je obvykle 0). Vezměte prosím na vědomí, že chybějící hodnota je výchozí 1, nikoli 0.
seek-end=<offset>
Použije systémové volání lseek(fd, <offset>, SEEK_END) (nebo lseek64 čímž umístí ukazatel souboru <offset> [off_t nebo off64_t] bajtů relativně na aktuální konec souborů. Vezměte prosím na vědomí, že chybějící hodnota je výchozí 1, nikoli 0.
ftruncate=<offset>
Použije systémové volání ftruncate(fd, <offset>) (nebo ftruncate64 pokud je k dispozici), čímž zkracuje soubor na pozici <offset> [off_t nebo off64_t]. Vezměte prosím na vědomí, že chybějící hodnota je výchozí 1, nikoli 0.
secrm=<bool>
unrm=<bool>
compr=<bool>
fs-sync=<bool>
immutable=<bool>
fs-append=<bool>
nodump=<bool>
fs-noatime=<bool>
journal-data=<bool>
notail=<bool>
dirsync=<bool>
Tyto možnosti mění nestandardní atributy souborů v operačních systémech a souborových systémech, které podporují tyto funkce, jako je Linux s ext2fs a následníci, xfs nebo reiserfs. Viz muž 1 chattr pro informace o těchto možnostech. Vezměte prosím na vědomí, že mezi vytvořením souboru a použitím těchto možností může být spor.



Skupina možností PROCES

Možnosti této skupiny změnit vlastnosti procesu namísto pouze ovlivňuje jeden datový kanál. Pro adresy EXEC a SYSTEM a pro adresy typu LISTEN a CONNECT s možností FORK se tyto možnosti vztahují na podřízené procesy namísto hlavního procesu socat.

chroot=<directory>
Provede operaci chroot() <directory> po zpracování adresy(příklad). Toto volání může vyžadovat oprávnění root.
chroot-early=<directory>
Před otevřením adresy provede operaci chroot() do <adresáře> . Toto volání může vyžadovat oprávnění root.
setgid=<group>
Změní primární <skupina> procesu po zpracování adresy. Toto volání může vyžadovat oprávnění root. Upozorňujeme, že tato možnost neupustí další oprávnění související se skupinou.
setgid-early=<group>
Stejně jako setgit, ale provádí se před otevřením adresy.
setuid=<user>
Změní <uživatel> (vlastník) procesu po zpracování adresy. Toto volání může vyžadovat oprávnění root. Upozorňujeme, že tato možnost neupustí oprávnění související se skupinou. Zkontrolujte, zda možnost su lépe vyhovuje vašim potřebám.
setuid-early=<user>
Stejně jako setuid, ale provádí se před otevřením adresy.
su=<user>
Změní <uživatel> (vlastník) a skupiny procesu po zpracování adresy(příklad). Toto volání může vyžadovat oprávnění root.
su-d=<user>
Krátký název pro substuser-delayed. Změní <uživatel> (vlastník) a skupiny procesu po zpracování adresy(příklad). Uživatel a jeho skupiny jsou načteny před možným chroot() . Toto volání může vyžadovat oprávnění root.
setpgid=<pid_t>
Vytvoří proces členem zadané skupiny procesů <pid_t>. Pokud není zadána žádná hodnota nebo pokud je hodnota 0 nebo 1, proces se stane vedoucí novou skupinou procesů.
setsid
Dělá proces vedoucí nové relace (příklad).



Skupina možností READLINE

Tyto možnosti platí pro typ adresy načtení řádku.

history=<filename>
Čte a zapisuje historii z/do <název_souboru> (příklad).
noprompt
Vzhledem k tomu, verze 1.4.0, socat za výchozí pokusí určit výzvu - který je pak předán volání readline - zapamatováním poslední neúplný řádek výstupu. S touto volbou socat nepředá výzvu k přečtení, takže začne úpravy řádku v prvním sloupci terminálu.
noecho=<pattern>
Určuje pravidelný vzor pro výzvu, která zabrání zobrazení následujícího vstupního řádku na obrazovce a přidání do historie. Výzva je definována jako text, který byl výstup na adresu přečteného řádku za poslední znak nového řádku a před zadáním vstupního znaku. Vzor je regulární výraz, například "^[Pp]assword:.*$" nebo "([Uu]ser:|[Pp]assword:)". Podrobnosti viz regex(7). (příklad)
prompt=<string>
Předá řetězec jako výzvu k funkci readline. readline vytiskne tuto výzvu při krokování v historii. Pokud tento řetězec odpovídá konstantní výzvu vydané interaktivní program na druhou adresu socat, konzistentní vzhled může být dosaženo.



Skupina možností APLIKACE

Tato skupina obsahuje možnosti, které fungují na úrovni dat. Všimněte si, že tyto možnosti platí pouze pro "nezpracovaná" data přenášená socatem, ale ne pro data protokolu používaná adresami, jako je PROXY.

cr
Převede výchozí znak ukončení řádku NL ('\n', 0x0a) do/z CR ('\r', 0x0d) při zápisu/čtení na tomto kanálu.
crnl
Převede výchozí znak ukončení řádku NL ('\n', 0x0a) na/z CRNL ("\r\n", 0x0d0a) při zápisu/čtení na tomto kanálu(příklad). Poznámka: socat jednoduše proužky všechny CR znaky.
ignoreeof
Když se EOF vyskytuje na tomto kanálu, socat ignoruje a snaží se číst další data (jako "ocas -f") (příklad).
readbytes=<bytes>
socat čte jen tolik bajtů z této adresy (adresa poskytuje pouze tolik bajtů pro převod a předstírá, že je na EOF později). Musí být větší než 0.
lockfile=<filename>
Pokud lockfile existuje, ukončí s chybou. Pokud lockfile neexistuje, vytvoří jej a pokračuje, odpojí lockfile na exit.
waitlock=<filename>
Pokud lockfile existuje, čeká, dokud zmizí. Pokud lockfile neexistuje, vytvoří jej a pokračuje, odpojí lockfile na exit.
escape=<int>
Určuje číselný kód znaku, který aktivuje EOF ve vstupním datovém proudu. To je užitečné s terminálem v surovém režimu (například).



Skupina možností SOCKET

Tyto možnosti jsou určeny pro všechny druhy zásuvek, například IP nebo UNIX doménu. Většina jsou použity s setsockopt() volání.

bind=<sockname>
Sváže soket na danou adresu soketu pomocí volání systému bind() Forma <sockname> je závislá na doméně soketu: IP4 a IP6 povolit formulář [hostname|hostaddress][:(service|port)] (příklad), SOKETY domény UNIX vyžadují <název_souboru>, VSOCK povolit formulář [cid][:(port)].
connect-timeout=<seconds>
Přerušte pokus o připojení po <sekundy> [timeval] s chybovým stavem.
so-bindtodevice=<interface>
Sváže soket na dané <interface>. Tato možnost může vyžadovat oprávnění root.
broadcast
U soketů datagramu umožňuje odesílání na všesměrové adresy a přijímání paketů adresovaných na všesměrové adresy.
debug
Povolí ladění soketu.
dontroute
Komunikuje pouze s přímo připojenými partnery, nepoužívá směrovače.
keepalive
Umožňuje odesílání keepalives na soketu.
linger=<seconds>
Blokuje shutdown() nebo close() dokud neskončí přenos dat nebo nevypršene daný časový časový protiúčet [int].
oobinline
Umístí nesená data do vstupního datového proudu.
priority=<priority>
Nastaví protokol definovaný <priorita> [<int>] pro odchozí pakety.
rcvbuf=<bytes>
Nastaví velikost vyrovnávací paměti pro příjem po volání socket() na <bajty> [int]. U soketů TCP tato hodnota odpovídá maximální velikosti okna soketu.
rcvbuf-late=<bytes>
Nastaví velikost vyrovnávací paměti pro příjem, pokud je soket již připojen k <bajtům> [int]. U soketů TCP tato hodnota odpovídá maximální velikosti okna soketu.
rcvlowat=<bytes>
Určuje minimální počet přijatýchbajtů[ int ], dokud vrstva soketu nepředá data ve vyrovnávací paměti socat.
reuseaddr
Umožňuje, aby se ostatní zásuvky navázaly na adresu, i když její části (např. místní port) jsou již používány socatem (příklad).
sndbuf=<bytes>
Nastaví velikost vyrovnávací paměti pro odesílání po volání socket() na <bajty> [int].
sndbuf-late=<bytes>
Nastaví velikost vyrovnávací paměti pro odesílání, když je soket připojen k <bajtům> [int].
sndlowat=<bytes>
Určuje minimální počet bajtů ve vyrovnávací paměti pro odesílání, dokud vrstva soketu neposílá data do <bajtů> [int].
pf=<string>
Vynutí použití zadané verze nebo protokolu IP. <string> může být něco jako "ip4" nebo "ip6". Výsledná hodnota se používá jako první argument socket() nebo socketpair() Tato možnost ovlivňuje rozlišení adresy a požadovanou syntaxi možností vazby a rozsahu.
type=<type>
Nastaví typ soketu, který je určen jako druhý argument volání socket() nebo socketpair() na <type> [int]. Řešení adresy není touto možností ovlivněno. V linuxovém 1 znamená soket orientovaný na datový proud, 2 znamená soket datagram a 3 znamená nezpracovaný soket.
protocol
Nastaví protokol soketu, určený jako třetí argument pro volání socket() nebo socketpair() na <protocol> [int]. Řešení adresy není touto možností ovlivněno. 6 znamená TCP, 17 znamená UDP.
reuseport
Nastavte možnost SO_REUSEPORT soketu.
so-timestamp
Nastaví možnost SO_TIMESTAMP soketu. To umožňuje příjem a protokolování doplňkových zpráv časového razítka.
setsockopt=<level>:<optname>:<optval>
Vyvolá setsockopt() pro soket s danými parametry. level [int] se používá jako druhý argument pro setsockopt() a určuje vrstvu, například SOL_TCP pro TCP (6 na Linuxu), nebo SOL_SOCKET pro vrstvu soketu (1 na Linuxu). optname [int] je třetí argument setsockopt() a říká, která možnost soketu má být nastavena. Pro skutečná čísla budete muset vyhledat příslušné zahrnout soubory vašeho systému. Pro parametry 4th a 5th setsockopt() value [dalan] libovolnou posloupnost bajtů, které jsou předány funkci na ukazatel, s automaticky odvozeným parametrem length.
setsockopt-int=<level>:<optname>:<optval>
Stejně jako setsockopt, ale <optval> je ukazatel na int [int]
setsockopt-listen=<level>:<optname>:<optval>
Stejně jako setsockopt, ale pro naslouchací adresy typu se použije na poslech soketu namísto připojeného soketu.
setsockopt-string=<level>:<optname>:<optval>
Stejně jako setsockopt, ale <optval> je řetězec. Tento řetězec je předán funkci s koncovým znakem null a parametr length je automaticky odvozen z dat.



Skupina možností systému UNIX

Tyto možnosti platí pro adresy domény systému UNIX.

unix-tightsocklen=[0|1]
Při operacích soketu předejte délku adresy soketu, která neobsahuje celou struct sockaddr_un záznamu, ale (kromě jiných součástí) pouze příslušnou část názvu souboru nebo abstraktního řetězce. Výchozí hodnota je 1.

Skupiny možností IP4 a IP6

Tyto možnosti lze použít se zásuvkami založenými na protokolech IPv4 a IPv6.

tos=<tos>
Nastaví pole TOS (typ služby) odchozích paketů na <tos> [bajt] (viz RFC 791).
ttl=<ttl>
Nastaví pole TTL (doba života) odchozích paketů na <ttl> [bajt].
ip-options=<data>
Nastaví možnosti IP, jako je směrování zdroje. Musí být uveden v binární podobě, doporučený formát je úvodní "x" následuje sudý počet hex číslic. Tato možnost může být použita vícekrát, data jsou připojena. Například pro připojení k hostiteli 10.0.0.1 přes nějakou bránu pomocí volné zdrojové trasy použijte bránu jako parametr adresy a nastavte volnou zdrojovou trasu pomocí ip-options=x8307040a000001 .
Možnosti IP jsou definovány v RFC 791.
mtudiscover=<0|1|2>
Trvá 0, 1, 2 nikdy, chcete, nebo vždy použít cestu MTU zjistit na tomto soketu.
ip-pktinfo
Nastaví možnost IP_PKTINFO soketu. To umožňuje příjem a protokolování pomocných zpráv obsahujících cílovou adresu a rozhraní (Linux)(příklad).
ip-recverr
Nastaví možnost IP_RECVERR soketu. To umožňuje příjem a protokolování pomocných zpráv obsahujících podrobné informace o chybě.
ip-recvopts
Nastaví možnost IP_RECVOPTS soketu. To umožňuje příjem a protokolování doplňkových ip možností (Linux, *BSD).
ip-recvtos
Nastaví možnost IP_RECVTOS soketu. To umožňuje příjem a protokolování doplňkových zpráv TOS (typ služby) (Linux).
ip-recvttl
Nastaví možnost IP_RECVTTL soketu. To umožňuje příjem a protokolování doplňkových zpráv TTL (time to live) (Linux, *BSD).
ip-recvdstaddr
Nastaví možnost IP_RECVDSTADDR soketu. To umožňuje příjem a protokolování pomocných zpráv obsahujících cílovou adresu (*BSD)(příklad).
ip-recvif
Nastaví možnost IP_RECVIF soketu. To umožňuje příjem a protokolování doplňkových zpráv rozhraní (*BSD)(příklad).
ip-add-membership=<multicast-address:interface-address>
ip-add-membership=<multicast-address:interface-name>
ip-add-membership=<multicast-address:interface-index>
ip-add-membership=<multicast-address:interface-address:interface-name>
ip-add-membership=<multicast-address:interface-address:interface-index>
Vytvoří soket člena zadané skupiny vícesměrového vysílání. Tato akce je aktuálně implementována pouze pro IPv4. Tato možnost přebírá IP adresu skupiny vícesměrového vysílání a informace o požadovaném síťovém rozhraní. Nejběžnější syntaxe je první, zatímco ostatní jsou k dispozici pouze v systémech, které poskytují struct mreqn (Linux).
Indexy aktivních síťových rozhraní lze zobrazit pomocí užitkového proku.
ip-add-source-membership=<multicast-address:interface-address:source-address>
Vytvoří člena soketu zadané skupiny vícesměrového vysílání pro zadaný zdroj, tj. Tato akce je aktuálně implementována pouze pro IPv4.
ip-multicast-if=<hostname>
Určuje název hostitele nebo adresu síťového rozhraní, které má být použito pro provoz vícesměrového vysílání.
ip-multicast-loop=<bool>
Určuje, zda má odchozí přenos vícesměrového vysílání pokračovat zpět do rozhraní.
ip-multicast-ttl=<byte>
Nastaví ttl používané pro odchozí provoz vícesměrového vysílání. Výchozí hodnota je 1.
ip-transparent
Nastaví možnost IP_TRANSPARENT soketu. Tato možnost může vyžadovat oprávnění root.
res-debug
res-aaonly
res-usevc
res-primary
res-igntc
res-recurse
res-defnames
res-stayopen
res-dnsrch
Tyto možnosti nastavují příznaky možností odpovídající překladač (překlad názvů). Chcete-li vymazat výchozí možnost, přidaďte "=0". Další informace o těchto možnostech naleznete v překladačí man(5). Poznámka: Tyto možnosti jsou platné pouze pro adresu, na kterou jsou použity.



Skupina možností IP6

Tyto možnosti lze použít pouze na soketech založené na IPv6. Možnosti, které lze použít pro sokety IPv4 i IPv6, naleznete v tématu možnosti protokolu IP.

ipv6only=<bool>
Nastaví možnost IPV6_V6ONLY soketu. Pokud 0, zásobník TCP bude také přijímat připojení pomocí protokolu IPv4 na stejném portu. Výchozí hodnota je závislá na systému.
ipv6-recvdstopts
Nastaví možnost IPV6_RECVDSTOPTS soketu. To umožňuje příjem a protokolování pomocných zpráv obsahujících cílové možnosti.
ipv6-recvhoplimit
Nastaví možnost IPV6_RECVHOPLIMIT soketu. To umožňuje příjem a protokolování pomocných zpráv obsahujících hoplimit.
ipv6-recvhopopts
Nastaví možnost IPV6_RECVHOPOPTS soketu. To umožňuje příjem a protokolování pomocných zpráv obsahujících možnosti směrování.
ipv6-recvpktinfo
Nastaví možnost IPV6_RECVPKTINFO soketu. To umožňuje příjem a protokolování pomocných zpráv obsahujících cílovou adresu a rozhraní.
ipv6-unicast-hops=link(TYPE_INT)(<int>)
Nastaví možnost IPV6_UNICAST_HOPS soketu. Tím nastavíte limit počtu směrování (TTL) pro odchozí pakety jednosměrového vysílání.
ipv6-recvrthdr
Nastaví možnost IPV6_RECVRTHDR soketu. To umožňuje příjem a protokolování pomocných zpráv obsahujících informace o směrování.
ipv6-tclass
Nastaví možnost IPV6_TCLASS soketu. Tím nastavíte třídu přenosu odchozích paketů.
ipv6-recvtclass
Nastaví možnost IPV6_RECVTCLASS soketu. To umožňuje příjem a protokolování pomocných zpráv obsahujících třídu přenosu.



Skupina možností TCP

Tyto možnosti mohou být použity pro sokety TCP. Pracují vyvoláním setsockopt() s příslušnými parametry.

cork
Neodesílá pakety menší než MSS (maximální velikost segmentu).
defer-accept
Při poslechu přijímá připojení pouze v případě, že data z druhé strany dorazil.
keepcnt=<count>
Nastaví počet keepalives před vypnutím soketu <count> [int].
keepidle=<seconds>
Nastaví dobu nečinnosti před odesláním prvního keepalive na <sekund> [int].
keepintvl=<seconds>
Nastaví interval mezi dvěma keepalives na <sekundy> [int].
linger2=<seconds>
Nastaví čas pro zachování soketu ve stavu FIN-WAIT-2 na <sekundy> [int].
mss=<bytes>
Nastaví MSS (maximální velikost segmentu) za volání socket() na <bajty> [int]. Tato hodnota je pak navržena partnerovi s paketem SYN nebo SYN/ACK(příklad).
mss-late=<bytes>
Nastaví mss soketu po navázání připojení na <bajty> [int].
nodelay
Vypne Algoritmus Nagle pro měření RTT (doba odezvy).
rfc1323
Povoluje možnosti protokolu TCP RFC1323: měřítko okno TCP, měření doby odezvy (RTTM) a ochrana před zabalenými pořadovými čísly (PAWS) (AIX).
stdurg
Umožňuje rfc1122 kompatibilní s naléhavým ukazatelem zpracování (AIX).
syncnt=<count>
Nastaví maximální počet opakovaných přenosů SYN během připojení k <count> [int].
md5sig
Umožňuje generování MD5 digestů na paketech (FreeBSD).
noopt
Zakáže použití možností TCP (FreeBSD, MacOSX).
nopush
nastaví možnost TCP_NOPUSH soketu (FreeBSD, MacOSX).
sack-disable
Zakáže používat funkci selektivního potvrzení (OpenBSD).
signature-enable
Umožňuje generování MD5 digestů na paketech (OpenBSD).
abort-threshold=<milliseconds>
Nastaví čas čekání na odpověď druhé strany na navázané připojení (HP-UX).
conn-abort-threshold=<milliseconds>
Nastaví čas čekání na odpověď serveru během počátečního připojení (HP-UX).
keepinit
Nastaví čas čekání na odpověď serveru během connect() před tím, než se vzdá. Hodnota za půl sekundy, výchozí hodnota je 150 (75s) (Tru64).
paws
Povoluje funkci "chránit před zalomeným pořadovým číslem" (Tru64).
sackena
Povolí selektivní potvrzení (Tru64).
tsoptena
Povolí možnost časového razítka, která umožňuje přepočet RTT na existující připojení (Tru64).



Skupina možností UDP

Tato možnost může být použita pro sokety datagramu UDP.

udp-ignore-peerport>
Adresa UDP-DATAGRAM očekává, že příchozí odpovědi pocházejí z portu určeného v jeho druhém parametru. S touto volbou přijímá pakety přicházející z libovolného portu.



Skupina možností SCTP

Tyto možnosti mohou být použity pro sokety datového proudu SCTP.

sctp-nodelay
Nastaví možnost soketu SCTP_NODELAY, která zakáže algoritmus Nagle.
sctp-maxseg=<bytes>
Nastaví možnost soketu SCTP_MAXSEG na <bajty> [int]. Tato hodnota je pak navržena partnerovi s paketem SYN nebo SYN/ACK.



Skupina možností UDP, TCP a SCTP

Zde najdeme možnosti, které souvisejí s mechanismem síťového portu a lze je tedy použít s adresami klientů a serverů UDP, TCP a SCTP.

sourceport=<port>
Pro odchozí (klientská) připojení TCP a UDP nastaví zdroj <port> pomocí volání extra bind() S TCP nebo UDP naslouchat adresy socat okamžitě vypne připojení, pokud klient nepoužívá tento sourceport. Adresy UDP-RECV, UDP-RECVFROM, UDP-SENDTO a UDP-DATAGRAM paket ignorují, pokud se neshoduje. (příklad).
lowport
Odchozí (klient) připojení TCP a UDP s touto volbou používají nepoužívaný náhodný zdrojový port mezi 640 a 1023 včetně. V operačních systémech třídy UNIX to vyžaduje oprávnění root, a proto označuje, že proces klienta je autorizován místním kořenem. Adresy TCP a UDP naslouchají touto možností okamžitě vypnout připojení, pokud klient nepoužívá sourceport <= 1023. Tento mechanismus může za určitých okolností poskytnout omezené oprávnění.



Skupina možností SOCKS

Při použití adres typu SOCKS lze nastavit některé ponožky specifické možnosti.

socksport=<tcp service>
Přepíše výchozí službu "socks" nebo port 1080 pro port serveru socks pomocí služby <TCP>.
socksuser=<user>
Odešle <user> [string] v poli uživatelského jména na server ponožek. Výchozí je skutečné uživatelské jméno ($LOGNAME nebo $USER)(příklad).



Skupina možností HTTP

Možnosti, které mohou být poskytnuty s adresami typu HTTP. Jediná aktuálně implementovaná ADRESA HTTP je proxy-connect.

proxyport=<TCP service>
Přepíše výchozí port proxy HTTP 8080 pomocí služby <TCP>.
ignorecr
Protokol HTTP vyžaduje použití CR+NL jako terminátoru linky. Pokud proxy server poruší tento standard, socat nemusí pochopit jeho odpověď. Tato možnost nařídí socat interpretovat NL jako terminátor linky a ignorovat CR v odpovědi. Nicméně socat odešle CR+NL do proxy.
proxy-authorization=<username>:<password>
Zadejte "základní" ověřování proxy serveru. Argument pro možnost se používá s hlavičkou "Proxy-Authorization: Basic" v základním64 kódované formě.
Poznámka: uživatelské jméno a heslo jsou viditelné pro každého uživatele v místním počítači v seznamu procesů; uživatelské jméno a heslo jsou přeneseny na proxy server nezašifrované (base64 kódované) a mohou být čichány.
proxy-authorization-file=<filename>
Stejně jako možnost proxy autorizace, ale pověření jsou čteny ze souboru a proto nejsou viditelné v seznamu procesů.
resolve
Ve výchozím nastavení socat odešle proxy požadavek CONNECT obsahující název hostitele. Pomocí této možnosti socat překládá název hostitele místně a odešle IP adresu. Vezměte prosím na vědomí, že podle RFC 2396 je implementováno pouze překlad názvů na adresy IPv4.



Skupina možností RANGE

Tyto možnosti zkontrolujte, zda by měl být klientovi připojení udělen přístup. Mohou být použity pro naslouchání a příjem síťových soketů. do této skupiny spadají možnosti obálky protokolu tcp.

range=<address-range>
Po přijetí připojení, testy, pokud peer je v dosahu. U adres IPv4 má rozsah adres adresu/bity ve tvaru, například 10.0.0.0/8, nebo adresu:maska, např. pro protokol IPv6 je to [ip6-address]/bits, např. Pokud adresa klienta neodpovídá, socat odmítne pokus o připojení, vydá upozornění a udržuje poslech nebo příjem.
tcpwrap[=<name>]
Používá knihovnu Libwrap (tcpd) Wietse Venema k určení, zda se klient může připojit. Konfigurační soubory jsou /etc/hosts.allow a /etc/hosts.deny per default, viz "man 5 hosts_access" pro více informací. Volitelný <name> (typový řetězec)je předán funkcím obálky jako název procesu démona(příklad). Pokud je vynechán, je předán název základny vyvolání socats (argv[0]). Pokud jsou na adresu použity možnosti tcpwrap i range, musí být splněny obě podmínky, aby bylo možné připojení povolit.
allow-table=<filename>
Převezme zadaný soubor namísto /etc/hosts.allow.
deny-table=<filename>
Převezme zadaný soubor namísto /etc/hosts.deny.
tcpwrap-etc=<directoryname>
Vyhledá soubor hosts.allow a hosts.deny v zadaném adresáři. Je přepsána možnostmi hosts-allow a hosts-deny.



Skupina možností LISTEN

Možnosti specifické pro naslouchání soketů.

backlog=<count>
Nastaví hodnotu nevyřízených položek předanou pomocí systémového volání listen() na <count> [int]. Výchozí hodnota je 5.
accept-timeout=<seconds>
Ukončete čekání na připojení po <sekundách> [timeval] s chybovým stavem.
max-children=<count>
Omezuje počet souběžných podřízených procesů [int]. Výchozí hodnota není omezena.



Skupina možností CHILD

Možnosti pro adresy s více připojeními prostřednictvím podřízených procesů.

fork
Po navázání připojení zpracovává svůj kanál v podřízeném procesu a udržuje nadřazený proces při pokusu o vytvoření více připojení, a to buď nasloucháním, nebo připojením ve smyčce (příklad).
OPENSSL-CONNECT a OPENSSL-LISTEN se liší v případě, že skutečně rozvětvení z dítěte: OPENSSL-LISTEN vidlice před SSL handshake, zatímco OPENSSL-CONNECT vidlice později. možnosti opakování a navždy nejsou zděděny podřízeným procesem.
V některých operačních systémech (např. freebsd) tato možnost nefunguje pro adresy UDP-LISTEN.



Skupina možností EXEC

Možnosti pro adresy, které vyvolávají program.

path=<string>
Přepíše proměnnou prostředí PATH pro vyhledávání v programu pomocí <string>. Tato $PATH hodnota je účinná i v podřízeném procesu.
login
argv[0] pro execvp() s '-', čímž se prostředí chová jako přihlašovací prostředí.



Skupina možností VIDLICE

EXEC nebo SYSTEM adresy vyvolat program pomocí podřízeného procesu a přenos dat mezi socat a program. Mechanismus meziprocesové komunikace může být ovlivněn následujícími možnostmi. Ve výchozím nastavení je socketpair() a přiřazen k stdin a stdout podřízeného procesu, zatímco stderr je zděděn z procesu socat a podřízený proces používá popisovače souborů 0 a 1 pro komunikaci s hlavním procesem socat.

nofork
Nemá rozvětvení dílčíproces pro spuštění programu, místo toho volá execvp() nebo system() přímo ze skutečné instance socat. Tím se zabrání režii jiného procesu mezi programem a jeho partnerem, ale zavádí mnoho omezení:
pipes
Vytvoří dvojici nepojmenovaných trubek pro meziprocesovou komunikaci namísto dvojice soketů.
openpty
Naváže komunikaci s dílčím procesem pomocí pseudo terminálu vytvořeného pomocí openpty() namísto výchozího (socketpair nebo ptmx).
ptmx
Naváže komunikaci s dílčím procesem pomocí pseudo terminálu vytvořeného otevřením /dev/ptmx nebo /dev/ptc místo výchozího (socketpair).
pty
Naváže komunikaci s dílčím procesem pomocí pseudo terminálu namísto dvojice soketů. Vytvoří pty s dostupným mechanismem. Pokud jsou k dispozici openpty a ptmx, používá ptmx, protože je kompatibilní s POSIX(příklad).
ctty
Dělá pty řídící tty sub procesu(příklad).
stderr
Směruje stderr dílčího procesu na jeho výstupní kanál tím, že stderr dup() stdout (příklad).
fdin=<fdnum>
Přiřadí vstupní kanál sub procesů k jeho popisovači souboru <fdnum> namísto stdin (0). Program spuštěn z podprocesu musí použít tento fd pro čtení dat z socat (příklad).
fdout=<fdnum>
Přiřadí výstupní kanál dílčího procesu k jeho popisovači souboru <fdnum> namísto stdout (1). Program spuštěn z podprocesu musí použít tento fd pro zápis dat do socat (příklad).
sighup, sigint, sigquit
socat předat signály tohoto typu do dílčího procesu. Pokud žádná adresa nemá tuto možnost, socat ukončí na tyto signály.



Skupina možností TERMIOS

Pro adresy, které pracují na tty (např. stdio, file:/dev/tty, exec:...,pty), jsou parametry terminálu definované v mechanismu termios UN*X zpřístupněny jako parametry možnosti adresy. Vezměte prosím na vědomí, že změny parametrů vašeho interaktivního terminálu zůstávají účinné i po ukončení socatu,takže možná budete muset zadat "reset" nebo "stty sane" ve vašem shellu poté. Pro adresy EXEC a SYSTEM s možností PTY se tyto možnosti vztahují na pty podřízenými procesy.

b0
Odpojí terminál.
b19200
Nastaví rychlost sériové linky na 19200 baudů. Některé další sazby jsou možné; použijte něco jako socat -hh |grep ' b[1-9]' najít všechny rychlosti podporované vaší implementace.
Poznámka: V některých operačních systémech nemusí být tyto možnosti k dispozici. Místo toho použijte ekopeed nebo ospeed.
echo=<bool>
Povolí nebo zakáže místní ozvěnu.
icanon=<bool>
Nastaví nebo vymaže kanonický režim, povolení vyrovnávací paměti řádku a některé speciální znaky.
raw
Nastaví režim raw, tedy předávání vstupu a výstup téměř nezpracované. Tato možnost je zastaralá, místo toho použijte možnost rawer nebo cfmakeraw.
rawer
Dělá terminál rawer než raw možnost. Tato možnost implicitně vypne echo. (příklad).
cfmakeraw
Nastaví nezpracovaný režim vyvoláním cfmakeraw() nebo simulací tohoto volání. Tato možnost implicitně vypne echo.
ignbrk=<bool>
Ignoruje nebo interpretuje znak BREAK (např. ^C)
brkint=<bool>
bs0
bs1
bsdly=<0|1>
clocal=<bool>
cr0
cr1
cr2
cr3
Nastaví zpoždění návratu vozíku na 0, 1, 2 nebo 3. 0 znamená žádné zpoždění, ostatní hodnoty jsou závislé na terminálu.
crdly=<0|1|2|3>
cread=<bool>
crtscts=<bool>
cs5
cs6
cs7
cs8
Nastaví velikost znaku na 5, 6, 7 nebo 8 bitů.
csize=<0|1|2|3>
cstopb=<bool>
Nastaví dva stopové bity, nikoli jeden.
dsusp=<byte>
Nastaví hodnotu znaku VDSUSP, který pozastaví aktuální proces popředí a znovu aktivuje prostředí (všechny kromě Linuxu).
echoctl=<bool>
Ozvěny ovládacích znaků v zápisu klobouku (např. ^A)
echoe=<bool>
echok=<bool>
echoke=<bool>
echonl=<bool>
echoprt=<bool>
eof=<byte>
eol=<byte>
eol2=<byte>
erase=<byte>
discard=<byte>
ff0
ff1
ffdly=<bool>
flusho=<bool>
hupcl=<bool>
icrnl=<bool>
iexten=<bool>
igncr=<bool>
ignpar=<bool>
imaxbel=<bool>
inlcr=<bool>
inpck=<bool>
intr=<byte>
isig=<bool>
ispeed=<unsigned-int>
Nastavte přenosovou rychlost pro příchozí data na tomto řádku.
Viz také: ospeed, b19200
istrip=<bool>
iuclc=<bool>
ixany=<bool>
ixoff=<bool>
ixon=<bool>
kill=<byte>
lnext=<byte>
min=<byte>
nl0
Nastaví zpoždění nového řadového 0.
nl1
nldly=<bool>
noflsh=<bool>
ocrnl=<bool>
ofdel=<bool>
ofill=<bool>
olcuc=<bool>
onlcr=<bool>
onlret=<bool>
onocr=<bool>
opost=<bool>
Povolí nebo zakáže zpracování výstupu. například převádí NL na CR-NL.
ospeed=<unsigned-int>
Nastavte přenosovou rychlost pro odchozí data na tomto řádku.
Viz také: ispeed, b19200
parenb=<bool>
Povolit generování parity na výstupu a paritní kontrolu vstupu.
parmrk=<bool>
parodd=<bool>
pendin=<bool>
quit=<byte>
reprint=<byte>
sane
Přenese terminál do podobného užitečného výchozího stavu.
start=<byte>
stop=<byte>
susp=<byte>
swtc=<byte>
tab0
tab1
tab2
tab3
tabdly=<unsigned-int>
time=<byte>
tostop=<bool>
vt0
vt1
vtdly=<bool>
werase=<byte>
xcase=<bool>
xtabs
i-pop-all
Se systémem UNIX V STREAMS odebere všechny ovladače ze zásobníku.
i-push=<string>
Se systémem UNIX V STREAMS posune ovladač (modul) s daným názvem (řetězec) do zásobníku. Chcete-li například zajistit, aby znakové zařízení solaris podporovalo termios atd., použijte následující možnosti: i-pop-all,i-push=ptem,i-push=ldterm,i-push=ttcompat



Skupina možností PTY

Tyto možnosti jsou určeny pro použití s typem adresy pty.

link=<filename>
Generuje symbolický odkaz, který odkazuje na skutečný pseudo terminál (pty). To může pomoci vyřešit problém, který ptys jsou generovány s více či méně nepředvídatelné názvy, takže je obtížné přímo přistupovat k socat generované pty automaticky. Pomocí této možnosti může uživatel zadat bod "fix" v hierarchii souborů, který mu pomůže získat přístup ke skutečnému pty(příklad). Počínaje socat verze 1.4.3, symbolický odkaz je odstraněn, když je adresa uzavřena (ale viz možnost unlink-close).
wait-slave
Blokuje otevřenou fázi, dokud proces neotevře slave stranu pty. Obvykle socat pokračuje po vygenerování pty s otevřením další adresy nebo zadáním přenosové smyčky. S možností čekání slave, socat čeká, dokud nějaký proces otevře slave stranu pty před pokračováním. Tato možnost funguje pouze v případě, že operační systém poskytuje volání systému poll() A to závisí na nezdokumentované chování pty, takže to nefunguje na všech operačních systémech. Úspěšně byl testován na Linuxu, FreeBSD, NetBSD a na Tru64 s openpty.
pty-interval=<seconds>
Když je nastavena možnost čekání slave, socat pravidelně kontroluje podmínku HUP pomocí poll() a zjistí, zda byla otevřena strana slave pty. Výchozí interval dotazování je 1s. K změně této hodnoty použijte možnost interval pty [timeval].



Skupina možností OPENSSL

Tyto možnosti platí pro typy adres openssl a openssl-listen.

cipher=<cipherlist>
Vybere seznam šifer, které mohou být použity pro připojení. Podrobné informace o ciphers a výchozí hodnotách <cipherlist>naleznete na stránce s motivy cipherlist .
Může být uvedeno několik šifrovacích řetězců oddělených ":". Některé jednoduché šifrované řetězce:
3des
Používá šifrovací sadu s trojitým DES.
MD5
Používá šifrovací sadu s MD5.
ANULL
Používá šifrovací sadu bez ověřování.
Null
Nepoužívá šifrování.
Vysoké
Používá šifrovací sadu s "vysokým" šifrováním.

Všimněte si, že partner musí podporovat vybranou vlastnost, jinak se vyjednávání nezdaří.

method=<ssl-method>
Tato možnost je založena na zastaralých funkcích a je k dispozici pouze v případě, že socat byl sestaven s možností --with-openssl-method. Nastaví verzi protokolu, která má být použita. Platné řetězce (nerozpoštují malá a velká písmena) jsou:
SSL2
Vyberte protokol SSL verze 2.
SSL3
Vyberte protokol SSL verze 3.
SSL23
Vyberte nejlepší dostupný protokol SSL nebo TLS.
TLS1
Vyberte protokol TLS verze 1.
TLS1.1
Vyberte protokol TLS verze 1.1.
TLS1.2
Vyberte protokol TLS verze 1.2. Pokud tato možnost není k dispozici OpenSSL vyjedná mothod s jeho peer.
verify=<bool>
Řídí kontrolu certifikátu druhé strany. Výchozí hodnota je 1 (true). Zakázání ověření může otevřít zásuvku pro každého, takže šifrování k ničemu!
cert=<filename>
Určuje soubor s certifikátem a soukromým klíčem pro ověřování. Certifikát musí být ve formátu OpenSSL (*.pem). S openssl-listen, použití této možnosti se důrazně doporučuje. S výjimkou šifry aNULL dojde k chybě "žádné sdílené šifry", pokud není zadán žádný certifikát.
key=<filename>
Určuje soubor se soukromým klíčem. Soukromý klíč může být v tomto souboru nebo v souboru s možností certifikátu. Strana, která má důkaz, že je vlastníkem certifikátu, potřebuje soukromý klíč.
dhparams=<filename>
Určuje soubor s parametry Diffie Hellman. Tyto parametry mohou být také v souboru s možností certifikátu, v takovém případě není možnost dhparams potřeba.
cafile=<filename>
Určuje soubor s důvěryhodnými (kořenovými) certifikáty autority. Soubor musí být ve formátu PEM a měl by obsahovat jeden nebo více certifikátů. Strana, která kontroluje ověřování svých partnerských vztahů, důvěřuje pouze certifikátům, které jsou v tomto souboru.
capath=<dirname>
Určuje adresář s důvěryhodnými (kořenovými) certifikáty. Adresář musí obsahovat certifikáty ve formátu PEM a jejich hodnoty hash (viz dokumentace OpenSSL)
egd=<filename>
V některých systémech openssl vyžaduje explicitní zdroj náhodných dat. Zadejte název soketu, kde entropie shromažďování démon jako EGD poskytuje náhodná data, například /dev/egd-pool.
pseudo
V systémech, kde openssl nemůže najít zdroj entropie a kde nelze využít žádný démon pro shromažďování entropie, tato možnost aktivuje mechanismus pro poskytování pseudo entropie. Toho je dosaženo tím, že aktuální čas v mikrosekundách pro krmení libc pseudo náhodný generátor čísel s počáteční hodnotou. openssl je pak krmiva s výstupem z random() volání.
Poznámka: Tento mechanismus není dostačující pro generování zabezpečených klíčů!
compress
Povolení nebo zakázání komprese pro připojení. Nastavení na "žádný" zakáže kompresi, nastavení na "auto" umožňuje OpenSSL vybrat nejlepší dostupný algoritmus podporovaný oběma stranami. Ve výchozím nastavení se nedotýkáte žádného nastavení souvisejícího s kompresí. Poznámka: Vyžaduje OpenSSL 0.9.8 nebo vyšší a zakázání komprese s OpenSSL 0.9.8 ovlivňuje všechna nová připojení v procesu.
commonname=<string>
Zadejte běžný název, který musí odpovídat certifikátu rovnocenného partnera. S adresou OPENSSL-CONNECT to přepíše danou adresu hostitele nebo ip cílové adresy; s OPENSSL-LISTEN se tím zapne kontrola peer certificates commonname. Tato možnost má význam pouze v případě, že ověření možnosti není zakázáno a vybraná šifra poskytuje peer certifikát.
no-sni=<bool>
Nepoužívejte funkci SNI (Server Name Indication) na straně klienta, která vybírá požadovaný certifikát serveru.
Poznámka: SNI se automaticky používá od socat verze 1.7.4.0 a používá commonname nebo daný název hostitele.
snihost=<string>
Nastavte název hostitele SNI (Server Name Indication) na straně klienta, který se liší od názvu adresovaného serveru nebo běžného názvu. To může být užitečné, pokud má certifikát serveru více názvů hostitelů nebo zástupných znaků, protože název hostitele SNI je předán serveru ve formátu prostého textu a může být odposlouchávány. s touto volbou může být přenesen falešný název požadovaného certifikátu.
fips
Povolí režim FIPS, pokud je zkompilován. Informace o standardu implementace šifrování FIPS naleznete http://oss-institute.org/fips-faq.html. Tento režim může vyžadovat, aby byly zapojené certifikáty generovány s verzí openssl s povolenou funkcí FIPS. Nastavení nebo vymazání této možnosti na jedné adrese socat ovlivní všechny adresy OpenSSL tohoto procesu.



Skupina možností OPAKOVAT

Možnosti, které řídí opakování některých systémových volání, zejména pokusů o připojení.

retry=<num>
Počet opakování před přerušením pokusu o připojení nebo naslouchání. Výchozí hodnota je 0, což znamená pouze jeden pokus.
interval=<timespec>
Čas mezi po sobě jdoucími pokusy (sekundy, [časový rozsah]). Výchozí hodnota je 1 sekunda.
forever
Provede neomezený počet pokusů o opakování.



Skupina možností TUN

Možnosti, které řídí adresy zařízení rozhraní Linux TUN/TAP.

tun-device=<device-file>
Instruuje socat, aby se jinou cestou pro zařízení klon TUN. Výchozí hodnota je /dev/net/tun.
tun-name=<if-name>
Dává výsledné síťové rozhraní konkrétní název namísto generovaného systému (tun0, tun1 atd.)
tun-type=[tun|tap]
Nastaví typ zařízení TUN; pomocí této možnosti vygenerujte zařízení TAP. Podívejte se na linuxové docu pro rozdíl mezi těmito typy. Při pokusu o vytvoření tunelového propojení mezi dvěma zařízeními TUN, jejich typy by měly být stejné.
iff-no-pi
Nastaví příznak IFF_NO_PI, který řídí, pokud zařízení obsahuje další informace o paketu v tunelu. Při pokusu o vytvoření tunelového propojení mezi dvěma zařízeními TUN by tyto příznaky měly mít stejné hodnoty.
iff-up
Nastaví stav síťového rozhraní TUN UP. Důrazně doporučujeme.
iff-broadcast
Nastaví příznak VYSÍLÁNÍ síťového rozhraní TUN.
iff-debug
Nastaví příznak LADĚNÍ síťového rozhraní TUN.
iff-loopback
Nastaví příznak LOOPBACK síťového rozhraní TUN.
iff-pointopoint
Nastaví příznak POINTOPOINT zařízení TUN.
iff-notrailers
Nastaví příznak NOTRAILERS zařízení TUN.
iff-running
Nastaví příznak RUNNING zařízení TUN.
iff-noarp
Nastaví příznak NOARP zařízení TUN.
iff-promisc
Nastaví příznak PROMISC zařízení TUN.
iff-allmulti
Nastaví příznak ALLMULTI zařízení TUN.
iff-master
Nastaví příznak MASTER zařízení TUN.
iff-slave
Nastaví příznak SLAVE zařízení TUN.
iff-multicast
Nastaví příznak MULTICAST zařízení TUN.
iff-portsel
Nastaví příznak PORTSEL zařízení TUN.
iff-automedia
Nastaví příznak AUTOMEDIA zařízení TUN.
iff-dynamic
Nastaví příznak DYNAMIC zařízení TUN.



DATOVÉ HODNOTY

Tato část vysvětluje různé datové typy, které mohou řešit parametry a možnosti adresy.

rozsah adres
V současné době je implementována pouze pro IPv4 a IPv6. Viz možnost "rozsah" adresy
Bool
"0" nebo "1"; pokud je hodnota vynechána, je odebrána hodnota "1".
Bajt
Nepodepsané int číslo, číst s strtoul() , nižší nebo rovno UCHAR_MAX .
Příkazového řádku
Řetězec určující název programu a jeho argumenty, oddělený jednotlivými mezerami.
Dat
Toto je obecnější specifikace dat. Daný textový řetězec obsahuje informace o cílovém datovém typu a hodnotě. Úvodní znak obecně určuje typ následující datové položky. Ve specifickém kontextu může existovat výchozí datový typ.
V současné době jsou implementovány pouze následující specifikace:
I
Podepsané celé číslo uložené v pořadí bajtů hostitele.
Příklad: i-1000 (celé číslo -1000)
I
Nepodepsané celé číslo uložené v pořadí bajtů hostitele.
L
Podepsané dlouhé celé číslo uložené v pořadí bajtů hostitele.
L
Nepodepsané dlouhé celé číslo uložené v pořadí bajtů hostitele.
S
Podepsané krátké celé číslo uložené v pořadí bajtů hostitele.
S
Nepodepsané krátké celé číslo uložené v pořadí bajtů hostitele.
B
Podepsaný bajt (podepsaný znak).
B
Nepodepsaný bajt (nepodepsaný znak).
X
Následuje sudý počet šestnáctkových číslic uložených jako posloupnost bajtů.
Příklad: x7f000001 (IP adresa 127.0.0.1)
"
Následuje řetězec, který se používá s běžnými převody \n \r \t \f \b \a \e \0; řetězec musí být uzavřen řetězcem "". Vezměte prosím na vědomí, že uvozovky a zpětná lomítka je třeba uniknout z shellu a socat konverze.
Příklad: "Hello world!\n"
'
Jeden znak s obvyklými převody. Vezměte prosím na vědomí, že uvozovky a zpětná lomítka je třeba uniknout z shellu a socat konverze.
Příklad: 'a'

Datové položky mohou být odděleny mezerami bez nutnosti opakovat specifikátor typu znovu.

Adresář
Řetězec s obvyklou sémantikou názvu adresáře UN*X.
Zařízení
Název zařízení syslog v malých písmenech.
fdnum
Nepodepsaný typ int, čtení s strtoul() , určující deskriptor souboru UN*X.
Název_souboru
Řetězec s obvyklou sémantikou názvu souboru UN*X.
Skupiny
Pokud je první znak desetinná číslice, hodnota se čte s strtoul() jako nepodepsané celé číslo určující id skupiny. V opačném případě musí být existující název skupiny.
Int
Číslo podle pravidel funkce strtol() se základním číslem "0", tj. Hodnota se musí veejít do int C.
Rozhraní
Řetězec určující název zařízení síťového rozhraní, jak je znázorněno ifconfig nebo procan, např.
IP adresa
Adresa IPv4 v zápisu čísel a tátek, adresa IPv6 v šestnáctkovém zápisu uzavřená v závorkách nebo název hostitele, který se překládá na adresu IPv4 nebo IPv6.
Příklady: 127.0.0.1, [::1], www.dest-unreach.org, dns1
Adresa IPv4
Adresa IPv4 v zápisu čísel a tátek nebo název hostitele, který se překládá na adresu IPv4.
Příklady: 127.0.0.1, www.dest-unreach.org, dns2
Adresa IPv6
Adresa IPv6 v hexnumbers-a dvojtečky notace uzavřené v závorkách nebo název hostitele, který se překládá na adresu IPv6.
Příklady: [::1], [1234:5678:9abc:def0:1234:5678:9abc:def0], ip6name.domain.org
Dlouhé
Číslo čtené s strtol() . Hodnota se musí vejít do C dlouho.
dlouhá
Číslo přečtené strtoll() . Hodnota se musí vejít do C dlouho.
off_t
Implementace závisí na podepsaném čísle, obvykle 32 bitů, čtení s strtol nebo strtoll.
off64_t
Implementace závisí na podepsaném čísle, obvykle 64 bitů, čtení s strtol nebo strtoll.
mode_t
Nepodepsané celé číslo přečtené strtoul() , určující bity režimu (oprávnění).
pid_t
Číslo, čtení s strtol() , určení id procesu.
Port
Uint16_t (16bitové nepodepsané číslo) určující port TCP nebo UDP, čtení pomocí strtoul() .
Protokol
Nepodepsané 8bitové číslo, čtení s strtoul() .
size_t
Nepodepsané číslo s size_t omezeními, čtení s strtoul .
sockname
Adresa zásuvky. Viz možnost adresy 'bind'
Řetězec
Posloupnost znaků, které neobsahují \0 a v závislosti na pozici v příkazovém řádku ,:', ',' nebo "!!". Všimněte si, že budete muset uniknout shell meta znaky v příkazovém řádku.
Služba TCP
Název služby, který nezačíná číslicí, která je vyřešena getservbyname() nebo nepodepsaným 16bitovým číslem int čtením strtoul() .
timeval
Dvojité float určující sekundy; číslo je mapováno na časování struktury, skládající se z sekund a mikrosekund.
časový posoudí
Dvojité float určující sekundy; číslo je mapováno na časodsekveřování struktury, skládající se z sekund a nanosekund.
Služba UDP
Název služby, který nezačíná číslicí, která je vyřešena getservbyname() nebo nepodepsaným 16bitovým číslem int čtením strtoul() .
nepodepsaný int
Číslo přečtené strtoul() . Hodnota se musí vejít do c nepodepsané int.
Uživatele
Pokud je první znak desetinná číslice, hodnota se čte s strtoul() jako celé číslo nepodepsané určující id uživatele. V opačném případě musí být existující uživatelské jméno.
VSOCK cid
Uint32_t (32bitové nepodepsané číslo) určující identifikátor kontextu VSOCK (CID), čtení s strtoul() . Existuje několik speciálních adres: VMADDR_CID_ANY (-1U) znamená libovolnou adresu pro vazbu; VMADDR_CID_HOST (2) je dobře známá adresa hostitele.
Port VSOCK
Uint32_t (32bitové nepodepsané číslo) určující port VSOCK, čtení s strtoul() .

Příklady

socat - TCP4:www.domain.org:80
přenáší data mezi STDIO (-) a připojením TCP4 na port 80 hostitelského www.domain.org. Výsledkem tohoto příkladu je interaktivní připojení podobné telnetu nebo netcatu. Parametry terminálu stdin se nezmění, takže můžete relé uzavřít s ^D nebo jej přerušit pomocí ^C.
socat -d -d READLINE,history=$HOME/.http_history \
TCP4:www.domain.org:www,crnl
to je podobné předchozímu příkladu, ale můžete upravit aktuální řádek v bash jako způsobem(READLINE)a použít soubor historie .http_history; socat tiskne zprávy o pokroku (-d -d). Port je určen názvem služby (www) a používají se správné znaky ukončení síťové linky(crnl) namísto NL.
socat TCP4-LISTEN:www TCP4:www.domain.org:www
nainstaluje jednoduchý server pro předávání portů TCP. S TCP4-LISTEN naslouchá na místním portu "www", dokud nepřijde připojení, nepřijme ho, pak se připojí ke vzdálenému hostiteli(TCP4)a spustí přenos dat. Nepřijme druhé připojení.
socat -d -d -lmlocal2 \
TCP4-LISTEN:80,bind=myaddr1,su=nobody,fork,range=10.0.0.0/8,reuseaddr \
TCP4:www.domain.org:80,bind=myaddr2
předávání portů TCP, každá strana vázána na jinou místní IP adresu(vazba). Tento příklad zpracovává téměř libovolný počet paralelních nebo po sobě jdoucích připojení rozvětvenímnového procesu po každém accept() . Poskytuje trochu bezpečnosti su'ing uživateli nikdo po forku; umožňuje pouze připojení ze soukromé sítě 10(rozsah); vzhledem k opětovnému použití ,umožňuje okamžité restartování po ukončení hlavního procesu, i když některé podřízené sokety nejsou zcela vypnuty. S -lmlocal2, socat protokoly stderr až do úspěšného dosažení přijmout smyčky. Další protokolování je směrováno do syslogu se zařízením local2.
socat TCP4-LISTEN:5555,fork,tcpwrap=script \
EXEC:/bin/myscript,chroot=/home/sandbox,su-d=sandbox,pty,stderr
jednoduchý server, který přijímá připojení(TCP4-LISTEN)a rozvětvení's nový podřízený proces pro každé připojení; každé dítě funguje jako jediné relé. Klient musí odpovídat pravidlům pro název procesu démona "script" v /etc/hosts.allow a /etc/hosts.deny, jinak je mu odepřen přístup (viz "man 5 hosts_access"). Pro EXEC'uting program, dětský proces chroot's na / home / sandbox, su's uživateli pískoviště, a pak spustí program /home/sandbox/bin/myscript. Socat a myscript komunikovat přes pseudo tty (pty); myscript je stderr je přesměrován na stdout, takže jeho chybové zprávy jsou přenášeny přes socat do připojeného klienta.
socat EXEC:"mail.sh target@domain.com",fdin=3,fdout=4 \
TCP4:mail.relay.org:25,crnl,bind=alias1.server.org,mss=512
mail.sh je shell skript, distribuovaný s socat, který implementuje jednoduchý SMTP klienta. Je naprogramován tak, aby "mluvit" SMTP na jeho FDs 3 (in) a 4 (out). Možnosti fdin a fdout říkají socat, aby používali tyto FD pro komunikaci s programem. Protože mail.sh dědí stdin a stdout zatímco socat nepoužívá, skript můžete číst tělo pošty z stdin. Socat dělá alias1 místní zdrojovou adresu (bind), stará se o správné ukončení síťové linky(crnl) a odesílá maximálně 512 datových bajtů na paket (MSS).
socat -,escape=0x0f /dev/ttyS0,rawer,crnl
otevře interaktivní připojení přes sériovou linku, například pro rozhovor s modemem. rawer nastaví koncové parametry konzoly a ttyS0 na praktické hodnoty, crnl převede na správné znaky nového řádku. escape umožňuje ukončení procesu socat s ovládáním znaků-O. Zvažte použití READLINE místo první adresy.
socat UNIX-LISTEN:/tmp/.X11-unix/X1,fork \
SOCKS4:host.victim.org:127.0.0.1:6000,socksuser=nobody,sourceport=20
s UNIX-LISTEN, socat otevře naslouchací unixový dnse /tmp/. X11-unix/X1. Tato cesta odpovídá místní XWindow displej:1 na vašem počítači, takže XWindow klient připojení k DISPLAY =:1 jsou přijímány. Socat pak mluví se serverem SOCKS4 host.victim.org, které by mohly umožnit připojení na základě sourceportu 20 kvůli slabosti související s FTP v jeho statických filtrech IP. Socat předstírá, že je vyvolána socksuserem nikdo, a požaduje připojení k portu zpětné smyčky 6000 (pouze slabé konfigurace sockd to umožní). Takže získáme připojení k obětem XWindow server, a pokud to nevyžaduje MIT cookies nebo Kerberos ověřování, můžeme začít pracovat. Vezměte prosím na vědomí, že může být pouze jedno připojení najednou, protože TCP může vytvořit pouze jednu relaci s danou sadou adres a portů.
socat -u /tmp/readdata,seek-end=0,ignoreeof -
toto je příklad pro jednosměrný přenos dat (-u). Socat přenáší data ze souboru /tmp/readdata (implicitní adresa GOPEN), počínaje jeho aktuálním koncem(seek-end=0 umožňuje socat začít číst na aktuálním konci souboru; použijte seek= 0 nebo no seek možnost nejprve přečíst existující data) v režimu "tail -f" jako (ignoreeof). "Soubor" může být také naslouchající soket domény UNIX (nepoužívejte možnost hledání).
(sleep 5; echo PASSWORD; sleep 5; echo ls; sleep 1) |
socat - EXEC:'ssh -l user server',pty,setsid,ctty
EXEC'utes ssh session na server. Používá pty pro komunikaci mezi socat a ssh, dělá to ssh je ovládání tty(ctty), a dělá to pty vlastníkem nové skupiny procesů(setsid),takže ssh přijímá heslo od socat.
socat -u TCP4-LISTEN:3334,reuseaddr,fork \
OPEN:/tmp/in.log,creat,append
implementuje jednoduchý síťový kolektor zpráv. Pro každého klienta, který se připojuje k portu 3334, je generován nový podřízený proces (vidlicemožnosti). Všechna data odeslaná klienty jsou připojenak souboru /tmp/in.log. Pokud soubor neexistuje, socat creat's it. Možnost opětovného použití addr umožňuje okamžité restartování procesu serveru.
socat READLINE,noecho='[Pp]assword:' EXEC:'ftp ftp.server.com',pty,setsid,ctty
obtéká historii příkazového řádku(READLINE)kolem nástroje klienta EXEC'uted ftp. To umožňuje editaci a opakované použití příkazů FTP pro relativně pohodlné procházení hierarchie adresářů ftp. Heslo je ozvěnou! pty je nutné mít ftp problém výzvu. Nicméně, může dojít k určité záměně s heslem a FTP výzvy.
socat PTY,link=$HOME/dev/vmodem0,rawer,wait-slave \
EXEC:'"ssh modemserver.us.org socat - /dev/ttyS0,nonblock,rawer"'
generuje pseudokončitaře zařízení (PTY) na klienta, které lze dosáhnout pod symbolickým odkazem $HOME/dev/vmodem0. Aplikace, která očekává sériovou linku nebo modem, může být nakonfigurována tak, aby používala $HOME/dev/vmodem0; jeho provoz bude přesměrován na modemserver přes ssh, kde ji jiný socat instance spojuje s /dev/ttyS0.
socat TCP4-LISTEN:2022,reuseaddr,fork \
PROXY:proxy:www.domain.org:22,proxyport=3128,proxyauth=user:pass
spustí server pro předávání, který přijímá připojení na portu 2022, a nasměruje je přes démona proxy naslouchajícího na portu 3128(proxyport) na hostitelském serveru proxy pomocí metody CONNECT, kde jsou ověřovány jako "uživatel" s "pass" (proxyauth). Proxy server by měl navázat připojení k hostiteli www.domain.org na portu 22.
socat - SSL:server:4443,cafile=server.crt,cert=client.pem
je klient OpenSSL, který se pokouší navázat zabezpečené připojení k serveru SSL. Možnost cafile určuje soubor, který obsahuje certifikáty důvěryhodnosti: důvěřujeme serveru pouze v případě, že představuje jeden z těchto certifikátů a ověřovacích nátisků, že vlastní související soukromý klíč. V opačném případě je připojení ukončeno. S cert je zadán soubor obsahující klientský certifikát a přidružený soukromý klíč. To je vyžadováno v případě, že si server přeje ověření klienta. mnoho internetových serverů nemají.
První adresu ('-') lze nahradit téměř jakoukoli jinou adresou socat.
socat OPENSSL-LISTEN:4443,reuseaddr,pf=ip4,fork,cert=server.pem,cafile=client.crt PIPE
je server OpenSSL, který přijímá připojení TCP, představuje certifikát ze souborového serveru.pem a vynutí klientovi předložit certifikát, který je ověřen proti cafile.crt.
Druhou adresu ("PIPE") lze nahradit téměř jakoukoli jinou adresou socat.
Pokyny k generování a distribuci klíčů a certifikátů OpenSSL naleznete v dalších socat docu socat-openssl.txt.
echo |socat -u - file:/tmp/bigfile,create,largefile,seek=100000000000
vytvoří 100 GB řídkého souboru; to vyžaduje typ systému souborů, který to podporuje (ext2, ext3, reiserfs, jfs; ne minix, vfat). Operace zápisu 1 bajt může trvat dlouho (reiserfs: několik minut; ext2: "ne" čas), a výsledný soubor může spotřebovat některé místo na disku pouze s jeho inody (reiserfs: 2MB; ext2: 16KB).
socat tcp-l:7777,reuseaddr,fork system:'filan -i 0 -s >&2',nofork
naslouchá příchozím připojením TCP na portu 7777. Pro každé přijaté připojení vyvolá prostředí. Tato skořepina má svůj stdin a stdout přímo připojen k tcp zásuvce(nofork). Skořepina spustí filan a nechá vytisknout adresy soketu na stderr (okno terminálu).
echo -e "\0\14\0\0\c" |socat -u - file:/usr/bin/squid.exe,seek=0x00074420
funguje jako primitivní binární editor: zapisuje 4 bajty 000 014 000 000 do spustitelného souboru /usr/bin/squid na offset 0x00074420 (jedná se o opravu reálného světa, aby se chobotnice spustitelný z Cygwin spustit pod Windows, skutečné v květnu 2004).
socat - tcp:www.blackhat.org:31337,readbytes=1000
připojí k neznámé službě a zabrání zaplavení.
socat -U TCP:target:9999,end-close TCP-L:8888,reuseaddr,fork
slučuje data přicházející z různých datových proudů TCP na portu 8888 pouze do jednoho datového proudu do cíle:9999. Možnost end-close zabrání podřízeným procesům rozvětveným druhou adresou v ukončování sdíleného připojení k 9999 (close(2) pouze zruší propojení inode, která zůstane aktivní tak dlouho, dokud bude nadřazený proces.
socat - UDP4-DATAGRAM:192.168.1.0:123,sp=123,broadcast,range=192.168.1.0/24
odešle vysílání do sítě 192.168.1.0/24 a obdrží odpovědi timeservers tam. Ignoruje pakety NTP od hostitelů mimo tuto síť.
socat - SOCKET-DATAGRAM:2:2:17:x007bxc0a80100x0000000000000000,bind=x007bx00000000x0000000000000000,setsockopt-int=1:6:1,range=x0000xc0a80100x0000000000000000:x0000xffffff00x0000000000000000
je sémanticky ekvivalentní předchozímu příkladu, ale všechny parametry jsou zadány v obecné formě. hodnota 6 setsockopt-int je linuxová hodnota pro SO_BROADCAST.
socat - IP4-DATAGRAM:255.255.255.255:44,broadcast,range=10.0.0.0/8
odešle vysílání do místní sítě (sítí) pomocí protokolu 44. Přijímá pouze odpovědi z rozsahu privátních adres.
socat - UDP4-DATAGRAM:224.255.0.1:6666,bind=:6666,ip-add-membership=224.255.0.1:eth0
přenáší data z stdin na zadanou adresu vícesměrového vysílání pomocí UDP. Místní i vzdálené porty jsou 6666. Informuje rozhraní eth0 také přijímat pakety vícesměrového vysílání dané skupiny. Tento příkaz může spustit více hostitelů v místní síti, takže všechna data odeslaná kterýmkoli hostitelem budou přijata všemi ostatními. Všimněte si, že existuje mnoho možných důvodů selhání, včetně filtrů IP, problémů se směrováním, nesprávného výběru rozhraní operačním systémem, mostů nebo špatně nakonfigurovaného přepínače.
socat UDP:host2:4443 TUN:192.168.255.1/24,up
vytvoří jednu stranu virtuální (ale ne soukromé!) sítě s host2, kde podobný proces může spustit, s UDP-L a tun adresu 192.168.255.2. Mohou se k sobě dostat pomocí adres 192.168.255.1 a 192.168.255.2. Všimněte si, že streamování e.via TCP nebo SSL nezaručuje zachování hranic paketů a může tak způsobit ztrátu paketů.
socat - VSOCK-CONNECT:2:1234
naváže připojení VSOCK s hostitelem (hostitel je vždy dostupný pomocí dobře známého CID = 2) na portu 1234.
socat - VSOCK-LISTEN:1234
naslouchá připojení VSOCK na portu 1234.
socat - VSOCK-CONNECT:31:4321,bind:5555
vytvoří připojení VSOCK s hostem, které mají CID = 31 na portu 1234, vázání místní soketu na port 5555.
socat VSOCK-LISTEN:3333,reuseaddr,fork VSOCK-CONNECT:42,3333
spustí službu pro předávání, která přijímá připojení VSOCK na portu 3333, a přesměruje je na hosta pomocí CID=42 na stejném portu.
socat VSOCK-LISTEN:22,reuseaddr,fork TCP:localhost:22
předá připojení VSOCK z 22 portů na místní server SSH. Spuštění tohoto ve virtuálním a virtuálním systému umožňuje připojit přes SSH z hostitele pomocí VSOCK, jako v následujícím příkladu.
socat TCP4-LISTEN:22222,reuseaddr,fork VSOCK-CONNECT:33:22
předává připojení TCP z portu 22222 hostovi pomocí CID=33 naslouchání na portu VSOCK 22. Spuštění tohoto v hostiteli, umožňuje připojit přes SSH běží "ssh -p 22222 user@localhost", pokud host spustí výše uvedený příklad.
socat PTY,link=/var/run/ppp,rawer INTERFACE:hdlc0
obchází problém, že pppd vyžaduje sériové zařízení, a proto nemusí být schopen pracovat na synchronní lince, která je reprezentována síťovým zařízením. socat vytváří PTY, aby se pppd šťastný, váže se na síťové rozhraní hdlc0, a může přenášet data mezi oběma zařízeními. Použijte pppd na zařízení /var/run/ppp
socat -T 1 -d -d TCP-L:10081,reuseaddr,fork,crlf SYSTEM:"echo -e \"\\\"HTTP/1.0 200 OK\\\nDocumentType: text/plain\\\n\\\ndate: \$\(date\)\\\nserver:\$SOCAT_SOCKADDR:\$SOCAT_SOCKPORT\\\nclient: \$SOCAT_PEERADDR:\$SOCAT_PEERPORT\\\n\\\"\"; cat; echo -e \"\\\"\\\n\\\"\""
vytvoří jednoduchý server HTTP echo: každý klient HTTP, který se připojuje, získá platnou odpověď HTTP, která obsahuje informace o adrese klienta a portu, jak je vidí hostitel serveru, adresa hostitele (která se může lišit na serverech s více adresami) a původní požadavek klienta.
socat -d -d UDP4-RECVFROM:9999,so-broadcast,so-timestamp,ip-pktinfo,ip-recverr,ip-recvopts,ip-recvtos,ip-recvttl!!- SYSTEM:'export; sleep 1' |grep SOCAT
čeká na příchozí paket UDP na portu 9999 a vytiskne proměnné prostředí poskytované socat. Na BSD systémy musíte nahradit ip-pktinfo s ip-recvdstaddr,ip-recvif. Zvláště zajímavé je SOCAT_IP_DSTADDR: obsahuje cílovou adresu paketu, který může být jednosměrové, vícesměrové nebo všesměrové adresy.
echo -e "M-SEARCH * HTTP/1.1\nHOST: 239.255.255.250:1900\nMAN: \"ssdp:discover\"\nMX: 4\nST: \"ssdp:all\"\n" |./socat - UDP-DATAGRAM:239.255.255.250:1900,crlf
odešle dotaz SSDP (Simple Service Discovery Protocol) do místní sítě a shromažďuje a výstupy přijaté odpovědi.

Diagnostika

Socat používá mechanismus protokolování, který umožňuje filtrování zpráv podle závažnosti. Poskytnuté závažnosti jsou více či méně kompatibilní s příslušnou prioritou syslogu. U jednoho nebo až čtyř výskytů možnosti příkazového řádku -d lze vybrat nejnižší prioritu vydaných zpráv. Každá zpráva obsahuje jeden velký znak určující závažnost zpráv (jeden z F, E, W, N, I nebo D)

Fatální:
Podmínky, které vyžadují bezpodmínečné a okamžité ukončení programu.
Chyba:
Podmínky, které brání správnému zpracování programu. Obvykle je program ukončen (viz možnost -s).
Upozornění:
Něco nefungovalo správně nebo je ve stavu, kdy správné další zpracování nelze zaručit, ale může být možné.
Oznámení:
Zajímavé akce programu, například pro dohled nad socat v nějakém režimu serveru.
Info:
Popis toho, co program dělá, a možná, proč se to stane. Umožňuje sledování životních cyklů popisovačů souborů.
Ladění:
Popis fungování programu, všech volání systému nebo knihovny a jejich výsledků.

Zprávy protokolu lze zapisovat do stderr, do souboru nebo syslog.

Při ukončení socat udělí stav 0, pokud byl ukončen z důvodu časového protiúpisu EOF nebo nečinnosti, s kladnou hodnotou při chybě a se zápornou hodnotou při závažné chybě.

Soubory

/usr/bin/socat
/usr/bin/filan
/usr/bin/procan

PROMĚNNÉ PROSTŘEDÍ

Vstupní proměnné přenášejí informace z prostředí do socatu, výstupní proměnné jsou nastaveny socat pro použití ve spuštěných skriptech a programech.

Ve výstupních proměnných začínajících "SOCAT" je tato předpona ve skutečnosti nahrazena názvem velkých písmen spustitelného souboru nebo hodnotou option -lp.

SOCAT_DEFAULT_LISTEN_IP (vstup)
(Hodnoty 4 nebo 6) Nastaví verzi IP, která má být použita pro naslouchání, recv a recvfrom adresy, pokud není zadána žádná možnost pf (protocol-family). Je přepsána možnostmi socat -4 nebo -6.
SOCAT_PREFERRED_RESOLVE_IP (vstup)
(Hodnoty 0, 4 nebo 6) Nastaví verzi IP, která se má použít při překladu cílových názvů hostitelů, pokud verze není určena typem adresy, možností pf (třída protokolů) nebo formátem adresy. Pokud překlad názvů nevrátí odpovídající položku, bude přijat první výsledek (s odlišnou verzí PROTOKOLU IP). S hodnotou 0 socat vždy vybere první záznam a jeho IP verzi.
SOCAT_FORK_WAIT (vstup)
Určuje čas (sekundy) do režimu spánku nadřazeného a podřízeného procesu po úspěšné rozvětce(). Užitečné pro ladění.
SOCAT_VERSION (výstup)
Socat nastaví tuto proměnnou na řetězec verze, například "1.7.0.0" pro vydané verze nebo například "1.6.0.1+envvar" pro dočasné verze; lze použít ve skriptech vyvolaných socat.
SOCAT_PID (výstup)
Socat nastaví tuto proměnnou na id procesu. V případě možnosti rozvětvové adresy získá SOCAT_PID id podřízených procesů. Šťouchnutí pro exec a systém nemění SOCAT_PID.
SOCAT_PPID (výstup)
Socat nastaví tuto proměnnou na id procesu. V případě vidlice, SOCAT_PPID udržuje pid hlavního procesu.
SOCAT_PEERADDR (výstup)
S pasivníseket adresy (všechny LISTEN a RECVFROM adresy), tato proměnná je nastavena na řetězec popisující adresu soketu peers. Informace o portu nejsou zahrnuty.
SOCAT_PEERPORT (výstup)
S příslušnými adresami pasivního soketu (TCP, UDP a SCTP - LISTEN a RECVFROM) je tato proměnná nastavena na řetězec obsahující číslo portu druhé strany.
SOCAT_SOCKADDR (výstup)
U všech adres LISTEN je tato proměnná nastavena na řetězec popisující adresu místního soketu. Informace o portu nejsou uvedeny v příkladu.
SOCAT_SOCKPORT (výstup)
S adresami TCP-LISTEN, UDP-LISTENa SCTP-LISTEN je tato proměnná nastavena na místní port.
SOCAT_TIMESTAMP (výstup)
U všech adres RECVFROM, kde je použita možnost adresy so-timestamp, socat nastaví tuto proměnnou na výsledné časové razítko.
SOCAT_IP_OPTIONS (výstup)
Se všemi adresami RECVFROM založenými na IPv4, kde je použita možnost ip-recvopts, socat vyplní tuto proměnnou možnostmi IP přijatého paketu.
SOCAT_IP_DSTADDR (výstup)
Se všemi adresami RECVFROM založenými na IPv4, kde je použita možnost ip-recvdstaddr (BSD) nebo ip-pktinfo (jiné platformy), socat nastaví tuto proměnnou na cílovou adresu přijatého paketu. To je zvláště užitečné pro identifikaci adresovaných paketů všesměrového a vícesměrového vysílání.
SOCAT_IP_IF (výstup)
Se všemi adresami RECVFROM založenými na IPv4, kde je použita možnost ip-recvif (BSD) nebo ip-pktinfo (jiné platformy), socat nastaví tuto proměnnou na název rozhraní, kde byl paket přijat.
SOCAT_IP_LOCADDR (výstup)
Se všemi adresami RECVFROM založenými na IPv4, kde je použita možnost ip-pktinfo, nastaví socat tuto proměnnou na adresu rozhraní, kde byl paket přijat.
SOCAT_IP_TOS (výstup)
Se všemi adresami RECVFROM založenými na IPv4, kde je použita možnost ip-recvtos, socat nastaví tuto proměnnou na TOS (typ služby) přijatého paketu.
SOCAT_IP_TTL (výstup)
Se všemi adresami RECVFROM založenými na IPv4, kde je použita možnost ip-recvttl, socat nastaví tuto proměnnou na TTL (time to live) přijatého paketu.
SOCAT_IPV6_HOPLIMIT (výstup)
Se všemi adresami RECVFROM založenými na IPv6, kde je použita možnost ipv6-recvhoplimit, socat nastaví tuto proměnnou na hodnotu hoplimit přijatého paketu.
SOCAT_IPV6_DSTADDR (výstup)
Se všemi adresami RECVFROM založenými na IPv6, kde je použita možnost ipv6-recktinfo, socat nastaví tuto proměnnou na cílovou adresu přijatého paketu.
SOCAT_IPV6_TCLASS (výstup)
Se všemi adresami RECVFROM založenými na IPv6, kde je použita možnost ipv6-recvtclass, socat nastaví tuto proměnnou na třídu přenosu přijatého paketu.
SOCAT_OPENSSL_X509_ISSUER (výstup)
Pole vystavitele z rovnocenný certifikát
SOCAT_OPENSSL_X509_SUBJECT (výstup)
Pole předmětu z certifikátu rovnocenných zařízení
SOCAT_OPENSSL_X509_COMMONNAME (výstup)
commonName položky z peer certifikátů předmětu. Více hodnot je odděleno " // ".
SOCAT_OPENSSL_X509_* (výstup)
všechny ostatní položky z předmětu rovnocenných certifikátů
SOCAT_OPENSSL_X509V3_DNS (výstup)
Položky DNS z rozšíření vzájemných certifikátů - pole subjectAltName. Více hodnot je odděleno " // ".
HOSTNAME (vstup)
Slouží k určení názvu hostitele pro protokolování (viz -lh).
LOGNAME (vstup)
Používá se jako název pro uživatelské jméno klienta socks, pokud není zadán žádný socksuser.
S možnostmi su a su-dje LOGNAME nastaveno na dané uživatelské jméno.
UŽIVATEL (vstup)
Používá se jako název pro uživatelské jméno klienta socks, pokud není zadán žádný socksuser a LOGNAME je prázdný.
S možnostmi su a su-dje uživatel nastaven na dané uživatelské jméno.
SHELL (výstup)
S možnostmi su a su-dje SHELL nastaven na přihlašovací prostředí daného uživatele.
PATH (výstup)
Lze nastavit s možností cesty pro exec a systémové adresy.
HOME (výstup)
S možnostmi su a su-dje home nastaven na domovský adresář daného uživatele.

Kredity

Práce následujících skupin a organizací byla pro tento projekt neocenitelná:

FSF (GNU, http://www.fsf.org/ projekt s jejich bezplatným a přenosným vývojovým softwarem a spoustou dalších užitečných nástrojů a knihoven.

Komunita vývojářů Linuxu (http://www.linux.org/) pro poskytování bezplatného operačního systému s otevřeným zdrojovým kódem.

Open Group (http://www.unix-systems.org/) pro zpřístupnění jejich standardních specifikací na internetu zdarma.

Verze

Tato muž stránka popisuje verzi 1.7.4 socat.

Chyby

Adresy nelze vnořené, takže jeden proces socat nemůže, například, řídit ssl přes ponožky.

Možnost adresy ftruncate bez hodnoty používá výchozí hodnotu 1 namísto 0.

Podrobné režimy (-x a/nebo -v) zobrazují znaky ukončení řádku nekonzistentně při použití možností adresy cr nebo CRNL: Zobrazují data po převodu v obou směrech.

Nastavení blocksize přenosu dat (-b) je ignorováno s přečtením adresy.

Odeslat hlášení o chybách na <socat@dest-unreach.org>

VIZ TAKÉ

nc(1), rinetd(8), openssl(1), stunnel(8), rlwrap(1), setsid(1)

Socat domovská stránka http://www.dest-unreach.org/socat/

Autor

Gerhard Rieger <rieger@dest-unreach.org> a přispěvatelé

Original: http://www.dest-unreach.org/socat/doc/socat.html