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í:
-
tuto možnost lze použít pouze na druhou adresu
socat.
-
nelze jej použít na část duální
adresy.
-
první adresa socat nemůže být OPENSSL nebo READLINE
-
socat možnosti -b, -t, -D, -l, -v, -x stát se k ničemu
-
pro obě adresy, možnosti ignoreeof, CR a CRNL se stanou zbytečnými
-
pro druhou adresu (tu s možností nofork),
možnosti připojit, cloexec, hejno, uživatel, skupina, režim,
nonblock, perm-late, setlk a setpgid nelze použít. Některé z
nich by však mohly být použity na první adrese.
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
-
Má 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