# Utilitaire Socat {{METATOC 4-5}} #### Description Socat est un utilitaire basé sur la ligne de commande qui établit deux flux d'octets bidirectionnels et transfère les données entre eux. Parce que les flux peuvent être construits à partir d'un grand ensemble de différents types de puits et de sources de données (voir les types d'adresse) et que de nombreuses options d'adresse peuvent être appliquées aux flux, socat peut être utilisé à différentes fins. Filan est un utilitaire qui imprime des informations sur ses descripteurs de fichiers actifs à la sortie standard. Il a été écrit pour le débogage de socat , mais pourrait également être utile à d’autres fins. Utiliser l'option -h pour trouver plus d'informations. Procan est un utilitaire qui imprime des informations sur les paramètres du processus à la sortie standard. Il a été écrit pour mieux comprendre certaines propriétés de processus UNIX et pour déboguer socat , mais pourrait être utile à d’autres fins également. #### Cycle de vie Le cycle de vie d'une instance de socat se compose généralement de quatre phases. ##### Dans la phase d' initialisation les options de ligne de commande sont analysées et la journalisation est initialisée. ##### Pendant la phase ouverte socat ouvre la première adresse et ensuite la deuxième adresse. Ces étapes bloquent généralement; Ainsi, en particulier pour les types d'adresses complexes comme les chaussettes, les demandes de connexion ou les boîtes de dialogue d'authentification doivent être terminées avant le démarrage de l'étape suivante. ##### Lors de la phase de transfert socat surveille les descripteurs de fichiers en lecture et en écriture des deux flux via select () et, lorsque les données sont disponibles d'un côté et peuvent être écrites de l'autre côté, socat le lit et effectue des conversions de caractères si nécessaire. écrit les données dans le descripteur de fichier d'écriture de l'autre flux, puis continue d'attendre d'autres données dans les deux directions. ##### Lors de la phase de fermeture Lorsque l’un des flux atteint effectivement la fin de vie, la phase de fermeture commence. Socat transfère la condition EOF à l'autre flux, c.-à-d. Tente d'arrêter uniquement son flux d'écriture, ce qui lui donne une chance de se terminer normalement. Pendant un temps défini, socat continue à transférer des données dans l'autre sens, puis ferme tous les canaux restants et se termine. #### Options Socat fournit des options de ligne de commande qui modifient le comportement du programme. Ils n’ont rien à voir avec les options d’adresse utilisées dans les spécifications d’adresses. ^ Option ^ Description ^ | -V | Retourne la version et les informations sur les fonctionnalités disponibles pour la sortie standard et la sortie. | | -h (-?) | Retourne un texte d'aide pour stdout décrivant les options de ligne de commande et les types d'adresses disponibles, puis quitte. | | -hh (-??) | Comme -h, plus une liste des noms abrégés de toutes les options d'adresse disponibles. Certaines options dépendent de la plate-forme, cette sortie est donc utile pour vérifier l'implémentation particulière. | | -hhh (-???) | Comme -hh, plus une liste de tous les noms d'options d'adresse disponibles. | | -ré | Sans cette option, seuls les messages fatals et d'erreur sont générés. L'application de cette option imprime également des messages d'avertissement. Voir DIAGNOSTICS pour plus d'informations. | | -d -d | Imprime les messages fatals, d'erreur, d'avertissement | | -d -d -d | Imprime les messages fatals, d'erreur, d'avertissement, de notification et d'information. | | -d -d -d -d | Imprime les messages fatals, d'erreur, d'avertissement, de notification, d'information et de débogage. | | -RÉ | Consigne les informations sur les descripteurs de fichiers avant de commencer la phase de transfert. | | -ly [] | Écrit des messages dans syslog au lieu de stderr; gravité comme défini avec l'option -d. Avec facultatif , le type syslog peut être sélectionné, par défaut "daemon". Les bibliothèques tierces peuvent ne pas obéir à cette option. | | -lf | Écrit des messages dans [nom\_fichier] au lieu de stderr. Certaines bibliothèques tierces, en particulier libwrap, peuvent ne pas obéir à cette option. | | -ls | Écrit des messages sur stderr (c'est la valeur par défaut). Certaines bibliothèques tierces peuvent ne pas obéir à cette option, en particulier libwrap semble se connecter uniquement à syslog. | | -lp | Remplace le nom du programme imprimé dans les messages d'erreur et utilisé pour construire des noms de variables d'environnement. | | -lu | Étend l'horodatage des messages d'erreur à la résolution microseconde. Ne fonctionne pas lors de la connexion à syslog. | | -lm [] | Mode journal mixte. Pendant le démarrage, les messages sont imprimés sur stderr; lorsque socat démarre la boucle de phase de transfert ou le mode démon (c.-à-d. après avoir ouvert tous les flux et avant de commencer le transfert de données, ou avec les sockets d'écoute avec l'option fork, avant le premier appel), la journalisation passe à syslog. Avec facultatif , le type syslog peut être sélectionné, par défaut "daemon". | | -lh | Ajoute le nom d'hôte pour consigner les messages. Utilise la valeur de la variable d'environnement HOSTNAME ou la valeur extraite avec uname () si HOSTNAME n'est pas défini. | | -v | Écrit les données transférées non seulement dans leurs flux cibles, mais également dans stderr. Le format de sortie est du texte avec certaines conversions pour la lisibilité, et préfixé par ">" ou "<" pour indiquer le sens du flux. | | -X | Écrit les données transférées non seulement dans leurs flux cibles, mais également dans stderr. Le format de sortie est hexadécimal, préfixé par ">" ou "<" indiquant les directions du flux. Peut être combiné avec -v. | | -b | Définit le bloc de transfert de données [size\_t]. Au plus octets sont transférés par étape. La valeur par défaut est 8192 octets. | | -s | Par défaut, socat se termine lorsqu'une erreur s'est produite pour empêcher le processus de s'exécuter lorsqu'une option n'a pas pu être appliquée. Avec cette option, socat est bâclé avec des erreurs et essaie de continuer. Même avec cette option, socat quittera les fatals et annulera les tentatives de connexion en cas d'échec des contrôles de sécurité. | | -t | Lorsqu'un canal a atteint EOF, la partie écriture de l'autre canal est arrêtée. Ensuite, socat attend [timeval] secondes avant de se terminer. La valeur par défaut est 0,5 seconde. Ce délai d'attente s'applique uniquement aux adresses où la partie écriture et lecture peut être fermée indépendamment. Lorsque, pendant l'intervalle de temporisation, la partie lecture donne EOF, socat se termine sans attendre le délai d'attente. | | -T | Délai d'inactivité total: lorsque socat est déjà dans la boucle de transfert et qu'il ne s'est rien passé pendant [timeval] secondes (aucune donnée n'est arrivée, aucune interruption n'est survenue ...), alors elle se termine. Utile avec des protocoles comme UDP qui ne peuvent pas transférer EOF. | | -u | Utilise le mode unidirectionnel. La première adresse n'est utilisée que pour la lecture et la seconde adresse est utilisée uniquement pour l'écriture (exemple). | | -U | Utilise le mode unidirectionnel en sens inverse. La première adresse est uniquement utilisée pour l'écriture et la deuxième adresse est uniquement utilisée pour la lecture. | -g | Lors de l'analyse de l'option d'adresse, ne vérifie pas si l'option est considérée comme utile dans l'environnement d'adresse indiqué. Utilisé si on souhaite, par exemple, forcer une option de socket sur un périphérique série. | | -L | Si le fichier de verrouillage existe, quitte avec erreur. Si le fichier de verrouillage n'existe pas, le crée et continue, dissocie le fichier de verrouillage à la sortie. | | -W | Si le fichier de verrouillage existe, attend qu'il disparaisse. Lorsque le fichier de verrouillage n'existe pas, le crée et continue, supprime le fichier de verrouillage à la sortie. | | -4 | Utilise la version IP 4 au cas où les adresses ne spécifient pas implicitement ou explicitement une version; c'est la valeur par défaut. | | -6 | Utilise la version IP 6 au cas où les adresses ne spécifient pas implicitement ou explicitement une version. | #### Spécifications d'adresse Avec les arguments de ligne de commande d'adresse, l'utilisateur donne des instructions socat et les informations nécessaires pour établir les flux d'octets. Une spécification d'adresse consiste généralement en un mot-clé de type adresse, zéro ou plusieurs paramètres d'adresse requis séparés par ':' du mot-clé et les uns des autres, et zéro ou plusieurs options d'adresse séparées par ','. Le mot-clé spécifie le type d'adresse (par exemple, TCP4, OPEN, EXEC). Pour certains mots-clés, il existe des synonymes ('-' pour STDIO, TCP pour TCP4). Les mots clés sont insensibles à la casse. Pour quelques types d'adresse spéciaux, le mot-clé peut être omis: Les spécifications d'adresse commençant par un nombre sont supposées être des adresses FD (descripteur de fichier brut); si un '/' est trouvé avant le premier ':' ou ',', GOPEN (fichier générique ouvert) est supposé. Le nombre et le type requis de paramètres d'adresse dépendent du type d'adresse. Par exemple, TCP4 requiert une spécification de serveur (nom ou adresse) et une spécification de port (numéro ou nom de service). Zéro ou plusieurs options d'adresse peuvent être données avec chaque adresse. Ils influencent l'adresse à certains égards. Les options consistent en un mot-clé d'option ou un mot-clé d'option et une valeur, séparés par '='. Les mots-clés d'options sont insensibles à la casse. Pour filtrer les options utiles avec un type d'adresse, chaque option est membre d'un groupe d'options. Pour chaque type d'adresse, un ensemble de groupes d'options est autorisé. Seules les options appartenant à l'un de ces groupes d'adresses peuvent être utilisées (sauf avec l'option -g). Les spécifications d'adresse qui suivent le schéma ci-dessus sont également appelées spécifications d'adresse unique . Deux adresses simples peuvent être combinées avec "!!" pour former une adresse de type double pour un canal. Ici, la première adresse est utilisée par socat pour lire les données et la seconde adresse pour écrire les données. Il est impossible de spécifier une option une seule fois pour l'appliquer aux deux adresses uniques. Habituellement, les adresses sont ouvertes en mode lecture / écriture. Lorsqu'une adresse fait partie d'une spécification à double adresse ou lorsque l'option -u ou -U est utilisée, une adresse peut être utilisée uniquement pour la lecture ou l'écriture. Considérant cela est important avec certains types d'adresses. Avec socat version 1.5.0 et supérieure, l'analyse lexicale tente de gérer les guillemets et les parenthèses de manière significative et permet d'échapper des caractères spéciaux. Si l'un des caractères ({['est trouvé, le caractère de fermeture correspondant -)}]' - est recherché; ils peuvent aussi être imbriqués. Dans ces constructions, les caractères et les chaînes de caractères spéciaux de socats:, !! ne sont pas traités spécialement. Tous ces caractères et chaînes peuvent être échappés avec \ ou dans "" Les sections suivantes décrivent les types d'adresses disponibles avec leurs mots-clés, paramètres et sémantique. #### Les adresses IP ##### IP-SENDTO: : Ouvre un socket IP brut. Selon la spécification de l'hôte ou l'option pf, le protocole IP version 4 ou 6 est utilisé. Il utilise pour envoyer des paquets à [adresse IP] et reçoit des paquets de l'hôte, ignore les paquets d'autres hôtes. Le protocole 255 utilise le socket brut avec l'en-tête IP faisant partie des données. Groupes d'options: FD, SOCKET, IP4, IP6\\ Options utiles: pf, ttl\\ Voir aussi: IP4-SENDTO, IP6-SENDTO, IP-RECVFROM, IP-RECV, UDP-SENDTO, UNIX-SENDTO | IP4-SENDTO: : | Comme IP-SENDTO, mais utilise toujours IPv4.\\ \\ Groupes d'options: FD, SOCKET, IP4 | | IP6-SENDTO: : | Comme IP-SENDTO, mais utilise toujours IPv6. | Groupes d'options: FD, SOCKET, IP6 ##### IP-DATAGRAM: : Envoie des données sortantes à l'adresse spécifiée, qui peut notamment être une adresse de diffusion ou de multidiffusion. Les paquets arrivant sur le socket local sont vérifiés si leurs adresses source correspondent aux options RANGE ou TCPWRAP. Ce type d'adresse peut par exemple être utilisé pour mettre en œuvre des communications de diffusion ou de multidiffusion symétriques ou asymétriques. Groupes d'options: FD, SOCKET, IP4, IP6, RANGE\\ Options utiles: bind, range, tcpwrap, broadcast, boucle ip multicast, ip-multicast-ttl, ip-multicast-if, ip-add-membership, ttl, tos, pf\\ Voir aussi: DATAGRAM IP4, DATAGRAM IP6, IP-SENDTO, IP-RECVFROM, IP-RECV, UDP-DATAGRAM | IP4-DATAGRAM: : | Comme IP-DATAGRAM, mais utilise toujours IPv4. (Exemple)\\ \\ `Groupes d'options: FD, SOCKET, IP4, RANGE` | | IP6-DATAGRAM: : | Comme IP-DATAGRAM, mais utilise toujours IPv6. IPv6 ne connaît pas les émissions.\\ \\ `Groupes d'options: FD, SOCKET, IP6, RANGE` | ##### IP-RECVFROM: Ouvre un socket IP brut de . Selon l'option pf, le protocole IP version 4 ou 6 est utilisé. Il reçoit un paquet d'un pair non spécifié et peut envoyer un ou plusieurs paquets de réponse à ce pair. Ce mode est particulièrement utile avec l'option fork où chaque paquet - provenant de pairs arbitraires - est géré par son propre sous-processus. Cela permet un comportement similaire aux serveurs basés sur UDP typiques tels que ntpd ou named. les paquets de réponse peuvent être récupérés en tant que trafic entrant lorsque l'adresse IP de l'expéditeur et du destinataire est identique car il n'y a pas de numéro de port pour distinguer les sockets. Cette adresse fonctionne bien avec les homologues d'adresses IP-SENDTO (voir ci-dessus). Le protocole 255 utilise le socket brut avec l'en-tête IP faisant partie des données. Groupes d'options: FD, SOCKET, IP4, IP6, CHILD, RANGE\\ Options utiles: pf, fork, range, ttl, broadcast\\ Voir aussi: IP4-RECVFROM, IP6-RECVFROM, IP-SENDTO, IP-RECV, UDP-RECVFROM, UNIX-RECVFROM | IP4-RECVFROM: | Comme IP-RECVFROM, mais utilise toujours IPv4.\\ \\ `Groupes d'option: FD, SOCKET, IP4, CHILD, RANGE` | | IP6-RECVFROM: | Comme IP-RECVFROM, mais utilise toujours IPv6.\\ \\ `Groupes d'options: FD, SOCKET, IP6, CHILD, RANGE` | ##### IP-RECV: Ouvre un socket IP brut de . Selon l'option pf, le protocole IP version 4 ou 6 est utilisé. Il reçoit des paquets de plusieurs pairs non spécifiés et fusionne les données. Aucune réponse n'est possible. Cela peut être, par exemple, adressé par des homologues d'adresses IP-SENDTO. Le protocole 255 utilise le socket brut avec l'en-tête IP faisant partie des données. Groupes d'options: FD, SOCKET, IP4, IP6, RANGE\\ Options utiles: pf, range\\ Voir aussi: IP4-RECV, IP6-RECV, IP-SENDTO, IP-RECVFROM, UDP-RECV, UNIX-RECV | IP4-RECV: | Comme IP-RECV, mais utilise toujours IPv4.\\ \\ `Groupes d'options: FD, SOCKET, IP4, RANGE` | | IP6-RECV: | Comme IP-RECV, mais utilise toujours IPv6.\\ \\ `Groupes d'options: FD, SOCKET, IP6, RANGE` | #### Les adresses SCTP SCTP est un protocole de transport, équivalent dans un certain sens au TCP ou à l'UDP. En effet, il fournit des services similaires à TCP, assurant optionnellement la fiabilité, la remise en ordre des séquences, et le contrôle de congestion. ##### SCTP-CONNECT: : Établit une connexion de flux SCTP avec les [adresse IP] et [service TCP] spécifiés à l'aide de TCP / IP version 4 ou 6, selon la spécification d'adresse, la résolution de nom ou l'option pf. Groupes d'options: FD, SOCKET, IP4, IP6, SCTP, CHILD, RETRY\\ Options utiles: lier, pf, timeout, tos, mtudiscover, sctp-maxseg, sctp-nodelay, nonblock, sourceport, retry, readbytes\\ Voir aussi: SCTP4-CONNECT, SCTP6-CONNECT, SCTP-LISTEN, TCP-CONNECT | SCTP4-CONNECT: : | Comme SCTP-CONNECT, mais ne supporte que le protocole IPv4.\\ \\ `Groupes d'options: FD, SOCKET, IP4, SCTP, CHILD, RETRY` | | SCTP6-CONNECT: : | Comme SCTP-CONNECT, mais ne supporte que le protocole IPv6.\\ \\ `Groupes d'options: FD, SOCKET, IP6, SCTP, CHILD, RETRY` | ##### SCTP-LISTEN: Écoute sur [service TCP] et accepte une connexion TCP / IP. La version IP est 4 ou celle spécifiée avec l'option d'adresse pf, l'option socat (-4, -6) ou la variable d'environnement SOCAT\_DEFAULT\_LISTEN\_IP. L'ouverture de cette adresse est généralement bloquée jusqu'à ce qu'un client se connecte. Groupes d'option: FD, SOCKET, LISTEN, CHILD, RANGE, IP4, IP6, SCTP, RETRY\\ Options utiles: crnl, fork, bind, range, tcpwrap, pf, max-enfants, backlog, sctp-maxseg, sctp-nodelay, su, reuseaddr, retry, cool-write\\ Voir aussi: SCTP4-LISTEN, SCTP6-LISTEN, TCP-LISTEN, SCTP-CONNECT | SCTP4-LISTEN: | Comme SCTP-LISTEN, mais ne supporte que le protocole IPv4.\\ \\ `Groupes d'option: FD, SOCKET, LISTEN, CHILD, RANGE, IP4, SCTP, RETRY` | | SCTP6-LISTEN: | Comme SCTP-LISTEN, mais ne supporte que le protocole IPv6.\\ \\ `Groupes d'options: FD, SOCKET, LISTEN, CHILD, RANGE, IP6, SCTP, RETRY` | #### Les adresses SOCKET ##### SOCKET-CONNECT: : : Crée un socket de flux en utilisant les premier et second paramètres de socket donnés et SOCK\_STREAM (voir man socket \ (2)) et se connecte à l'adresse distante. Les deux paramètres de socket doivent être spécifiés par int numbers. Consulter la documentation de votre système d'exploitation et inclure les fichiers pour trouver les valeurs appropriées. L'adresse distante doit être la représentation de données d'une structure sockaddr sans composants sa\_family et (BSD) sa\_len. On peut - au-delà des options des groupes spécifiés - utiliser également les options des protocoles de niveau supérieur lorsqu'on applique l’option socat -g. Groupes d'options: FD, SOCKET, CHILD, RETRY\\ Options utiles: bind, setsockopt-int, setsockopt-bin, setsockopt-string\\ Voir aussi: TCP, UDP-CONNECT, UNIX-CONNECT, SOCKET-LISTEN, SOCKET-SENDTO ##### SOCKET-DATAGRAM: : : : Crée un socket datagramme en utilisant les trois premiers paramètres de socket donnés (voir man socket \ (2)) et envoie les données sortantes à l'adresse distante. Les trois paramètres de socket doivent être spécifiés par int numbers. Inclure les fichiers pour trouver les valeurs appropriées. L'adresse distante doit être la représentation de données d'une structure sockaddr sans composants sa\_family et (BSD) sa\_len. On peut - au-delà des options des groupes spécifiés - utiliser également les options des protocoles de niveau supérieur lorsqu'on applique l’option socat -g. Groupes d'options: FD, SOCKET, RANGE\\ Options utiles: bind, range, setsockopt-int, setsockopt-bin, setsockopt-string\\ Voir aussi: DATAGRAM UDP, DATAGRAM IP, SOCKET-SENDTO, SOCKET-RECV, SOCKET-RECVFROM ##### SOCKET-LISTEN: : : Crée un socket de flux en utilisant les premier et second paramètres de socket donnés et SOCK\_STREAM (voir man socket \ (2)) et attend les connexions entrantes sur les adresses locales. Les deux paramètres de socket doivent être spécifiés par int numbers. Inclure les fichiers pour trouver les valeurs appropriées. L'adresse locale doit être la représentation de données d'une structure sockaddr sans composants sa\_family et (BSD) sa\_len. On peut - au-delà des options des groupes spécifiés - utiliser également les options des protocoles de niveau supérieur lorsqu'on applique l’option socat -g. Groupes d'options: FD, SOCKET, LISTEN, RANGE, CHILD, RETRY\\ Options utiles: setsockopt-int, setsockopt-bin, setsockopt-string\\ Voir aussi: TCP, UDP-CONNECT, UNIX-CONNECT, SOCKET-LISTEN, SOCKET-SENDTO, SOCKET-SENDTO ##### SOCKET-RECV: : : : Crée un socket en utilisant les trois paramètres de socket donnés (voir man socket \ (2)) et le lie à . Reçoit les données à l'arrivée. Les trois paramètres doivent être spécifiés par int numbers. Inclure les fichiers pour trouver les valeurs appropriées. L'adresse locale doit être la représentation de données d'une structure sockaddr sans composants sa\_family et (BSD) sa\_len. Groupes d'options: FD, SOCKET, RANGE\\ Options utiles: range, setsockopt-int, setsockopt-bin, setsockopt-string\\ Voir aussi: UDP-RECV, IP-RECV, UNIX-RECV, SOCKET-DATAGRAM, SOCKET-SENDTO, SOCKET-RECVFROM ##### SOCKET-RECVFROM: : : : Crée un socket en utilisant les trois paramètres de socket donnés (voir man socket \ (2)) et le lie à . Reçoit les données à l'arrivée et renvoie les réponses à l'expéditeur. Les trois premiers paramètres doivent être spécifiés en tant que nombres int. Inclure les fichiers pour trouver les valeurs appropriées. L'adresse locale doit être la représentation de données d'une structure sockaddr sans composants sa\_family et (BSD) sa\_len. Groupes d'options: FD, SOCKET, CHILD, RANGE\\ Options utiles: fork, range, setsockopt-int, setsockopt-bin, setsockopt-string\\ Voir aussi: UDP-RECVFROM, IP-RECVFROM, UNIX-RECVFROM, SOCKET-DATAGRAM, SOCKET-SENDTO, SOCKET-RECV ##### SOCKET-SENDTO: : : : Crée un socket en utilisant les trois paramètres de socket donnés (voir man socket \ (2)). Envoie les données sortantes à l'adresse indiquée et reçoit les réponses. Les trois paramètres doivent être spécifiés en tant que nombres int. Inclure les fichiers pour trouver les valeurs appropriées. L'adresse distante doit être la représentation de données d'une structure sockaddr sans composants sa\_family et (BSD) sa\_len. Groupes d'options: FD, SOCKET\\ Options utiles: bind, setsockopt-int, setsockopt-bin, setsockopt-string\\ Voir aussi: UDP-SENDTO, IP-SENDTO, UNIX-SENDTO, SOCKET-DATAGRAM, SOCKET-RECV SOCKET-RECVFROM #### Les adresses TCP ##### TCP: : Se connecte à [service TCP] sur [adresse IP] à l'aide de TCP / IP version 4 ou 6, selon la spécification d'adresse, la résolution de nom ou l'option pf. Groupes d'options: FD, SOCKET, IP4, IP6, TCP, RETRY\\ Options utiles: crnl, bind, pf, connect-timeout, tos, mtudiscover, mss, nodelay, nonblock, sourceport, réessayer, readbytes\\ Voir aussi: TCP4, TCP6, TCP-LISTEN, UDP, SCTP-CONNECT, UNIX-CONNECT | TCP4: : | Comme TCP, mais ne supporte que le protocole IPv4 (exemple).\\ \\ `Groupes d'options: FD, SOCKET, IP4, TCP, RETRY` | | TCP6: : | Comme TCP, mais ne supporte que le protocole IPv6.\\ \\ `Groupes d'options: FD, SOCKET, IP6, TCP, RETRY` | ##### TCP-LISTEN: Écoute sur [service TCP] et accepte une connexion TCP / IP. La version IP est 4 ou celle spécifiée avec l'option d'adresse pf, l'option socat (-4, -6) ou la variable d'environnement SOCAT\_DEFAULT\_LISTEN\_IP. L'ouverture de cette adresse est généralement bloquée jusqu'à ce qu'un client se connecte. Groupes d'options: FD, SOCKET, LISTEN, CHILD, RANGE, IP4, IP6, TCP, RETRY\\ Options utiles: crnl, fork, bind, range, tcpwrap, pf, max-children, backlog, mss, su, reuseaddr, réessayer, cool-write\\ Voir aussi: TCP4-LISTEN, TCP6-LISTEN, UDP-LISTEN, SCTP-LISTEN, UNIX-LISTEN, OPENSSL-LISTEN, TCP-CONNECT | TCP4-LISTEN: | Comme TCP-LISTEN, mais ne supporte que le protocole IPv4 (exemple).\\ \\ `Groupes d'options: FD, SOCKET, LISTEN, CHILD, RANGE, IP4, TCP, RETRY` | | TCP6-LISTEN: | Comme TCP-LISTEN, mais ne supporte que le protocole IPv6.\\ \\ `Option utile supplémentaire: ipv6only`\\ `Groupes d'options: FD, SOCKET, LISTEN, CHILD, RANGE, IP6, TCP, RETRY` | #### Les adresses UDP ##### UDP: : Se connecte à [service UDP] sur [adresse IP] en ​​utilisant UDP / IP version 4 ou 6 selon la spécification d'adresse, la résolution de nom ou l'option pf. En raison des propriétés du protocole UDP, aucune connexion réelle n'est établie. les données doivent être envoyées pour la «connexion» au serveur, et aucune condition de fin de fichier ne peut être transportée. Groupes d'options: FD, SOCKET, IP4, IP6\\ Options utiles: ttl, tos, bind, sourceport, pf\\ Voir aussi: UDP4, UDP6, UDP-LISTEN, TCP, IP | UDP4: : | Comme UDP, mais ne supporte que le protocole IPv4.\\ \\ `Groupes d'options: FD, SOCKET, IP4` | | UDP6: : | Comme UDP, mais ne supporte que le protocole IPv6.\\ \\ `Groupes d'options: FD, SOCKET, IP6` | ##### UDP-DATAGRAM: : Envoie des données sortantes à l'adresse spécifiée, qui peut notamment être une adresse de diffusion ou de multidiffusion. Les paquets arrivant sur le socket local sont vérifiés pour le port distant correct et si leurs adresses source correspondent aux options RANGE ou TCPWRAP. Ce type d'adresse peut par exemple être utilisé pour mettre en œuvre des communications de diffusion ou de multidiffusion symétriques ou asymétriques. Groupes d'options: FD, SOCKET, IP4, IP6, RANGE\\ Options utiles: bind, range, tcpwrap, broadcast, boucle ip multicast, ip-multicast-ttl, ip-multicast-if, ip-add-membership, ttl, tos, sourceport, pf\\ Voir aussi: UDP4-DATAGRAM, UDP6-DATAGRAM, UDP-SENDTO, UDP-RECVFROM, UDP-RECV, UDP-CONNECT, UDP-LISTEN, IP-DATAGRAM | UDP4-DATAGRAM: : | Comme UDP-DATAGRAM, mais ne supporte que le protocole IPv4 (exemple1, exemple2).\\ \\ `Groupes d'options: FD, SOCKET, IP4, RANGE ` | | UDP6-DATAGRAM: : | Comme UDP-DATAGRAM, mais ne supporte que le protocole IPv6.\\ \\ `Groupes d'options: FD, SOCKET, IP6, RANGE` | ##### UDP-LISTEN: Attend un paquet UDP / IP arrivant sur [service UDP] et se connecte à l'expéditeur. La version IP acceptée est 4 ou celle spécifiée avec l'option pf. En raison des propriétés du protocole UDP, aucune connexion réelle n'est établie.les données doivent d'abord être fournies par l'homologue et aucune condition de fichier ne peuvent être transportées. Cette adresse est généralement bloquée jusqu'à ce qu'un client se connecte. Groupes d'option: FD, SOCKET, LISTEN, CHILD, RANGE, IP4, IP6\\ Options utiles: fork, bind, range, pf\\ Voir aussi: UDP, UDP4-LISTEN, UDP6-LISTEN, TCP-LISTEN | UDP4-LISTEN: | Comme UDP-LISTEN, mais ne supporte que le protocole IPv4.\\ \\ `Groupes d'option: FD, SOCKET, LISTEN, CHILD, RANGE, IP4` | | UDP6-List: | Comme UDP-LISTEN, mais ne supporte que le protocole IPv6.\\ \\ `Groupes d'option: FD, SOCKET, LISTEN, CHILD, RANGE, IP6` | ##### UDP-SENDTO: : Communique avec le socket homologue spécifié, défini par [service UDP] sur [adresse IP], en utilisant UDP / IP version 4 ou 6 selon la spécification d'adresse, la résolution de nom ou l'option pf. Il envoie des paquets à et reçoit des paquets de cette socket homologue uniquement. Cette adresse implémente efficacement un client de datagramme. Cela fonctionne bien avec les homologues d'adresse socat UDP-RECVFROM et UDP-RECV. Groupes d'options: FD, SOCKET, IP4, IP6\\ Options utiles: ttl, tos, bind, sourceport, pf\\ Voir aussi: UDP4-SENDTO, UDP6-SENDTO, UDP-RECVFROM, UDP-RECV, UDP-CONNECT, UDP-LISTEN, IP-SENDTO | UDP4-SENDTO: : | Comme UDP-SENDTO, mais ne supporte que le protocole IPv4.\\ \\ `Groupes d'options: FD, SOCKET, IP4` | | UDP6-SENDTO: : | Comme UDP-SENDTO, mais ne supporte que le protocole IPv6.\\ \\ `Groupes d'options: FD, SOCKET, IP6` | ##### UDP-RECVFROM: Crée un socket UDP sur [service UDP] en ​​utilisant UDP / IP version 4 ou 6 selon l'option pf. Il reçoit un paquet d'un pair non spécifié et peut envoyer un ou plusieurs paquets de réponse à ce pair. Ce mode est particulièrement utile avec l'option fork où chaque paquet - provenant de pairs arbitraires - est géré par son propre sous-processus. Cela permet un comportement similaire aux serveurs basés sur UDP typiques tels que ntpd ou named. Cette adresse fonctionne bien avec les homologues d'adresse UDP-SENDTO. Groupes d'options: FD, SOCKET, IP4, IP6, CHILD, RANGE\\ Options utiles: fork, ttl, tos, bind, sourceport, pf\\ Voir aussi: UDP4-RECVFROM, UDP6-RECVFROM, UDP-SENDTO, UDP-RECV, UDP-CONNECT, UDP-LISTEN, IP-RECVFROM, UNIX-RECVFROM | UDP4-RECVFROM: | Comme UDP-RECVFROM, mais ne supporte que le protocole IPv4.\\ \\ `Groupes d'option: FD, SOCKET, IP4, CHILD, RANGE` | | UDP6-RECVFROM: | Comme UDP-RECVFROM, mais ne supporte que le protocole IPv6.\\ \\ `Groupes d'options: FD, SOCKET, IP6, CHILD, RANGE` | ##### UDP-RECV: Crée un socket UDP sur [service UDP] en ​​utilisant UDP / IP version 4 ou 6 selon l'option pf. Il reçoit des paquets de plusieurs pairs non spécifiés et fusionne les données. Aucune réponse n'est possible. Cela fonctionne bien avec, par exemple, les homologues d'adresses UDP-SENDTO socat; il se comporte comme un serveur syslog. Groupes d'options: FD, SOCKET, IP4, IP6, RANGE\\ Options utiles: fork, pf, bind, sourceport, ttl, tos\\ Voir aussi: UDP4-RECV, UDP6-RECV, UDP-SENDTO, UDP-RECVFROM, UDP-CONNECT, UDP-LISTEN, IP-RECV, UNIX-RECV | UDP4-RECV: | Comme UDP-RECV, mais ne supporte que le protocole IPv4.\\ \\ `Groupes d'options: FD, SOCKET, IP4, RANGE` | | UDP6-RECV: | Comme UDP-RECV, mais ne supporte que le protocole IPv6.\\ \\ `Groupes d'options: FD, SOCKET, IP6, RANGE` | #### Les adresses UNIX ##### UNIX-CONNECT: Se connecte à en supposant qu'il s'agit d'un socket de domaine UNIX. Si n'existe pas, il s'agit d'une erreur. si n'est pas un socket de domaine UNIX, il s'agit d'une erreur; Si est un socket de domaine UNIX, mais qu'aucun processus n'est à l'écoute, il s'agit d'une erreur. Groupes d'options: FD, SOCKET, NAMED, RETRY, UNIX\\ Options utiles: bind\\ Voir aussi: UNIX-LISTEN, UNIX-SENDTO, TCP ##### UNIX-LISTEN: Écoute en utilisant un socket de domaine UNIX et accepte une connexion. Si existe et n'est pas un socket, il s'agit d'une erreur. Si existe et est une socket UNIX, la liaison à l'adresse échoue. Cette adresse est généralement bloquée jusqu'à ce qu'un client se connecte. Depuis la version 1.4.3, le système de fichiers est supprimé lorsque cette adresse est fermée (voir ci-dessous). Groupes disponibles: FD, SOCKET, NAMED, LISTEN, CHILD, RETRY, UNIX\\ Options utiles: fork, umask, mode, user, group, unlink-early\\ Voir aussi: UNIX-CONNECT, UNIX-RECVFROM, UNIX-RECV, TCP-LISTEN ##### UNIX-SENDTO: Communique avec la paire de socket spécifiée, définie par [] en supposant qu'il s'agit d'un socket de datagramme de domaine UNIX. Il envoie des paquets et reçoit des paquets de cette homologue uniquement. Il peut être nécessaire pour une socket locale à une adresse (par exemple / tmp / sock1, qui ne doit pas exister auparavant). Ce type d'adresse fonctionne bien avec les homologues de UNIX-RECVFROM et UNIX-RECV. Groupes disponibles: FD, SOCKET, NAMED, UNIX\\ Options utiles: bind\\ Voir aussi: UNIX-RECVFROM, UNIX-RECV, UNIX-CONNECT, UDP-SENDTO, IP-SENDTO ##### UNIX-RECVFROM: Un socket de datagramme de domaine UNIX []. Reçoit un paquet et peut envoyer un ou plusieurs paquets de réponses à cette paire. Ce mode est particulièrement utile avec une fork dans laquelle chaque paquet contient des arbitrages - est géré par son propre sous-processus. Cette adresse fonctionne bien avec les homologues de UNIX-SENDTO. Options de groupes: FD, SOCKET, NAMED, CHILD, UNIX\\ Options utiles: fork\\ Voir aussi: UNIX-SENDTO, UNIX-RECV, UNIX-LISTEN, UDP-RECVFROM, IP-RECVFROM ##### UNIX-RECV: Un socket de datagramme de domaine UNIX []. Reçoit les paquets de plusieurs homologues non spécifiés et fusionne les données. Aucune réponse n'est possible. Cela peut être, par exemple, adressé par les homologues de soc UNIX-SENDTO. Il existe un serveur Syslog. Groupes disponibles: FD, SOCKET, NAMED, UNIX Voir aussi: UNIX-SENDTO, UNIX-RECVFROM, UNIX-LISTEN, UDP-RECV, IP-RECV ##### UNIX-CLIENT: Communique avec le socket homologue spécifié, défini par [] en supposant qu'il s'agit d'un socket de domaine UNIX. Il essaie d'abord de se connecter et, en cas d'échec, suppose qu'il s'agit d'un socket datagramme, supportant ainsi les deux types. Groupes d'options: FD, SOCKET, NAMED, UNIX\\ Options utiles: bind\\ Voir aussi: UNIX-CONNECT, UNIX-SENDTO, GOPEN #### Les adresses ABSTRACT Les adresses ABSTRACT sont presque identiques aux adresses UNIX associées, sauf si elles ne traitent pas les sockets basées sur le système de fichiers mais un autre espace d'adressage de domaine UNIX. Pour archiver ceci, les chaînes de données sont préfixées avec "\ 0" en interne. This feature is available (only?) Sur Linux. Les groupes peuvent choisir parmi les adresses UNIX associées, sauf que les adresses ABSTRACT ne sont pas membres du groupe NAMED. | ABSTRACT-CONNECT: | | | ABSTRACT-LISTEN: | | | ABSTRACT-SENDTO: | | | ABSTRACT-RECVFROM: | | | ABSTRACT-RECV: | | | ABSTRACT-CLIENT: | | #### Les autres types d'adresses ##### CREATE: Ouvre avec creat() et utilise le descripteur de fichier pour écrire. Ce type d'adresse nécessite un contexte en écriture seule, car un fichier ouvert avec creat ne peut pas être lu. Les drapeaux comme O\_LARGEFILE ne peuvent pas être appliqués. Si on en a besoin, utiliser OPEN avec les options create, create. doit être un chemin existant ou non existant. Si est un tube nommé, creat () pourrait bloquer; si fait référence à un socket, il s'agit d'une erreur. Groupes d'options: FD, REG, NAMED\\ Options utiles: mode, user, group, unlink-early, unlink-late, append\\ Voir aussi: OPEN, GOPEN ##### EXEC: fork un sous-processus qui établit la communication avec son processus parent et appelle le programme spécifié avec execvp (). est une commande simple avec des arguments séparés par des espaces simples. Si le nom du programme contient un '/', la partie après le dernier '/' est considérée comme ARGV [0]. Si le nom du programme est un chemin relatif, la sémantique execvp () pour trouver le programme via $ PATH s'applique. Après un démarrage réussi du programme, socat écrit les données dans stdin du processus et lit à partir de sa sortie standard via une socket de domaine UNIX générée par socketpair() par défaut. (Exemple) Groupes d'options: FD, SOCKET, EXEC, FORK, TERMIOS\\ Options utiles: path, fdin, fdout, chroot, su, su-d, nofork, pty, stderr, ctty, setsid, pipes, login, sigint, sigquit Voir aussi: SYSTEM \\ ##### FD: Utilise le descripteur de fichier . Il doit déjà exister en tant que descripteur de fichier UNIX valide. Groupes d'options: FD (TERMIOS, REG, SOCKET)\\ Voir aussi: STDIO, STDIN, STDOUT, STDERR ##### GOPEN: (Generic open) Ce type d'adresse essaie de gérer toute entrée de système de fichiers à l'exception des répertoires utiles. peut être un chemin relatif ou absolu. S'il existe déjà, son type est vérifié. Dans le cas d'une socket de domaine UNIX, socat se connecte; Si la connexion échoue, socat suppose un socket datagramme et utilise les appels sendto (). Si l'entrée n'est pas un socket, socat l' ouvre en appliquant le drapeau O\_APPEND. S'il n'existe pas, il est ouvert avec l'indicateur O\_CREAT en tant que fichier normal (exemple). Groupes d'options: FD, REG, SOCKET, NAMED, OPEN\\ Voir aussi: OPEN, CREATE, UNIX-CONNECT ##### Interface: Communique avec un réseau connecté sur une interface en utilisant des paquets bruts, y compris des données de niveau de liaison. est le nom de l'interface réseau. Actuellement disponible uniquement sous Linux. Groupes d'options: FD, SOCKET\\ Options utiles: pf, type\\ Voir aussi: ip-recv ##### OPEN: Ouvre à l'aide de l'appel système open () (exemple). Cette opération échoue sur les sockets de domaine UNIX. Ce type d'adresse est rarement utile en mode bidirectionnel. Groupes d'options: FD, REG, NAMED, OPEN\\ Options utiles: creat, excl, noatime, nofollow, append, rdonly, wronly, lock, readbytes, ignoreeof\\ Voir aussi: CREATE, GOPEN, UNIX-CONNECT ##### OPENSSL: : Essaie d'établir une connexion SSL à [service TCP] sur [adresse IP] à l'aide de TCP / IP version 4 ou 6, selon la spécification d'adresse, la résolution de nom ou l'option pf. Jusqu'à la version 1.7.2.4, la validité du certificat de serveur n'était vérifiée que par rapport au magasin de certificats système, à cafile ou à capath, mais pas au nom du serveur ou à son adresse IP. Depuis la version 1.7.3.0, socat vérifie que le certificat homologue correspond au paramètre ou à la valeur de l'option openssl-commonname. Socat essaie de le faire correspondre aux objets du certificat commonName et à l'extension de certification subjectAltName. Les caractères génériques du certificat sont pris en charge. Groupes d'options: FD, SOCKET, IP4, IP6, TCP, OPENSSL, RETRY\\ Options utiles: cipher, method, verify, commonname cafile, capath, certificate, key, compress, bind, pf, connect-timeout, sourceport, retry\\ Voir aussi: OPENSSL-LISTEN, TCP ##### OPENSSL-LISTEN: Ecoute tcp [service TCP]. La version IP est 4 ou celle spécifiée avec pf. Lorsqu'une connexion est acceptée, cette adresse se comporte comme un serveur SSL. Lorsqu'on veut utiliser l'option de certificat avec cette adresse. La validité du certificat client n'est vérifiée que pour cafile ou capath, mais pas pour le nom du client ou son adresse IP! Groupes d'options: FD, SOCKET, IP4, IP6, TCP, LISTEN, OPENSSL, ENFANT, GAMME, RETRY\\ Options utiles: pf, cipher, method, verify, commonname cafile, capath, certificate, key, compress, fork, bind, range, tcpwrap, su, reuseaddr, retry\\ Voir aussi: OPENSSL, TCP-LISTEN ##### PIPE: Si existe déjà, il est ouvert. S'il n'existe pas, un canal nommé est créé et ouvert. À partir de la version 1.4.3 de socat, le canal nommé est supprimé lorsque l'adresse est fermée (mais voir l'option unlink-close) Lorsqu'un tube est utilisé à la fois pour la lecture et l'écriture, il fonctionne comme un service d'écho.> WRAP important>Lorsqu'un canal est utilisé à la fois pour la lecture et l'écriture et que socat essaie d'écrire plus d'octets que le tampon de canette (Linux 2.4: 2048 octets), socat peut bloquer. Envisager d'utiliser l'option socat, par exemple, -b 2048 Groupes d'options: FD, NAMED, OPEN\\ Options utiles: rdonly, nonblock, group, user, mode, unlink-early\\ Voir aussi: pipe anonyme ##### PIPE Crée un canal sans nom et l'utilise pour la lecture et l'écriture. Cela fonctionne comme un écho, car tout ce qui lui est écrit apparaît immédiatement comme une donnée lue. Lorsque socat essaie d'écrire plus d'octets que le tube ne peut mettre en file d'attente (Linux 2.4: 2048 octets), socat peut bloquer. Par exemple, en utilisant l'option -b 2048 Groupes d'option: FD\\ Voir aussi: pipe nommée ##### PROXY: : : Se connecte à un serveur proxy HTTP sur le port 8080 à l'aide de TCP / IP version 4 ou 6 en fonction de la spécification d'adresse, de la résolution de nom ou de l'option pf et envoie une demande CONNECT pour hostname: port. Si le proxy accorde l'accès et réussit à se connecter à la cible, le transfert de données entre socat et la cible peut commencer. Le trafic n'a pas besoin d'être HTTP mais peut être un protocole arbitraire. Groupes d'options: FD, SOCKET, IP4, IP6, TCP, HTTP, RETRY\\ Options utiles: proxyport, ignorecr, proxyauth, resolution, crnl, bind, connect-timeout, mss, sourceport, retry\\ Voir aussi: SOCKS, TCP ##### PTY Génère un pseudo terminal (pty) et utilise son côté maître. Un autre processus peut ouvrir le côté esclave du pty en l'utilisant comme une ligne ou un terminal série. (Exemple). Si les deux mécanismes ptmx et openpty sont disponibles, ptmx est utilisé (POSIX). Groupes d'options: FD, NAMED, PTY, TERMIOS\\ Options utiles: link, openpty, wait-slave, mode, user, group\\ Voir aussi: UNIX-LISTEN, PIPE, EXEC, SYSTEM ##### READLINE Utilise readline GNU et l'historique sur stdio pour permettre l'édition et la réutilisation des lignes d'entrée (exemple). En raison des restrictions de licence, la fonctionnalité readline est désactivée dans Debian. Voir BOGUES. On peut utiliser STDIO à la place. ##### SOCKS4: : : Se connecte via [adresse IP] à [adresse IPv4] sur [service TCP], en utilisant le protocole socks version 4 sur IP version 4 ou 6 selon la spécification d'adresse, la résolution de nom ou l'option pf (Exemple). Groupes d'options: FD, SOCKET, IP4, IP6, TCP, SOCKS4, RETRY\\ Options utiles: socksuser, socksport, sourceport, pf, retry\\ Voir aussi: SOCKS4A, PROXY, TCP ##### SOCKS4A: : : comme SOCKS4, mais utilise le protocole Socks version 4a, laissant ainsi la résolution du nom d'hôte au serveur Socks. Groupes d'options: FD, SOCKET, IP4, IP6, TCP, SOCKS4, RETRY ##### STDERR Utilise le descripteur de fichier 2. Groupes d'options: FD (TERMIOS, REG, SOCKET)\\ Voir aussi: FD ##### STDIN Utilise le descripteur de fichier 0. Groupes d'options: FD (TERMIOS, REG, SOCKET)\\ Options utiles: readbytes\\ Voir aussi: FD ##### STDIO Utilise le descripteur de fichier 0 pour la lecture et 1 pour l'écriture. Groupes d'options: FD (TERMIOS, REG, SOCKET)\\ Options utiles: readbytes\\ Voir aussi: FD ##### STDOUT Utilise le descripteur de fichier 1. Groupes d'options: FD (TERMIOS, REG, SOCKET)\\ Voir aussi: FD ##### SYSTEM: fork un sous-processus qui établit la communication avec son processus parent et appelle le programme spécifié avec system (). [string] ne doit pas contenir "," ou "!!" et que les méta-caractères du shell doivent être protégés. Après le démarrage du programme, socat écrit les données dans stdin du processus et lit à partir de sa sortie standard. Groupes d'options: FD, SOCKET, EXEC, FORK, TERMIOS\\ Options utiles: chemin, fdin, fdout, chroot, su, su-d, nofork, pty, stderr, ctty, setsid, pipes, sigint, sigquit\\ Voir aussi: EXEC ##### TUN [: / ] Crée un périphérique TUN / TAP Linux et l'assigne éventuellement l'adresse et le masque de réseau fournis par les paramètres. L'interface réseau qui en résulte est presque prête à être utilisée par d'autres processus. socat sert son "côté fil". Cette adresse nécessite un accès en lecture et en écriture au périphérique de clonage du tunnel, généralement / dev / net / tun, ainsi que la permission de définir des ioctl () s. Option iff-up est nécessaire pour activer immédiatement l'interface! Groupes d'options: FD, NAMED, OPEN, TUN\\ Options utiles: iff-up, tun-device, nom-tun, type-tun, iff-no-pi\\ Voir aussi: ip-recv #### Les groupes d'options ##### Groupe d'options FD Ce groupe d'options contient des options appliquées à un descripteur de fichier de style UN * X, quelle que soit sa génération. Étant donné que tous les types d'adresse socat actuels sont basés sur un descripteur de fichier, ces options peuvent être appliquées à n'importe quelle adresse. Certaines de ces options sont également membres d'un autre groupe d'options, qui fournit un autre mécanisme non basé sur fd. Pour ces options, cela dépend du type d'adresse réel et de ses groupes d'options, quel mécanisme est utilisé. Le second mécanisme, non basé sur fd, est prioritaire. | cloexec = | Définit l'indicateur FD\_CLOEXEC avec l'appel système fcntl () à la valeur . S'il est défini, le descripteur de fichier est fermé sur les appels de fonction de la famille exec (). Socat gère cet indicateur en interne pour le fds qu'il contrôle, donc dans la plupart des cas, il ne sera pas nécessaire d'appliquer cette option. | | setlk | Essaie de définir un verrou en écriture discrétionnaire sur l'ensemble du fichier en utilisant l'appel système fcntl (fd, F\_SETLK, ...). Si le fichier est déjà verrouillé, cet appel génère une erreur. Sous Linux, lorsque les autorisations de fichier pour le groupe sont "S" (gx, g + s) et que le système de fichiers est monté localement avec l'option "mand", le verrouillage est obligatoire, empêchant ainsi les autres processus d'ouvrir le fichier. | | setlkw | Essaie de définir un verrou en écriture discrétionnaire en attente sur l'ensemble du fichier à l'aide de l'appel système fcntl (fd, F\_SETLKW, ...). Si le fichier est déjà verrouillé, cet appel est bloqué. Voir l'option setlk pour plus d'informations sur la nécessité de rendre ce verrou obligatoire. | | setlk-rd | Essaie de définir un verrou de lecture discrétionnaire pour tout le fichier en utilisant l'appel système fcntl (fd, F\_SETLK, ...). Si le fichier est déjà verrouillé en écriture, cet appel génère une erreur. Voir l'option setlk pour plus d'informations sur la nécessité de rendre ce verrou obligatoire. | | setlkw-rd | Essaie de définir un verrou de lecture en attente discrétionnaire sur tout le fichier à l'aide de l'appel système fcntl (fd, F\_SETLKW, ...). Si le fichier est déjà verrouillé en écriture, cet appel est bloqué. Voir l'option setlk pour plus d'informations sur la nécessité de rendre ce verrou obligatoire. | | flock-ex | Essaie de définir un verrou de conseil exclusif bloquant sur le fichier à l'aide de l'appel système flock (fd, LOCK\_EX). Socat se bloque dans cet appel si le fichier est verrouillé par un autre processus. | | flock-ex-nb | Essaie de définir un verrou de conseil exclusif nonblock sur le fichier à l'aide de l'appel système flock (fd, LOCK\_EX / LOCK\_NB). Si le fichier est déjà verrouillé, cette option entraîne une erreur. | | flock-sh | Essaie de définir un verrou consultatif partagé bloquant sur le fichier à l'aide de l'appel système flock (fd, LOCK\_SH). Socat se bloque dans cet appel si le fichier est verrouillé par un autre processus. | | flock-sh-nb | Essaie de définir un verrou de conseil partagé nonblock sur le fichier à l'aide de l'appel système flock (fd, LOCK\_SH / LOCK\_NB). Si le fichier est déjà verrouillé, cette option génère une erreur. | | lock | Définit un verrou de blocage sur le fichier. Utilise le mécanisme setlk ou flock en fonction de la disponibilité de la plate-forme concernée. Si les deux sont disponibles, la variante POSIX (setlkw) est utilisée. | | user = | Définit le (propriétaire) du flux. Si l'adresse est membre du groupe d'options NAMED , socat utilise l'appel système chown () après l'ouverture du fichier ou la liaison au socket du domaine UNIX (condition de concurrence !). Sans entrée dans le système de fichiers, socat définit l'utilisateur du flux à l'aide de l'appel système fchown (). Ces appels peuvent nécessiter des privilèges root. | | user-late = | Définit le propriétaire du fd sur avec l'appel système fchown () après ouverture ou connexion du canal. Ceci est utile uniquement sur les entrées du système de fichiers. | | group = | Définit le du flux. Si l'adresse est membre du groupe d'options NAMED , socat utilise l'appel système chown () après l'ouverture du fichier ou la liaison au socket du domaine UNIX (condition de concurrence !). Sans entrée dans le système de fichiers, socat définit le groupe du flux avec l'appel système fchown (). Ces appels peuvent nécessiter une appartenance à un groupe ou des privilèges root. | | group-late = | Définit le groupe du fd sur avec l'appel système fchown () après ouverture ou connexion du canal. Ceci est utile uniquement sur les entrées du système de fichiers. | | mode = | Définit le [mode\_t] (permissions) du flux. Si l'adresse est membre du groupe d'options NAMED et utilise l'appel open () ou creat (), le mode est appliqué avec ceux-ci. Si l'adresse est membre du groupe d'options NAMED sans utiliser ces appels système, socat utilise l'appel système chmod () après avoir ouvert l'entrée du système de fichiers ou la liaison avec le socket du domaine UNIX (condition de concurrence !). Sinon, socat définit le mode du flux en utilisant fchmod (). Ces appels peuvent nécessiter la propriété ou les privilèges root. | | perm-late = | Définit les autorisations de la valeur fd sur [mode\_t] à l'aide de l'appel système fchmod () après ouverture ou connexion du canal. Ceci est utile uniquement sur les entrées du système de fichiers. | | append = | Toujours écrire des données à la fin du fichier. Si l'adresse est membre du groupe d'options OPEN, socat utilise l'indicateur O\_APPEND avec l'appel système open () (exemple). Sinon, socat applique l'appel fcntl (fd, F\_SETFL, O\_APPEND). | | nonblock = | Essaie d'ouvrir ou d'utiliser un fichier en mode nonblock. Ses seuls effets sont que l'appel connect () des adresses TCP ne bloque pas et que l'ouverture d'un canal nommé pour la lecture ne bloque pas. Si l'adresse est membre du groupe d'options OPEN, socat utilise l'indicateur O\_NONBLOCK avec l'appel système open (). Sinon, socat applique l'appel fcntl (fd, F\_SETFL, O\_NONBLOCK). | | binary | Ouvre le fichier en mode binaire pour éviter les conversions de terminaison de ligne implicites (Cygwin). | | text | Ouvre le fichier en mode texte pour forcer les conversions de terminaison de ligne implicites (Cygwin). | | noinherit | Ne conserve pas ce fichier ouvert dans un processus généré (Cygwin). | | cool-write | Simplifie l'écriture en cas d'échec avec EPIPE ou ECONNRESET et enregistre le message avec le niveau de notification au lieu de l' erreur . Cela évite que le fichier journal ne soit rempli de messages d'erreur inutiles lorsque socat est utilisé comme serveur ou proxy à haut volume où les clients abandonnent souvent la connexion.\\ \\ Cette option est expérimentale. | | end-close | Modifie la méthode (dépendante de l'adresse) de la fin d'une connexion pour fermer les descripteurs de fichiers. Ceci est utile lorsque la connexion doit être réutilisée par ou partagée avec d'autres processus (exemple).\\ \\ Normalement, les connexions de socket se termineront par shutdown qui termine le socket même s'il est partagé par plusieurs processus. close "dissocie" le socket du processus mais le maintient actif tant qu'il existe encore des liens provenant d'autres processus.\\ \\ De même, lorsqu'une adresse de type EXEC ou SYSTEM est terminée, socat va généralement tuer explicitement le sous-processus. Avec cette option, il suffit de fermer les descripteurs de fichiers. | | shut-none | Modifie la méthode (dépendante de l'adresse) d'arrêt de la partie écriture d'une connexion pour ne rien faire. | | shut-down | Modifie la méthode (dépendante de l'adresse) d'arrêt de la partie écriture d'une connexion à shutdown \ (fd, SHUT\_WR). Est seulement utile avec les sockets. - | shut-close | Modifie la méthode (dépendante de l'adresse) d'arrêt de la partie écriture d'une connexion pour fermer \ (fd). | | shut-null | Lorsqu'une adresse indique EOF, socat envoie un paquet de taille nulle au canal d'écriture de l'autre adresse pour transférer la condition EOF. Ceci est utile avec UDP et d'autres protocoles de datagramme. A été testé contre netcat et socat avec l'option null-eof. | | null-eof | Normalement, socat ignorera les paquets vides (charge utile de taille nulle) arrivant sur les sockets de datagramme, donc il survit aux analyses de port. Avec cette option, socat interprète les paquets de datagrammes vides comme un indicateur EOF (voir shut-null). | | ioctl-void = | Appelle ioctl() avec la valeur de la requête comme deuxième argument et NULL comme troisième argument. Cette option permet d'utiliser des ioctls qui ne sont pas explicitement implémentés dans socat. | | ioctl-int = : | Appelle ioctl() avec la valeur de la requête comme second argument et la valeur entière comme troisième argument. | | ioctl-intp = : | Appelle ioctl() avec la valeur de la requête comme deuxième argument et un pointeur sur la valeur entière comme troisième argument. | | ioctl-bin = : | Appelle ioctl() avec la valeur de la requête comme second argument et un pointeur sur la valeur de donnée donnée comme troisième argument. Ces données doivent être spécifiées sous forme . | | ioctl-string = : | Appelle ioctl() avec la valeur de la requête comme second argument et un pointeur sur la chaîne donnée comme troisième argument. forme. | ##### Groupe d'options NAMED Ces options fonctionnent sur les entrées du système de fichiers. Voir aussi les options user, group et mode. | user-early = | Modifie le (propriétaire) de l'entrée du système de fichiers avant d'y accéder, en utilisant l'appel système chown (). Cet appel peut nécessiter des privilèges root. | | group-early = | Modifie le de l'entrée du système de fichiers avant d'y accéder, en utilisant l'appel système chown (). Cet appel peut nécessiter une appartenance à un groupe ou des privilèges root. | | perm-early = | Modifie le [mode\_t] de l'entrée du système de fichiers avant d'y accéder, en utilisant l'appel système chmod (). Cet appel peut nécessiter la propriété ou les privilèges root. | | umask = | Définit l'umask du processus sur [mode\_t] avant d'accéder à l'entrée du système de fichiers (utile avec les sockets de domaine UNIX!). Cet appel peut affecter toutes les opérations ultérieures du processus socat ! | | unlink-early | Unlinks (supprime) le fichier avant de l'ouvrir et même avant d'appliquer user-early etc. | | unlink | Unlinks (supprime) le fichier avant d'y accéder, mais après le début de l'utilisateur, etc. | | unlink-late | Unlinks (supprime) le fichier après l'avoir ouvert pour le rendre inaccessible pour d'autres processus après une courte condition de course. | | unlink-close | Supprime l'entrée du système de fichiers d'adresses lors de la fermeture de l'adresse. Pour les canaux nommés, l'écoute des sockets de domaine unix et les liens symboliques des adresses pty, la valeur par défaut est 1; pour les fichiers créés, les fichiers ouverts, les fichiers ouverts génériques et les sockets du domaine unix client, la valeur par défaut est 0. | ##### Groupe d'options OPEN Les options du groupe OPEN permettent de définir des indicateurs avec l'appel système open (). Par exemple l'option `creat` définit le drapeau O\_CREAT. Voir aussi les options append et nonblock. | creat = | Crée le fichier s'il n'existe pas (exemple). | | dsync = | Bloque les appels à write() jusqu'à ce que metainfo soit physiquement écrit sur le média. | | excl = | Avec l'option creat, si le fichier existe, c'est une erreur. | | largefile = | Sur les systèmes 32 bits, autorise un fichier supérieur à `2 ^ 31` octets. | | noatime | Définit les options O\_NOATIME, donc les lectures ne modifient pas l'horodatage d'accès. | | noctty = | Ne fait pas de ce fichier le terminal de contrôle. | | nofollow = | Ne suit pas les liens symboliques. | | nshare = | Ne permet pas de partager ce fichier avec d'autres processus. | | rshare = | Ne permet pas aux autres processus d'ouvrir ce fichier pour l'écriture. | | rsync = | Bloque write() jusqu'à ce que metainfo soit écrit physiquement sur le média. | | sync = | Bloque write() jusqu'à ce que les données soient écrites physiquement sur le média. | | rdonly = | Ouvre le fichier pour la lecture uniquement. | | wronly = | Ouvre le fichier pour l'écriture seulement. | | trunc | Tronque le fichier à la taille 0 lors de son ouverture. | ##### Groupe d'options REG et BLK Ces options sont généralement appliquées à un descripteur de fichier UN * X, mais leur sémantique n'a de sens que pour un fichier prenant en charge l'accès aléatoire. | seek = | Applique l'appel système lseek (fd, , SEEK\_SET) (ou lseek64), positionnant ainsi le pointeur de fichier sur [off\_t ou off64\_t]. La valeur par défaut est 1, et non 0. | | seek-cur = | Applique l'appel système lseek (fd, , SEEK\_CUR) (ou lseek64), positionnant ainsi le pointeur de fichier [off\_t ou off64\_t] octets par rapport à sa position actuelle (qui est généralement 0). La valeur par défaut est 1, et non 0. | | seek-end = | Applique l'appel système lseek (fd, , SEEK\_END) (ou lseek64), positionnant ainsi le pointeur de fichier [off\_t ou off64\_t] octets par rapport à la fin actuelle des fichiers. La valeur par défaut est 1, et non 0. | | ftruncate = | Applique l'appel système ftruncate (fd, ) (ou ftruncate64 si disponible), tronquant ainsi le fichier à la position [off\_t ou off64\_t]. La valeur par défaut est 1, et non 0. | | secret = | | | unrm = | | | compr = | | | ext2-sync = | | | immuable = | | | ext2-append = | | | nodump = | | | ext2-noatime = | | | journal-data = | | | notail = | | | dirsync = | | Ces options modifient les attributs de fichier non standard sur les systèmes d'exploitation et les systèmes de fichiers prenant en charge ces fonctionnalités, comme Linux avec ext2fs, ext3fs ou reiserfs. Voir man 1 chattr pour plus d'informations sur ces options. Il peut y avoir une situation de concurrence entre la création du fichier et l'application de ces options. ##### Groupe d'options PROCESS Les options de ce groupe modifient les propriétés du processus au lieu d'affecter un seul canal de données. Pour les adresses EXEC et SYSTEM et pour les adresses de type LISTEN et CONNECT avec l'option FORK, ces options s'appliquent aux processus enfants au lieu du processus socat principal. | chroot = | Effectue une opération chroot() sur après avoir traité l'adresse (exemple). Cet appel peut nécessiter des privilèges root. | | chroot-early = | Effectue une opération chroot() sur avant d'ouvrir l'adresse. Cet appel peut nécessiter des privilèges root. | | setgid = | Modifie le principal du processus après avoir traité l'adresse. Cet appel peut nécessiter des privilèges root. Cette option ne supprime pas les privilèges liés aux autres groupes. | | setgid-early = | Comme setgid mais est effectué avant d'ouvrir l'adresse. | | setuid = | Modifie le (propriétaire) du processus après avoir traité l'adresse. Cet appel peut nécessiter des privilèges root. Cette option ne supprime pas les privilèges liés au groupe. Vérifier si l'option su correspond mieux à vos besoins. | | setuid-early = | Comme setuid mais est effectué avant d'ouvrir l'adresse. | | su = | Modifie le (propriétaire) et les groupes du processus après avoir traité l'adresse (exemple). Cet appel peut nécessiter des privilèges root. | | su-d = | Nom abrégé de sous-utilisateur retardé. Modifie le (propriétaire) et les groupes du processus après avoir traité l'adresse (exemple). L'utilisateur et ses groupes sont récupérés avant un éventuel chroot (). Cet appel peut nécessiter des privilèges root. | | setpgid = | Rend le processus membre du groupe de processus spécifié . Si aucune valeur n'est donnée ou si la valeur est 0 ou 1, le processus devient le leader d'un nouveau groupe de processus. | | setsid | Fait du processus le leader d'une nouvelle session (exemple). | ##### Groupe d'option READLINE En raison de restrictions de licence, la fonctionnalité readline est désactivée dans Debian (voir BOGUES). Ces options s'appliquent au type d'adresse readline. | history = | Lit et écrit l'historique de / vers (exemple). | | noprompt | Depuis la version 1.4.0, socat per default essaie de déterminer une invite - qui est ensuite transmise à l'appel readline - en mémorisant la dernière ligne incomplète de la sortie. Avec cette option, socat ne passe pas d'invite à readline, il commence donc à éditer les lignes dans la première colonne du terminal. | | noecho = | Spécifie un modèle régulier pour une invite qui empêche l'affichage de la ligne de saisie suivante à l'écran et son ajout à l'historique. L'invite est définie comme le texte qui a été généré à l'adresse readline après le dernier caractère de nouvelle ligne et avant la saisie d'un caractère de saisie. Le modèle est une expression régulière, par exemple `"^ [Pp] assword:. * $" Ou "([Uu] ser: | [Pp] assword :)"`. Voir regex \ (7) pour plus de détails. (Exemple) | | prompt = | Transmet la chaîne en tant qu'invite à la fonction readline. readline imprime cette invite lors de la lecture de l'historique. Si cette chaîne correspond à une invite constante émise par un programme interactif sur l'autre adresse socat, un aspect cohérent peut être créé. | ##### Groupe d'options APPLICATION Ce groupe contient des options qui fonctionnent au niveau des données. Ces options ne s'appliquent qu'aux données "brutes" transférées par socat, mais pas aux données de protocole utilisées par des adresses comme PROXY. | cr | Convertit le caractère de terminaison de ligne par défaut NL ('\ n', 0x0a) en / de CR ('\ r', 0x0d) lors de l'écriture / lecture sur ce canal. | | crnl | Convertit le caractère de terminaison de ligne par défaut NL ('\ n', 0x0a) en / de CRNL ("\ r \ n", 0x0d0a) lors de l'écriture / lecture sur ce canal (exemple). socat supprime simplement tous les caractères CR. | | ignoreeof | Lorsque EOF se produit sur ce canal, socat l' ignore et tente de lire plus de données (comme "tail -f") (exemple). | | readbytes = | socat ne lit que le nombre d'octets de cette adresse (l'adresse ne fournit que le nombre d'octets nécessaires au transfert et fait semblant d'être à la fin du processus). Doit être supérieur à 0. | | lockfile = | Si le fichier de verrouillage existe, quitte avec erreur. Si le fichier de verrouillage n'existe pas, le crée et continue, dissocie le fichier de verrouillage à la sortie. | | waitlock = | Si le fichier de verrouillage existe, attend qu'il disparaisse. Lorsque le fichier de verrouillage n'existe pas, le crée et continue, supprime le fichier de verrouillage à la sortie. | | escape = | Spécifie le code numérique d'un caractère qui déclenche EOF sur le flux d'entrée. Il est utile avec un terminal en mode brut (exemple). | ##### Groupe d'options SOCKET Ces options sont destinées à tous les types de sockets, par exemple IP ou UNIX. La plupart sont appliqués avec un appel à setsockopt (). | bind = | Lie le socket à l'adresse de socket donnée en utilisant l'appel système bind (). La forme de dépend du domaine socket: IP4 et IP6 autorisent la forme `[hostname|hostaddress][:(service|port]]` (exemple), les sockets de domaine UNIX nécessitent . | | connect-timeout = | Abandonne la tentative de connexion après [timeval] avec le statut d'erreur. | | so-bindtodevice = | Lie le socket à la donnée. Cette option peut nécessiter des privilèges root. | | broadcast | Pour les sockets en datagramme, permet d'envoyer des adresses de diffusion et de recevoir des paquets adressés à des adresses de diffusion. | debug | Active le débogage du socket. | | dontroute | Ne communique qu'avec des homologues directement connectés, n'utilise pas de routeurs. | | keepalive | Permet d'envoyer des keepalives sur le socket. | | linger = | Bloque shutdown() ou close() jusqu'à la fin des transferts de données ou l'expiration du délai imparti [int]. | | oobinline | Place des données hors bande dans le flux de données en entrée. | | priority = | Définit le protocole défini par [] pour les paquets sortants. | | rcvbuf = | Définit la taille du tampon de réception après l'appel de socket () à [int]. Avec les sockets TCP, cette valeur correspond à la taille de fenêtre maximale de la socket. | | rcvbuf-late = | Définit la taille du tampon de réception lorsque le socket est déjà connecté à [int]. Avec les sockets TCP, cette valeur correspond à la taille de fenêtre maximale de la socket. | | rcvlowat = | Spécifie le nombre minimal d'octets reçus [int] jusqu'à ce que la couche socket transmette les données mises en mémoire tampon à socat. | | rcvtimeo = | Définit le délai de réception [timeval]. | | reuseaddr | Permet à d'autres sockets de se lier à une adresse même si certaines parties (par exemple le port local) sont déjà utilisées par socat (exemple). | | sndbuf = | Définit la taille du tampon d'envoi après l'appel de socket () à [int]. | | sndbuf-late = | Définit la taille du tampon d'envoi lorsque le socket est connecté à [int]. | | sndlowat = | Spécifie le nombre minimum d'octets dans le tampon d'envoi jusqu'à ce que la couche socket envoie les données à [int]. | | sndtimeo = | Définit le délai d'attente d'envoi en secondes [timeval]. | | pf = | Force l'utilisation de la version ou du protocole IP spécifié. peut être quelque chose comme "ip4" ou "ip6". La valeur résultante est utilisée comme premier argument pour les appels à socket() ou à socketpair(). Cette option affecte la résolution des adresses et la syntaxe requise pour les options de liaison et de plage. | | type = | Définit le type de socket, spécifié comme second argument pour les appels à socket () ou socketpair (), à [int]. La résolution d'adresse n'est pas affectée par cette option. Sous Linux, 1 signifie socket orienté flux, 2 signifie socket datagramme et 3 signifie socket brut. | | prototype | Définit le protocole de la socket, spécifié comme troisième argument pour les appels socket () ou socketpair (), à [int]. La résolution d'adresse n'est pas affectée par cette option. 6 signifie TCP, 17 signifie UDP. | | so-timestamp | Définit l'option de socket SO\_TIMESTAMP. Cela permet de recevoir et d'enregistrer des messages auxiliaires d'horodatage. | | setsockopt-int = : : | Invoque setsockopt() pour le socket avec les paramètres donnés. level [int] est utilisé comme second argument de setsockopt () et spécifie la couche, par exemple SOL\_TCP pour TCP (6 sous Linux) ou SOL\_SOCKET pour la couche socket (1 sous Linux). optname [int] est le troisième argument de setsockopt () et indique quelle option de socket doit être définie. Pour les nombres réels, il faudra peut-être rechercher les fichiers d'inclusion appropriés de votre système. Le 4ème paramètre setsockopt(), valeur [int], est passé à la fonction par pointeur et pour la longueur, le paramètre sizeof \ (int) est pris implicitement. | | setsockopt-bin = : : | Comme setsockopt-int, mais doit être fourni au format dalan et spécifie une séquence arbitraire d'octets; le paramètre de longueur est automatiquement dérivé des données. | | setsockopt-string = : : | Comme setsockopt-int, mais doit être une chaîne. Cette chaîne est transmise à la fonction avec un caractère nul final et le paramètre de longueur est automatiquement dérivé des données. | ##### Groupe d'options UNIX Ces options s'appliquent aux adresses basées sur un domaine UNIX. | unix-tightsocklen = [0/1] | Sur les opérations de socket, transmet une longueur d'adresse de socket qui n'inclut pas l'intégralité de l'enregistrement struct sockaddr\_un mais (en plus des autres composants) uniquement la partie pertinente du nom de fichier ou de la chaîne abstraite. La valeur par défaut est 1. | ##### Groupes d'options IP4 et IP6 Ces options peuvent être utilisées avec les sockets IPv4 et IPv6. | tos = | Définit le champ TOS (type de service) des paquets sortants sur [octet] (voir RFC 791). | | ttl = | Définit le champ TTL (time to live) des paquets sortants sur [octet]. | | ip-options = | Définit les options IP comme le routage source. Doit être donné sous forme binaire, le format recommandé est un "x" précédé d'un nombre pair de chiffres hexadécimaux. Cette option peut être utilisée plusieurs fois, les données sont ajoutées. Par exemple, pour vous connecter à l'hôte 10.0.0.1 via une passerelle en utilisant une route source libre, utiliser la passerelle comme paramètre d'adresse et définir une route source libre en utilisant l'option ip-options = x8307040a000001.\\ \\ Les options IP sont définies dans la RFC 791. | | mtudiscover = <0/1/2> | Prend 0, 1, 2 pour ne jamais vouloir, ou utiliser toujours le chemin MTU découvrir sur ce socket. | | ip-pktinfo | Définit l'option de socket IP\_PKTINFO. Cela permet de recevoir et de consigner des messages auxiliaires contenant l'adresse de destination et l'interface (Linux) (exemple). | | ip-recverr | Définit l'option de socket IP\_RECVERR. Cela permet de recevoir et d'enregistrer des messages auxiliaires contenant des informations d'erreur détaillées. | | ip-recvopts | Définit l'option de socket IP\_RECVOPTS. Cela permet de recevoir et de consigner les messages auxiliaires des options IP (Linux, * BSD). | | ip-recvtos | Définit l'option de socket IP\_RECVTOS. Cela permet de recevoir et de consigner les messages auxiliaires TOS (type de service) (Linux). | | ip-recvttl | Définit l'option de socket IP\_RECVTTL. Cela permet de recevoir et de consigner les messages auxiliaires TTL (Time to Live) (Linux, * BSD). | | ip-recvdstaddr | Définit l'option de socket IP\_RECVDSTADDR. Cela permet de recevoir et d'enregistrer des messages auxiliaires contenant l'adresse de destination (* BSD) (exemple). | | ip-recvif | Définit l'option de socket IP\_RECVIF. Cela permet de recevoir et d'enregistrer des messages auxiliaires d'interface (* BSD) (exemple). | | ip-add-membership | Crée le membre socket du groupe multicast spécifié. Ceci est actuellement uniquement implémenté pour IPv4. L'option prend l'adresse IP du groupe de multidiffusion et des informations sur l'interface réseau souhaitée. Les syntaxes admises sont les suivantes:\\ **ip-add-membership = **\\ **ip-add-membership = **\\ **ip-add-membership = **\\ **ip-add-membership = **\\ **ip-add-membership = **\\ \\ La syntaxe la plus courante est la première, tandis que les autres ne sont disponibles que sur les systèmes qui fournissent struct mreqn (Linux).\\ \\ Les indices des interfaces réseau actives peuvent être affichés à l'aide de l'utilitaire procan . | | ip-multicast-if = | Spécifie le nom d'hôte ou l'adresse de l'interface réseau à utiliser pour le trafic multidiffusion. | | ip-multicast-loop = | Spécifie si le trafic multidiffusion sortant doit retourner à l'interface. | | ip-multicast-ttl = | Définit le TTL utilisé pour le trafic multicast sortant. La valeur par défaut est 1. | | res-debug | Ces options définissent les options de résolution correspondantes (résolution de noms). Ajouter "= 0" pour effacer une option par défaut. Voir homme resolver \ (5) pour plus d'informations sur ces options. ces options ne sont valables que pour l'adresse à laquelle elles sont appliquées. | | res-aaonly | ::: | | res-usevc | ::: | | res-primaire | ::: | | res-igntc | ::: | | res-recurse | ::: | | res-defnames | ::: | | res-stayopen | ::: | | res-dnsrch | ::: | ##### Groupe d'option IP6 Ces options ne peuvent être utilisées que sur des sockets IPv6. Voir les options IP pour les options pouvant être appliquées aux sockets IPv4 et IPv6. | ipv6only = | Définit l'option de socket IPV6\_V6ONLY. Si 0, la pile TCP acceptera également les connexions utilisant le protocole IPv4 sur le même port. La valeur par défaut dépend du système. | | ipv6-recvdstopts | Définit l'option de socket IPV6\_RECVDSTOPTS. Cela permet de recevoir et de consigner les messages auxiliaires contenant les options de destination. | | ipv6-recvhoplimit | Définit l'option de socket IPV6\_RECVHOPLIMIT. Cela permet de recevoir et de consigner les messages auxiliaires contenant le hoplimit. | | ipv6-recvhopopts | Définit l'option de socket IPV6\_RECVHOPOPTS. Cela permet de recevoir et de consigner les messages auxiliaires contenant les options de saut. | | ipv6-recvpktinfo | Définit l'option de socket IPV6\_RECVPKTINFO. Cela permet de recevoir et de consigner des messages auxiliaires contenant l'adresse de destination et l'interface. | | ipv6-unicast-hops = link (TYPE\_INT) () | Définit l'option de socket IPV6\_UNICAST\_HOPS. Cela définit la limite du nombre de sauts (TTL) pour les paquets de monodiffusion sortants. | | ipv6-recvrthdr | Définit l'option de socket IPV6\_RECVRTHDR. Cela permet de recevoir et d'enregistrer des messages auxiliaires contenant des informations de routage. | | ipv6-tclass | Définit l'option de socket IPV6\_TCLASS. Cela définit la classe de transfert des paquets sortants. | | ipv6-recvtclass | Définit l'option de socket IPV6\_RECVTCLASS. Cela permet de recevoir et de consigner les messages auxiliaires contenant la classe de transfert. | ##### Groupe d'options TCP Ces options peuvent être appliquées aux sockets TCP. Ils fonctionnent en appelant setsockopt () avec les paramètres appropriés. | cork | N'envoie pas de paquets plus petits que MSS (taille maximale du segment). | | defer-accept | En écoutant, accepte les connexions uniquement lorsque les données du pair sont arrivées. | | keepcnt = | Définit le nombre de keepalives avant de fermer le socket sur [int]. | | keepidle = | Définit le temps d'inactivité avant d'envoyer le premier keepalive à [int]. | | keepintvl = | Définit l'intervalle entre deux keepalives à [int]. | | linger2 = | Définit l'heure de maintien du socket dans l'état FIN-WAIT-2 sur [int]. | | mss = | Définit le MSS (taille maximale du segment) après l'appel de socket () à [int]. Cette valeur est ensuite proposée au pair avec le paquet SYN ou SYN / ACK (exemple). | | mss-late = | Définit le MSS du socket après que la connexion a été établie à [int]. | | nodelay | Désactive l'algorithme Nagle pour mesurer le RTT (temps d'aller-retour). | | rfc1323 | Active les options TCP RFC1323: échelle de la fenêtre TCP, mesure du temps d'aller-retour (RTTM) et protection contre les numéros de séquence enveloppés (PAWS) (AIX). | | stdurg | Active la gestion du pointeur urgent conforme à la RFC1122 (AIX). | | syncnt = | Définit le nombre maximal de retransmissions SYN pendant la connexion à [int]. | | md5sig | Permet de générer des résumés MD5 sur les paquets (FreeBSD). | | notake | Désactive l'utilisation des options TCP (FreeBSD, MacOSX). | | nopush | définit l'option de socket TCP\_NOPUSH (FreeBSD, MacOSX). | | sack-disable | Désactive l'utilisation de la fonctionnalité d'acquittement sélectif (OpenBSD). | | signature-enable | Permet la génération de fichiers MD5 sur les paquets (OpenBSD). | | abort-threshold = | Définit le délai d'attente d'une réponse de l'homologue sur une connexion établie (HP-UX). | | conn-abort-threshold = | Définit le délai d'attente d'une réponse du serveur lors de la connexion initiale (HP-UX). | | keepinit | Définit le délai d'attente d'une réponse du serveur lors de la connexion \ () avant d'abandonner. Valeur en demi-secondes, la valeur par défaut est 150 (75s) (Tru64). | | paws | Active la fonctionnalité "protéger contre les numéros de séquence encapsulés" (Tru64). | | sackena | Active l'acquittement sélectif (Tru64). | | tsoptena | Active l'option d'horodatage qui permet le recalcul RTT sur les connexions existantes (Tru64). | ##### Groupe d'options SCTP Ces options peuvent être appliquées aux sockets de flux SCTP. | sctp-nodelay | Définit l'option de socket SCTP\_NODELAY qui désactive l'algorithme Nagle. | | sctp-maxseg = | Définit l'option de socket SCTP\_MAXSEG sur [int]. Cette valeur est ensuite proposée au pair avec le paquet SYN ou SYN / ACK.| ##### Groupes d'options UDP, TCP et SCTP Nous trouvons ici des options liées au mécanisme du port réseau et qui peuvent donc être utilisées avec les adresses client et serveur UDP, TCP et SCTP. | sourceport = | Pour les connexions sortantes (client) TCP et UDP, il définit la source à l'aide d'un appel bind () supplémentaire. Avec les adresses d'écoute TCP ou UDP, socat ferme immédiatement la connexion si le client n'utilise pas ce port source (exemple). | | lowport | Les connexions TCP et UDP (client) sortantes avec cette option utilisent un port source aléatoire inutilisé entre 640 et 1023 incl. Sur les systèmes d'exploitation de classe UNIX, cela nécessite des privilèges root et indique donc que le processus client est autorisé par la racine locale. Les adresses d'écoute TCP et UDP avec cette option arrêtent immédiatement la connexion si le client n'utilise pas de port source <= 1023. Ce mécanisme peut fournir une autorisation limitée dans certaines circonstances. | ##### Groupe d'options SOCKS Lorsqu'on utilise des adresses de type SOCKS, certaines options spécifiques aux chaussettes peuvent être définies. | socksport = | Remplace le service par défaut "socks" ou le port 1080 pour le port du serveur socks avec le . | | socksuser = | Envoie le [string] dans le champ du nom d'utilisateur au serveur socks. Le nom d'utilisateur par défaut est $ LOGNAME ou $ USER (exemple). | ##### Groupe d'options HTTP Options pouvant être fournies avec des adresses de type HTTP. La seule adresse HTTP actuellement implémentée est la connexion proxy. | proxyport = | Remplace le port proxy HTTP par défaut 8080 par . | | ignorecr | Le protocole HTTP nécessite l'utilisation de CR + NL comme terminateur de ligne. Lorsqu'un serveur proxy viole cette norme, socat peut ne pas comprendre sa réponse. Cette option demande à socat d’interpréter NL en tant que terminaison de ligne et d’ignorer le CR dans la réponse. Néanmoins, socat envoie CR + NL au proxy. | | proxyauth = : | Fournir une authentification "de base" au serveur proxy. L'argument de l'option est utilisé avec un en-tête "Proxy-Authorization: Base" au format base64.\\ \\ le nom d'utilisateur et le mot de passe sont visibles pour chaque utilisateur de la machine locale dans la liste des processus. Le nom d'utilisateur et le mot de passe sont transférés sur le serveur proxy non cryptés (encodés en base64) et peuvent être détectés. | | resolve | Par défaut, socat envoie au proxy une demande CONNECT contenant le nom d'hôte cible. Avec cette option, socat résout le nom d'hôte localement et envoie l'adresse IP. Veuillez noter que, conformément à la RFC 2396, seule la résolution de noms pour les adresses IPv4 est implémentée. | ##### Groupe d'options RANGE Ces options vérifient si un client connecté doit avoir accès. Ils peuvent être appliqués à l'écoute et à la réception des sockets réseau. Les options tcp-wrappers appartiennent à ce groupe. | range = Après avoir accepté une connexion, teste si le pair est à portée . Pour les adresses IPv4, la plage d'adresses prend la forme adresse / bits, par exemple 10.0.0.0/8 ou adresse: masque, par exemple 10.0.0.0:255.0.0.0 (exemple); pour IPv6, il s'agit de [ip6-address / bits], par exemple [:: 1/128]. Si l'adresse du client ne correspond pas, socat émet un avertissement et continue d'écouter / recevoir. | tcpwrap [= ] Utilise la bibliothèque libwrap (tcpd) de Wietse Venema pour déterminer si le client est autorisé à se connecter. Les fichiers de configuration sont /etc/hosts.allow et /etc/hosts.deny par défaut, voir "man 5 hosts\_access" pour plus d'informations. L'option (type string) est transmise aux fonctions wrapper en tant que nom de processus démon (exemple). S'il est omis, le nom de base de l'invocation de socats (argv [0]) est transmis. Si les deux options tcpwrap et range sont appliquées à une adresse, les deux conditions doivent être remplies pour autoriser la connexion. | allow-table = | Prend le fichier spécifié au lieu de /etc/hosts.allow. | | deny-table = | Prend le fichier spécifié au lieu de /etc/hosts.deny. | | tcpwrap-etc = | Recherche hosts.allow et hosts.deny dans le répertoire spécifié. Est remplacé par les options hosts-allow et hosts-deny. | ##### Groupe d'option d'écoute Options spécifiques aux prises d'écoute. | backlog = | Définit la valeur de backlog transmise avec l'appel système listen () à [int]. La valeur par défaut est 5. | | max-children = | Limite le nombre de processus enfants concurrents [int]. La valeur par défaut est sans limite. ##### Groupe options CHILD Options pour les adresses avec plusieurs connexions via des processus enfants. | fork | Après avoir établi une connexion,ouvre un processus enfant et fait suivre le processus parent en essayant de créer plus de connexions, soit en écoutant, soit en se connectant dans une boucle (exemple). | OPENSSL-CONNECT et OPENSSL-LISTEN diffèrent quand ils débouchent réellement sur l'enfant:\\ - OPENSSL-LISTEN fonce avant la prise de contact SSL\\ - OPENSSLSSL-CONNECT accélère après.\\ \\ Les options RETRY et FOREVER ne sont pas héritées par le processus enfant.\\ \\ Sur certains systèmes d'exploitation (par exemple FreeBSD), cette option ne fonctionne pas pour les adresses UDP-LISTEN. ##### Groupe choix EXEC Options pour les adresses qui appellent un programme. | path = | Remplacer la variable d'environnement PATH pour effectuer une recherche dans le programme avec . This value $ PATH est également efficace dans le processus enfant. | | login | Préfixe argv [0] pour un appel execvp () avec '-', en faisant une sorte de shell se comporte comme un shell de connexion. | ##### Groupe choix FORK Les adresses EXEC ou SYSTEM invoquent un programme utilisant un processus enfant et transfert de données entre programme et programme. Le mécanisme de communication interprocessus peut être influencé par les options suivantes. Par défaut, un socketpair () is created et à stdin et assigné stdout du enfant Processus, TANDIS Que stderr is du Hérité Processus socat et le Qué enfant utiliser les Processus Descripteurs de 0 et 1 FICHIERS verser Communiquer avec le socat principale Processus. | nofork | Ne pas utiliser un sous-processus pour exécuter le programme, mais appeler execvp \ () ou system \ () directement à partir de l'instance réelle de socat. Cela évite la surcharge d'un autre processus entre le programme et son homologue, mais introduit de nombreuses restrictions:\\ - il ne peut être appliquée Deuxième adresse socat .\\ - il ne peut pas être appliqué à une partie d'une adresse double. \\ - la première adresse socat ne peut pas être OPENSSL ou READLINE\\ - les options socat -b, -t, -D, -l, -v, -x deviennent inutiles\\ - pour les deux adresses, les options ignoreeof, cr et crnl deviennent inutiles\\ - pour la deuxième adresse (celle avec l'option nofork), les options append, cloexec, flock, user, group, mode, non-block, perm-late, setlk et setpgid ne peuvent pas être appliquées. Certains pourraient être utilisés sur la première adresse. | | pipes | Crée une paire de canaux sans nom pour la communication interprocessus au lieu d'une paire de sockets. | | openpty | Établit la communication avec le sous-processus en utilisant un pseudo-terminal créé avec openpty () au lieu de celui par défaut (socketpair ou ptmx). | | ptmx | Établit la communication avec le sous-processus en utilisant un pseudo-terminal créé en ouvrant / dev / ptmx ou / dev / ptc au lieu du défaut (socketpair). | | pty | Établit la communication avec le sous-processus en utilisant un pseudo-terminal au lieu d'une paire de sockets. Crée le pty avec un mécanisme disponible. Si openpty et ptmx sont tous deux disponibles, il utilise ptmx car il est compatible POSIX (exemple). | | ctty | Rend le pty le contrôle du sous-processus (exemple). | | stderr | Dirige stderr du sous processus vers son canal de sortie en faisant de stderr un dup () de stdout (exemple). | | fdin = | Assigne le canal d'entrée des sous-processus à son descripteur de fichier au lieu de stdin (0). Le programme lancé à partir du sous-processus doit utiliser cette fd pour lire les données de socat (exemple). | | fdout = | Assigne le canal de sortie des sous-processus à son descripteur de fichier au lieu de stdout (1). Le programme lancé à partir du sous-processus doit utiliser cette fd pour écrire des données sur socat (exemple). | | soupir , sigint , sigquit | A socat signaux de passage de ce type au sous - processus. Si aucune adresse n'a cette option, socat se termine sur ces signaux.| ##### Groupe d'options TERMIOS Pour les adresses qui fonctionnent sur un tty (par exemple, stdio, fichier: / dev / tty, exec: ..., pty), les paramètres de terminal définis dans le mécanisme UN * X option d'adresse. les modifications des paramètres du terminal interactif sont toujours effectives après la fin du processus , que l'on peut nettoyer en utilisant "reset" ou "stty sane" dans le shell. Pour les adresses EXEC et SYSTEM avec option PTY, ces options apposent aux processus pty par enfant. | b0 | Déconnecte le terminal. | | b19200 | Règle la vitesse de la ligne série 19 200 bauds. Certains autres taux sont possibles; Utiliser quelque chose comme `socat -hh | grep 'b [1-9]'` pour trouver toutes les vitesses supportées par votre implémentation.\\ \\ sur certains systèmes d'exploitation, ces options peuvent ne pas être disponibles. Utiliser ispeed ou ospeed à la place. | | echo = | Active ou désactive l'écho local. | | icanon = | Définit ou efface le mode canonique, permettant la mise en mémoire tampon de lignes et certains caractères spéciaux. | | raw | Définit le mode brut, transmettant ainsi les entrées et les sorties presque sans traitement. Cette option est obsolète, utiliser plutôt l'option rawer ou cfmakeraw. | | rawer | Rend le terminal plus brut que l'option brute. Cette option désactive implicitement l'écho. (Exemple). | | cfmakeraw | Définit le mode brut en appelant cfmakeraw () ou en simulant cet appel. Cette option désactive implicitement l'écho. | | ignbrk = | Ignore ou interprète le caractère BREAK (par exemple, `^C`) | | brkint = | | | bs<0/1> | | | bsdly = <0/1> | | | clocal = | | | cr<0/1/2/3> | Définit le délai de retour chariot à 0, 1, 2 ou 3, respectivement. 0 signifie pas de délai, les autres valeurs dépendent du terminal. | | crdly = <0/1/2/3> | | | cread = | | | crtscts = | | | cs<5/6/7/8> | Définit la taille des caractères à 5, 6, 7 ou 8 bits respectivement. | | csize = <0/1/2/3> | | | cstopb = | Définit deux bits d'arrêt plutôt qu'un. | | dsusp = | Définit la valeur du caractère VDSUSP qui suspend le processus de premier plan en cours et réactive le shell (tous sauf Linux). | | echoctl = | Les échos contrôlent les caractères en notation de chapeau (par ex. ^ A) - | echoe = | | | echok = | | | echoke = | | | echonl = | | | echoprt = | | | eof = | | | eol = | | | eol2 = | | | effacer = | | | jeter = | | | ff0 | | | ff1 | | | ffdly = | | | flusho = | | | hupcl = | | | icrnl = | | | iexten = | | | igncr = | | | ignpar = | | | imaxbel = | | | inlcr = | | | inpck = | | | intr = | | | isig = | | | ispeed = | Définit le débit en bauds pour les données entrantes sur cette ligne.\\ \\ Voir aussi: ospeed, b19200 | | istrip = | | | iuclc = | | | ixany = | | | ixoff = | | | ixon = | | | kill = | | | lnext = | | | min = | | | nl0 | Définit le délai de la nouvelle ligne sur 0. | | nl1 | | | nldly = | | | noflsh = | | | ocrnl = | | | ofdel = | | | ofill = | | | olcuc = | | | onlcr = | | | onlret = | | | onocr = | | | opost = | Active ou désactive le traitement de sortie; par exemple, convertit NL en CR-NL. | | ospeed = | Définit le débit en bauds pour les données sortantes sur cette ligne.\\ \\ Voir aussi: ispeed, b19200 | | parenb = | Activer la génération de parité à la sortie et au contrôle de parité pour les entrées. | | parmrk = | | | parodd = | | | pendin = | | | quit = | | | reprint = | | | sane | Amène le terminal a choisi comme un état par défaut utile. | | start = | | | stop = | | | susp = | | | swtc = | | | tab<0/1/2/3> | | | tabdly = | | | time = | | | tostop = | | | vt<0/1> | | | vtdly = | | | werase = | | | xcase = | | | xtabs | | | i-pop-all | Avec UNIX System V STREAMS, prend en charge tous les pilotes de la pile. | | i-push = | Avec UNIX System V STREAMS, pousse le pilote (module) avec le nom donné (chaîne) sur la pile. Par exemple, pour assurer un périphérique de caractères sur Solaris supporte termios, etc., utiliser les options suivantes: i-pop-all, i-push = ptem, i-push = ldterm, i-push = ttcompat | ##### Groupe de choix PTY Ces options sont les suivantes: | link = | Génère un lien symbolique qui pointe vers le pseudo-terminal (pty). Cela pourrait aider à résoudre le problème que les ptys sont générés avec des noms plus ou moins imprévisibles, rendant difficile l'accès direct au pty généré automatiquement. Avec cette option, l'utilisateur peut spécifier un point "fix" dans la hiérarchie des fichiers, ce qui l'aide à accéder au pty actuel (exemple). En commençant par socat la version 1.4.3, le lien symbolique est supprimé lorsque l'adresse est fermée (mais voir option unlink-fermeture). | | wait-slave | Bloque la phase ouverte jusqu'à ce qu'un processus ouvre le côté esclave du pty. Habituellement, socat continue après avoir eu le pty en ouvrant la suite ou en entrant dans la boucle de transfert. Avec la fonction wait-slave, socat assister à ce que le processus ouvre le côté esclave du pty avant de continuer. Cette option ne permet pas le système d'exploitation fourni d'appel système poll (). Et Cela dépend d'un comportement non documenté, de sorte qu'il ne fonctionne pas sur tous les systèmes d'exploitation. Il a été testé avec Linux, FreeBSD, NetBSD et Tru64 avec openpty. | | pty-interval = | Lorsque l'option wait-slave est définie, socat vérifie périodiquement la condition HUP en utilisant poll () pour trouver si le côté esclave du pty a été ouvert. L'intervalle d'interrogation par défaut est 1s. Utiliser l'option pty-interval [timeval] pour modifier cette valeur. | ##### Groupe d'options OPENSSL Ces options s'appliquent aux types aux adresses openssl et openssl-listen. | cipher = | Sélectionne la liste des articles pouvant être utilisés pour la connexion. -Se Reporter la de la page par rapport aux chiffrements manuel, section FORMAT DE LA LISTE DES CIPHEROS , verser obtain des informations sur la syntax détaillées, les facts et la Valeur par défaut de .\\ \\ Plusieurs chaînes de chiffrement peuvent être données, séparées par «:». Quelques chaînes de chiffrement simples:\\ - **3DES** : suite de chiffrement avec triple DES.\\ - **MD5**: suite de chiffrement avec MD5.\\ - **aNULL**: suite de chiffrement sans authentification.\\ - **NULL**: N'utilise pas le chiffrement.\\ - **HIGH**: Utiliser une suite de chiffrement avec un chiffrement "élevé". l'homologue doit prendre en charge la propriété sélectionnée ou que la négociation échoue. | | method = | Définir la version du protocole à utiliser. Les chaînes valides (non sensibles à la casse) sont les suivantes:\\ - **SSL2**: protocole SSL version 2.\\ - **SSL3**: protocole SSL version 3.\\ - **SSL23**: meilleur protocole SSL ou TLS disponible. C'est la valeur par défaut lorsque cette option n'est pas fournie.\\ - **TLS1**: protocole TLS version 1\\ - **TLS1.1**: protocole TLS version 1.1\\ - **TLS1.2**: protocole TLS version 1.2\\ - **DTLS1**: protocole DTLS version 1. | | verify = | Contrôle la vérification du certificat de l'homologue. La valeur par défaut est 1 (true). Désactiver la vérification peut ouvrir votre socket pour tout le monde, rendant le cryptage inutile! | | cert = | Spécifie le fichier avec le certificat et la clé privée pour l'authentification. Le certificat doit être au format OpenSSL (* .pem). Avec openssl-listen, l'utilisation de cette option est fortement recommandée. Sauf avec le chiffrement aNULL, l'erreur "no shared ciphers" se produira quand aucun certificat n'est donné. - | key = | Spécifie le fichier avec la clé privée. La clé privée peut se trouver dans ce fichier ou dans le fichier fourni avec l'option cert. La partie qui doit prouver qu'elle est le propriétaire d'un certificat a besoin de la clé privée. | | dhparams = | Spécifie le fichier avec les paramètres Diffie Hellman. Ces paramètres peuvent également se trouver dans le fichier fourni avec l'option cert, auquel cas l'option dhparams n'est pas nécessaire. | | cafile = | Spécifie le fichier avec les certificats d'autorité approuvés (root). Le fichier doit être au format PEM et doit contenir un ou plusieurs certificats. La partie qui vérifie l'authentification de son homologue approuve uniquement les certificats contenus dans ce fichier. | | capath = | Spécifie le répertoire avec les certificats (racine) approuvés. Le répertoire doit contenir des certificats au format PEM et leurs hashs (voir la documentation OpenSSL) | | egd = | Sur certains systèmes, openssl nécessite une source explicite de données aléatoires. Spécifier le nom du socket où un démon de collecte d'entropie comme egd fournit des données aléatoires, par exemple / dev / egd-pool. | | pseudo | Sur les systèmes où openssl ne peut pas trouver de source d'entropie et où aucun démon de collecte d'entropie ne peut être utilisé, cette option active un mécanisme de fourniture de pseudo-entropie. Ceci est réalisé en prenant le temps actuel en microsecondes pour alimenter le générateur de nombres pseudo-aléatoires libc avec une valeur initiale. openssl est alors alimenté avec la sortie des appels aléatoires \ ().\\ \\ Ce mécanisme n'est pas suffisant pour générer des clés sécurisées! | | compress | Activer ou désactiver l'utilisation de la compression pour une connexion. Si on choisi "none", la compression est désactivée, et le paramètre "auto" permet à OpenSSL de choisir le meilleur algorithme disponible pris en charge par les deux parties. La valeur par défaut est de ne pas toucher aux paramètres liés à la compression. nécessite OpenSSL 0.9.8 ou supérieur et la désactivation de la compression avec OpenSSL 0.9.8 affecte toutes les nouvelles connexions du processus. | | commonname = | Indique le nom de famille que le certificat homologue doit correspondre. Avec l'adresse **OPENSSL-CONNECT**, cela remplace le nom d'hôte ou l'adresse IP donné. Avec **OPENSSL-LISTEN**, cela active la vérification du nom des certificats homologues. Cette option n'a de sens que lorsque l'option verify n'est pas désactivée et que le chiffrement choisi fournit un certificat homologue. | | fips | Mode actif FIPS s'il est compilé. Pour plus d'informations sur la norme d'implantation du cryptage FIPS, voir http://oss-institute.org/fips-faq.html. Ce mode peut nécessiter que les certificats soient générés avec une version FIPS de openssl. Définir ou effacer cette option sur une adresse pour toutes les adresses OpenSSL de ce processus. | ##### Groupe d'option RETRY Options permettant de réessayer certains systèmes, notamment les tentatives de connexion. | retry = | Nombre de tentatives avant que la connexion ou la tentative d'écoute soit interrompue. La valeur par défaut est 0, ce qui signifie juste une tentative. | | interval = | Temps entre deux tentatives consécutives (secondes, [timespec]). La valeur par défaut est 1 seconde. | | forever | Effectue un nombre illimité de nouvelles tentatives. | ##### Groupe d'options TUN Options qui contrôlent les adresses des périphériques d'interface TUN / TAP Linux. | tun-device = | Indique à socat pour prendre un autre chemin pour le clone TUN. La valeur par défaut est /dev /net /tun. | | tun-name = | Donne à un réseau résultant d'une dénomination spécifique au lieu du système (tun0, tun1, etc.) | | tun-type = [tun/tap] | Définit le type du périphérique TUN; Utiliser cette option pour générer un périphérique TAP. Voir le document Linux pour la différence entre ces types. Lorsqu'on essaye de créer un tunnel entre deux systèmes, leurs types doivent être identiques. | | iff-no-pi | Définit l'indicateur IFF\_NO\_PI qui contrôle le périphérique avec des informations de paquets supplémentaires dans le tunnel. Lorsqu'on essaye de mettre en place un tunnel entre deux périphériques TUN, ces indicateurs doivent avoir les mêmes valeurs. | | iff-up | Définir le statut du réseau d'interface TUN UP. Fortement recommandé. | | iff-broadcast | Définit l'indicateur BROADCAST de l'interface réseau TUN. | | iff-debug | Définir l'indicateur DEBUG de l'interface réseau TUN. | | iff-loopback | Définit l'indicateur LOOPBACK de l'interface réseau TUN. | | iff-pointopoint | Définit l'indicateur POINTOPOINT du périphérique TUN. | | iff-notrailers | Définit l'indicateur NOTRAILERS du périphérique TUN. | | iff-running | Définit l'indicateur RUNNING du périphérique TUN. | | iff-noarp | Définit l'indicateur NOARP du périphérique TUN. | | iff-promisc | Définit l'indicateur PROMISC du périphérique TUN. | | iff-allmulti | Définit l'indicateur ALLMULTI du périphérique TUN. | | iff-master | Définit l'indicateur MASTER du périphérique TUN. | | iff-esclave | Définit l'indicateur SLAVE du périphérique TUN. | | siff-multicast | Définit le drapeau MULTICAST du périphérique TUN. | | iff-portsel | Définit l'indicateur PORTSEL du périphérique TUN. | | iff-automedia | Définit l'indicateur AUTOMEDIA du périphérique TUN. | | iff-dynamique | Définit l'indicateur DYNAMIC du périphérique TUN. | #### VALEURS DONNÉES Cette section explique les différents types de données que peuvent prendre les paramètres d'adresse et les options d'adresse. | plage d'adresses | Est actuellement uniquement implémenté pour IPv4 et IPv6. Voir adresse-option range | | bool | "0" ou "1"; si la valeur est omise, "1" est pris. | | octet | Un nombre int non signé, lu avec strtoul (), inférieur ou égal à UCHAR\_MAX. | | ligne de commande | Une chaîne spécifiant un nom de programme et ses arguments, séparés par des espaces simples. | | Les données | Une spécification de données brutes suivant la syntaxe Dalan . Actuellement, la seule forme valide est une chaîne commençant par «x» suivie d'un nombre pair de chiffres hexadécimaux, spécifiant une séquence d'octets. | | annuaire | Une chaîne avec la sémantique habituelle du nom de répertoire UN * X. | | établissement | Nom d'une fonction syslog en minuscules. | | fdnum | Un type int non signé, lu avec strtoul (), en spécifiant un descripteur de fichier UN * X. | | nom de fichier | Une chaîne avec la sémantique habituelle du nom de fichier UN * X. | | groupe | Si le premier caractère est un chiffre décimal, la valeur est lue avec strtoul () comme entier non signé spécifiant un identifiant de groupe. Sinon, il doit s'agir d'un nom de groupe existant. | | int | Un nombre suivant les règles de la fonction strtol () avec la base "0", c'est-à-dire un nombre décimal, un nombre octal avec un "0" et un nombre hexadécimal avec "0x". La valeur doit correspondre à un C int. | | interface | Une chaîne spécifiant le nom de périphérique d'une interface réseau, comme indiqué par ifconfig ou procan, par exemple "eth0". | | adresse IP | Une adresse IPv4 en notation numérique et en points, une adresse IPv6 en notation hexadécimale entre crochets ou un nom d'hôte résolvant une adresse IPv4 ou IPv6. | Exemples: 127.0.0.1, [:: 1], www.dest-unreach.org, dns1 | | Adresse IPv4 | Une adresse IPv4 en notation numérique et à points ou un nom d'hôte résolvant une adresse IPv4.\\ Exemples: 127.0.0.1, www.dest-unreach.org, dns2 | | Adresse IPv6 | Une adresse iPv6 en notation hexnumbers-and-colons entre crochets ou un nom d'hôte résolvant une adresse IPv6.\\ Exemples: [:: 1], [1234: 5678: 9abc: def0: 1234: 5678: 9abc: def0], ip6name.domain.org | | long | Un nombre lu avec strtol(). La valeur doit correspondre à un C long. | | long long | Un nombre lu avec strtoll(). La valeur doit correspondre à un long C long. | | off\_t | Un nombre de signatures dépendant de l'implémentation, généralement 32 bits, lu avec strtol ou strtoll. | | off64\_t | Un nombre de signatures dépendant de l'implémentation, généralement 64 bits, lu avec strtol ou strtoll. | | mode\_t | Un entier non signé, lu avec strtoul(), spécifiant les bits de mode (permission). | | pid\_t | Un nombre, lu avec strtol (), spécifiant un identifiant de processus. | | Port | Un uint16\_t (numéro non signé 16 bits) spécifiant un port TCP ou UDP, lu avec strtoul(). | | protocole | Un numéro non signé de 8 bits, lu avec strtoul(). | | size\_t | Un nombre non signé avec des limitations de taille\_t, lu avec strtoul. | | sockname | Une adresse de socket Voir adresse-option `bind` | | chaîne | Une séquence de caractères ne contenant pas "\ 0" et, selon la position dans la ligne de commande, ":", "," ou "!!". Il faudra peut-être échapper les méta-caractères du shell dans la ligne de commande. | | Service TCP | Un nom de service, ne commençant pas par un chiffre, résolu par getservbyname(), ou un numéro de 16 bits non signé int lu avec strtoul(). | | timeval | Un double flotteur spécifiant les secondes; le nombre est mappé dans une structure timeval, constituée de secondes et de microsecondes. | | timespec | Un double flotteur spécifiant les secondes; le nombre est mappé dans un struct timespec, constitué de secondes et de nanosecondes. | | Service UDP | Un nom de service, ne commençant pas par un chiffre, résolu par getservbyname(), ou un numéro de 16 bits non signé int lu avec strtoul(). | | unsigned int | Un numéro lu avec strtoul(). La valeur doit tenir dans un C unsigned int. | | user | Si le premier caractère est un chiffre décimal, la valeur est lue avec strtoul () comme un entier non signé spécifiant un identifiant d'utilisateur. Sinon, il doit s'agir d'un nom d'utilisateur existant. | ##### Simuler des requêtes HTTP On peut saisir du texte avec la bibliothèque readline et il sera envoyé en TCP à www.domain.org sur le port 80 (www). socat -d -d READLINE,history=$HOME/.http\_history TCP4:www.domain.org:www,crnl ##### Simple transfert de données entre 2 flux TCP. Tout ce qui arrive sur le port 80 (www) de la machine locale est envoyé vers www.domain.org et inversement. socat TCP4-LISTEN:www TCP4:www.domain.org:www ##### Ecrire tout le flux reçu sur le port 3334 dans un fichier. socat -u TCP4-LISTEN:3334,reuseaddr,fork OPEN:/tmp/in.log,creat,append ##### Simuler une connexion sur un équipement (sleep 5; echo yes; sleep 5; echo $PASSWORD; sleep 2; echo ; echo "screen-length disable"; sleep 2; echo "dis cur") | socat - EXEC:"ssh $USERNAME@xx.xxx.xxx.xxx2.33",setsid,pty,ctty ##### Transfert des données entre STDIO (-) et une connexion TCP4 socat - TCP4:www.domain.org:80 transfère des données entre STDIO (-) et une connexion TCP4 au port 80 de l'hôte www.domain.org. Cet exemple se traduit par une connexion interactive similaire à telnet ou netcat. Les paramètres du terminal stdin ne sont pas modifiés, on peut donc fermer le relais avec ^ D ou abandonner avec ^ C. socat -d -d READLINE,history=$HOME/.http\_history TCP4:www.domain.org:www,crnl Ceci est similaire à l'exemple précédent, mais on peut éditer la ligne en cours de manière bash (READLINE) et utiliser le fichier d'historique .http\_history; socat imprime des messages sur la progression (-d -d). Le port est spécifié par nom de service (www) et les caractères de terminaison de ligne réseau (crnl) corrects au lieu de NL sont utilisés. ##### Simple redirecteur de port TCP socat TCP4-LISTEN:www TCP4:www.domain.org:www Installe un simple redirecteur de port TCP. Avec TCP4-LISTEN, il écoute le port local "www" jusqu'à ce qu'une connexion arrive, l'accepte, puis se connecte à l'hôte distant (TCP4) et commence le transfert de données. Il n'acceptera pas une deuxième connexion. ##### TCP port forwarder socat -d -d -lmlocal2 TCP4-LISTEN:80,bind=myaddr1,reuseaddr,fork,su=nobody,range=10.0.0.0/8 TCP4:www.domain.org:80,bind=myaddr2 TCP port forwarder, chaque côté lié à une autre adresse IP locale (bind). Cet exemple gère un nombre presque arbitraire de connexions parallèles ou consécutives en générant un nouveau processus après chaque accept (). Il offre un peu de sécurité en faisant appel à l'utilisateur après avoir fui; il ne permet que les connexions du réseau privé 10 (gamme); à cause de reuseaddr, cela permet un redémarrage immédiat après la fin du processus maître, même si certains sockets enfants ne sont pas complètement arrêtés. Avec -lmlocal2, socat se connecte à stderr jusqu'à ce que la boucle d'acceptation soit atteinte. La journalisation supplémentaire est dirigée vers syslog avec facilité local2. ##### Serveur simple qui accepte les connexions socat TCP4-LISTEN:5555,fork,tcpwrap=script EXEC:/bin/myscript,chroot=/home/sandbox,su-d=sandbox,pty,stderr un serveur simple qui accepte les connexions (TCP4-LISTEN) et fork's un nouveau processus enfant pour chaque connexion; chaque enfant agit comme un seul relais. Le client doit correspondre aux règles pour le nom du processus démon "script" dans /etc/hosts.allow et /etc/hosts.deny, sinon l'accès lui est refusé (voir "man 5 hosts\_access"). Pour exécuter le programme, le processus enfant chroote vers / home / sandbox , su vers user sandbox, puis démarre le programme / home / sandbox / bin / myscript . Socat et myscript communiquent via un pseudo tty (pty); Le stderr de myscript est redirigé vers stdout, donc ses messages d'erreur sont transférés via socat au client connecté. ##### relais SMTP 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 est un script shell, distribué avec socat , qui implémente un simple client SMTP. Il est programmé pour "parler" SMTP sur ses FD 3 (in) et 4 (out). Les options fdin et fdout indiquent à socat d'utiliser ces FD pour communiquer avec le programme. Comme mail.sh hérite de stdin et de stdout alors que socat ne les utilise pas, le script peut lire un corps de courrier à partir de stdin. Socat fait de alias1 votre adresse source locale (bind), prend en charge la terminaison de ligne réseau correcte (crnl) et envoie au plus 512 octets de données par paquet (mss). ##### connexion port série socat -,escape=0x0f /dev/ttyS0,rawer,crnl ouvre une connexion interactive via la ligne série, par exemple pour dialoguer avec un modem. rawer définit les paramètres de terminal de la console et de ttyS0 sur des valeurs praticables, crnl les convertit pour corriger les caractères de nouvelle ligne. escape permet de terminer le processus socat avec le contrôle de caractère-O. ##### Interception des connexions XWindow socat UNIX-LISTEN:/tmp/.X11-unix/X1,fork SOCKS4:host.victim.org:127.0.0.1:6000,socksuser=nobody,sourceport=20 avec UNIX- LISTEN , socat ouvre une socket de domaine UNIX d'écoute /tmp/.X11-unix/X1 . Ce chemin correspond à l'affichage local de XWindow: 1 sur votre machine, les connexions client XWindow à DISPLAY =: 1 sont donc acceptées. Socat parle ensuite avec le serveur SOCKS4 host.victim.org qui pourrait autoriser des connexions basées sur le port source en raison d'une faiblesse liée à FTP dans ses filtres IP statiques. Socat prétend être appelé par socksuser nobody, et demande à être connecté au port de bouclage 6000 (seules les configurations sockd faibles le permettent). Donc, nous obtenons une connexion au serveur XWindow des victimes et, si cela ne nécessite pas de cookies MIT ou d'authentification Kerberos, nous pouvons commencer à travailler. Il ne peut y avoir qu'une seule connexion à la fois, car TCP ne peut établir qu'une seule session avec un ensemble donné d'adresses et de ports. ##### transfert de données unidirectionnel socat -u /tmp/readdata,seek-end=0,ignoreeof - c'est un exemple de transfert de données unidirectionnel (-u). Socat transfère les données du fichier / tmp / readdata (adresse implicite de GOPEN), en commençant à la fin actuelle (seek-end = 0 permet à socat de commencer la lecture à la fin du fichier en cours; ) en mode "tail -f" (ignoreeof). Le "fichier" peut également être une socket de domaine UNIX en écoute (n'utiliser pas d’option de recherche). ##### Connexion ssh automatique (sleep 5; echo PASSWORD; sleep 5; echo ls; sleep 1) | socat - EXEC:'ssh -l user server',pty,setsid,ctty Exécute une session ssh sur un serveur. Utilise un pty pour la communication entre socat et ssh, rend ssh contrôlant tty (ctty), et en fait le propriétaire d'un nouveau groupe de processus (setsid), donc ssh accepte le mot de passe de socat. ##### Collecteur de messages simple socat -u TCP4-LISTEN:3334,reuseaddr,fork OPEN:/tmp/in.log,creat,append implémente un collecteur de messages simple basé sur le réseau. Pour chaque client se connectant au port 3334, un nouveau processus enfant est généré (option fork). Toutes les données envoyées par les clients sont ajoutées au fichier /tmp/in.log. Si le fichier n'existe pas, c'est socat creat. L'option reuseaddr permet le redémarrage immédiat du processus du serveur. ##### pseudo modem série/ssh socat PTY,link=$HOME/dev/vmodem0,rawer,wait-slave EXEC:"ssh modemserver.us.org socat - /dev/ttyS0,nonblock,rawer" génère un pseudo terminal (PTY) sur le client accessible sous le lien symbolique $HOME/dev/vmodem0 . Une application qui attend une ligne série ou un modem peut être configurée pour utiliser $HOME/dev/vmodem0 ; son trafic sera dirigé vers un modemserver via ssh où une autre instance de socat le lie à /dev/ttyS0 . ##### proxy relay socat TCP4-LISTEN:2022,reuseaddr,fork PROXY:proxy:www.domain.org:22,proxyport=3128,proxyauth=user:pass démarre un redirecteur qui accepte les connexions sur le port 2022 et les dirige via le démon proxy écoutant sur le port 3128 (proxyport) sur le proxy hôte, en utilisant la méthode CONNECT, où ils sont authentifiés en tant que "utilisateur" avec "pass" (proxyauth). Le proxy doit établir des connexions pour héberger www.domain.org sur le port 22 à ce moment-là. ##### Connexion sécurisée SSL socat - OPENSSL:server:4443,cafile=server.crt,cert=client.pem est un client OpenSSL qui tente d'établir une connexion sécurisée à un serveur SSL. Option cafile spécifie un fichier qui contient des certificats de confiance: nous faisons confiance au serveur uniquement lorsqu'il présente l'un de ces certificats et preuves qu'il possède la clé privée associée. Sinon, la connexion est terminée. Avec cert, un fichier contenant le certificat client et la clé privée associée est spécifié. Cela est nécessaire si le serveur souhaite une authentification client; beaucoup de serveurs Internet ne le font pas. La première adresse ('-') peut être remplacée par presque toute autre adresse socat. ##### Serveur OPENSSL socat OPENSSL-LISTEN:4443,reuseaddr,pf=ip4,fork,cert=server.pem,cafile=client.crt PIPE est un serveur OpenSSL qui accepte les connexions TCP, présente le certificat à partir du fichier server.pem et force le client à présenter un certificat vérifié par rapport à cafile.crt. La deuxième adresse («PIPE») peut être remplacée par presque toutes les autres adresses socat. Pour obtenir des instructions sur la génération et la distribution des clés et des certificats OpenSSL, consulter le fichier socat docu socat-openssl.txt. ##### création d'un fichier sparse de 100 Go echo |socat -u - file:/tmp/bigfile,create,largefile,seek=100000000000 crée un fichier sparse de 100 Go; Cela nécessite un type de système de fichiers qui le supporte (ext2, ext3, reiserfs, jfs, pas minix, vfat). L'opération d'écriture de 1 octet peut être longue (reiserfs: quelques minutes; ext2: "non"), et le fichier résultant peut consommer de l'espace disque uniquement avec ses inodes (reiserfs: 2 Mo; ext2: 16 Ko). ##### Impression des connexions entrantes socat tcp-l:7777,reuseaddr,fork system:’filan -i 0 -s >&2’,nofork écoute les connexions TCP entrantes sur le port 7777. Pour chaque connexion acceptée, appelle un shell. Ce shell a ses stdin et stdout directement connectés au socket TCP (nofork). Le shell démarre filan et lui permet d'imprimer les adresses de socket à stderr (votre fenêtre de terminal). ##### éditeur binaire primitif echo -en "\0\14\0\0\c" |socat -u - file:/usr/bin/squid.exe,seek=0x00074420 fonctionne comme un éditeur binaire primitif: il écrit les 4 octets 000 014 000 000 dans l'exécutable / usr / bin / squid à l'offset 0x00074420 (c'est un patch du monde réel pour exécuter l'exécutable squid de Cygwin sous Windows, réel par mai 2004) . ##### Filtre internet socat - tcp:www.blackhat.org:31337,readbytes=1000 Se connecte à un service inconnu et empêche d'être inondé. ##### Fusion de flux TCP socat -U TCP:target:9999,end-close TCP-L:8888,reuseaddr,fork fusionne les données provenant de différents flux TCP sur le port 8888 avec un seul flux à cibler: 9999. L'option end-close empêche les processus fils séparés par la deuxième adresse de terminer la connexion partagée à 9999 (close \ (2) dissocie simplement l'inode qui reste actif tant que le processus parent est actif; shutdown \ (2) active terminer la connexion). ##### Interrogation serveurs de temps socat - UDP4-DATAGRAM:192.168.1.0:123,sp=123,broadcast,range=192.168.1.0/24 envoie une diffusion au réseau 192.168.1.0/24 et reçoit les réponses des serveurs de temps. Ignore les paquets NTP des hôtes situés en dehors de ce réseau. socat - SOCKET-DATAGRAM:2:2:17:x007bxc0a80100x0000000000000000,bind=x007bx00000000x0000000000000000,setsockopt-int=1:6:1,range=x0000xc0a80100x0000000000000000:x0000xffffff00x0000000000000000 est sémantiquement équivalent à l'exemple précédent, mais tous les paramètres sont spécifiés sous forme générique. la valeur 6 de setsockopt-int correspond à la valeur Linux pour SO\_BROADCAST. ##### Broadcast socat - IP4-DATAGRAM:255.255.255.255:44,broadcast,range=10.0.0.0/8 envoie une diffusion au(x) réseau(x) local(aux) à l'aide du protocole 44. Accepte les réponses de la plage d'adresses privées uniquement. socat - UDP4-DATAGRAM:224.255.0.1:6666,bind=:6666,ip-add-membership=224.255.0.1:eth0 transfère des données de stdin vers l'adresse de multidiffusion spécifiée en utilisant UDP. Les ports locaux et distants sont tous deux 6666. Indique à l'interface eth0 d'accepter également les paquets de multidiffusion du groupe donné. Plusieurs hôtes sur le réseau local peuvent exécuter cette commande, de sorte que toutes les données envoyées par l'un des hôtes seront reçues par toutes les autres. Il existe de nombreuses raisons possibles d'échec, notamment les filtres IP, les problèmes de routage, la mauvaise sélection de l'interface par le système d'exploitation, les ponts ou un commutateur mal configuré. ##### Connexion à un interface virtuel socat TCP:host2:4443 TUN:192.168.255.1/24,up établit un côté d'un réseau virtuel (mais pas privé!) avec host2 où un processus similaire peut s'exécuter, avec UDP-L et tun address 192.168.255.2. Ils peuvent se joindre à l'aide des adresses 192.168.255.1 et 192.168.255.2. Le streaming par exemple. via TCP ou SSL ne garantit pas de conserver les limites des paquets et peut donc provoquer une perte de paquets. ##### liaison Point à point (PPPD) socat PTY,link=/var/run/ppp,rawer INTERFACE:hdlc0 contourner le problème que pppd nécessite un périphérique série et peut donc ne pas être en mesure de travailler sur une ligne synchrone représentée par un périphérique réseau. socat crée un PTY pour rendre pppd heureux, se lie à l'interface réseau hdlc0 et peut transférer des données entre les deux appareils. Utiliser ensuite pppd sur le périphérique /var/run/ ppp. ##### serveur HTTP echo simple 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\\\"\"" crée un serveur HTTP echo simple: chaque client HTTP qui se connecte obtient une réponse HTTP valide contenant des informations sur l'adresse et le port du client tels qu'ils sont vus par l'hôte du serveur, l'adresse de l'hôte (pouvant varier sur les serveurs multi-hôtes) demande du client. ##### impression des variables d'environnement 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 attend un paquet UDP entrant sur le port 9999 et imprime les variables d'environnement fournies par socat. Sur les systèmes basés sur BSD, il faudra remplacer ip-pktinfo par ip-recvdstaddr, ip-recvif. SOCAT\_IP\_DSTADDR est particulièrement intéressant: il contient l'adresse cible du paquet, qui peut être une adresse unicast, multicast ou broadcast. #### DIAGNOSTIC Socat utilise un mécanisme de journalisation qui permet de filtrer les messages par gravité. Les sévérités fournies sont plus ou moins compatibles avec la priorité syslog appropriée. Avec une ou quatre occurrences de l'option de ligne de commande -d, la priorité la plus basse des messages émis peut être sélectionnée. Chaque message contient un caractère majuscule unique spécifiant la gravité des messages (l'un des caractères F, E, W, N, I ou D). ^ Gravité ^ Description ^ | FATAL | Conditions nécessitant la fin du programme sans condition et immédiate. | | ERREUR | Conditions qui empêchent un traitement correct du programme. Habituellement, le programme est terminé (voir option -s). | | WARNING | Quelque chose n'a pas fonctionné correctement ou est dans un état où un traitement ultérieur correct ne peut pas être garanti, mais pourrait être possible. | | NOTE | Actions intéressantes du programme, par exemple pour superviser socat dans une sorte de mode serveur. | | INFO | Description de ce que fait le programme, et peut-être pourquoi cela se produit. Permet de surveiller les cycles de vie des descripteurs de fichiers. | | DEBUG | Description du fonctionnement du programme, de tous les appels du système ou de la bibliothèque et de leurs résultats. | Les messages de journal peuvent être écrits dans stderr, dans un fichier ou dans syslog. En sortie, socat donne le statut 0 s'il est terminé en raison d'un dépassement EOF ou d'un délai d'inactivité, avec une valeur positive en cas d'erreur et une valeur négative en cas d'erreur fatale. #### VARIABLES D'ENVIRONNEMENT Les variables d'entrée transportent des informations de l'environnement vers socat, les variables de sortie sont définies par socat pour être utilisées dans des scripts et des programmes exécutés. Dans les variables de sortie commençant par "SOCAT", ce préfixe est en fait remplacé par le nom en majuscule de l'exécutable ou la valeur de l'option -lp. ^ Variable ^ Description ^ | SOCAT\_DEFAULT\_LISTEN\_IP (entrée) | (Valeurs 4 ou 6) Définit la version IP à utiliser pour les adresses listen, recv et recvfrom si aucune option pf (protocole-famille) n'est indiquée. Est remplacé par les options socat -4 ou -6. | | SOCAT\_PREFERRED\_RESOLVE\_IP (entrée) | (Valeurs 0, 4 ou 6) Définit la version IP à utiliser lors de la résolution des noms d'hôte cible lorsque la version n'est pas spécifiée par type d'adresse, option pf (famille de protocole) ou format d'adresse. Si la résolution de nom ne renvoie pas d'entrée correspondante, le premier résultat (avec une version IP différente) est pris. Avec la valeur 0, socat sélectionne toujours le premier enregistrement et sa version IP. | | SOCAT\_FORK\_WAIT (entrée) | Spécifie la durée (en secondes) pendant laquelle les processus parent et enfant sont suspendus après un fork réussi (). Utile pour le débogage. | | SOCAT\_VERSION (sortie) | Socat définit cette variable sur sa chaîne de version, par exemple "1.7.0.0" pour les versions publiées ou par exemple "1.6.0.1 + envvar" pour les versions temporaires; peut être utilisé dans les scripts invoqués par socat. | | SOCAT\_PID (sortie) | Socat définit cette variable sur son identifiant de processus. Dans le cas d'une option d'adresse de fork, SOCAT\_PID obtient l'identifiant du processus enfant. fork pour exec et system ne modifie pas SOCAT\_PID. | | SOCAT\_PPID (sortie) | Socat définit cette variable sur son identifiant de processus. En cas de fork, SOCAT\_PPID conserve le pid du processus maître. | | SOCAT\_PEERADDR (sortie) | Avec les adresses de socket passives (toutes les adresses LISTEN et RECVFROM), cette variable est définie sur une chaîne décrivant l'adresse de socket homologue. Les informations de port ne sont pas incluses. | | SOCAT\_PEERPORT (sortie) | Avec les adresses de socket passives appropriées (TCP, UDP et SCTP-LISTEN et RECVFROM), cette variable est définie sur une chaîne contenant le numéro du port homologue. | | SOCAT\_SOCKADDR (sortie) | Avec toutes les adresses LISTEN, cette variable est définie sur une chaîne décrivant l'adresse de socket locale. Les informations de port ne sont pas incluses exemple | | SOCAT\_SOCKPORT (sortie) | Avec les adresses TCP-LISTEN, UDP-LISTEN et SCTP-LISTEN, cette variable est définie sur le port local. | | SOCAT\_TIMESTAMP (sortie) | Avec toutes les adresses RECVFROM où l'option d'adresse so-timestamp est appliquée, socat définit cette variable sur l'horodatage résultant. | | SOCAT\_IP\_OPTIONS (sortie) | Avec toutes les adresses RECVFROM basées sur IPv4 où l'option d'adresse ip-recvopts est appliquée, socat remplit cette variable avec les options IP du paquet reçu. | | SOCAT\_IP\_DSTADDR (sortie) | Avec toutes les adresses RECVFROM basées sur IPv4 où l'option d'adresse ip-recvdstaddr (BSD) ou ip-pktinfo (autres plates-formes) est appliquée, socat définit cette variable sur l'adresse de destination du paquet reçu. Ceci est particulièrement utile pour identifier les paquets adressés par diffusion et multidiffusion. | | SOCAT\_IP\_IF (sortie) | Avec toutes les adresses RECVFROM basées sur IPv4 où l'option d'adresse ip-recvif (BSD) ou ip-pktinfo (autres plates-formes) est appliquée, socat définit cette variable sur le nom de l'interface où le paquet a été reçu. | | SOCAT\_IP\_LOCADDR (sortie) | Avec toutes les adresses RECVFROM basées sur IPv4 où l'option d'adresse ip-pktinfo est appliquée, socat définit cette variable sur l'adresse de l'interface où le paquet a été reçu. | | SOCAT\_IP\_TOS (sortie) | Avec toutes les adresses RECVFROM basées sur IPv4 où l'option d'adresse ip-recvtos est appliquée, socat définit cette variable sur le type de service (TOS) du paquet reçu. | | SOCAT\_IP\_TTL (sortie) | Avec toutes les adresses RECVFROM basées sur IPv4 où l'option d'adresse ip-recvttl est appliquée, socat définit cette variable sur la durée de vie (TTL) du paquet reçu. | | SOCAT\_IPV6\_HOPLIMIT (sortie) | Avec toutes les adresses RECVFROM basées sur IPv6 où l'option d'adresse ipv6-recvhoplimit est appliquée, socat définit cette variable sur la valeur hoplimit du paquet reçu. | | SOCAT\_IPV6\_DSTADDR (sortie) | Avec toutes les adresses RECVFROM basées sur IPv6 où l'option d'adresse ipv6-recvpktinfo est appliquée, socat définit cette variable sur l'adresse de destination du paquet reçu. | | SOCAT\_IPV6\_TCLASS (sortie) | Avec toutes les adresses RECVFROM basées sur IPv6 où l'option d'adresse ipv6-recvtclass est appliquée, socat définit cette variable sur la classe de transfert du paquet reçu. | | SOCAT\_OPENSSL\_X509\_ISSUER (sortie) | Champ émetteur du certificat homologue | | SOCAT\_OPENSSL\_X509\_SUBJECT (sortie) | Champ objet du certificat homologue | | SOCAT\_OPENSSL\_X509\_COMMONNAME (sortie) | commonName entrées du sujet des certificats homologues. Les valeurs multiples sont séparées par `//`. | | SOCAT\_OPENSSL\_X509\_ * (sortie) | toutes les autres entrées du sujet des certificats homologues | | SOCAT\_OPENSSL\_X509V3\_DNS (sortie) | Entrées DNS des extensions de certificats homologues - champ subjectAltName. Les valeurs multiples sont séparées par `//`. | | HOSTNAME (entrée) | Est utilisé pour déterminer le nom d'hôte pour la journalisation (voir -lh).| | LOGNAME (entrée) | Est utilisé comme nom pour le nom d'utilisateur du client socks si aucun utilisateur socks n'est donné\\ \\ Avec les options su et su-d, **LOGNAME** est défini sur le nom d'utilisateur donné. | | USER (entrée) | Est utilisé comme nom pour le nom d'utilisateur du client socks si aucun utilisateur socks n'est donné et LOGNAME est vide.\\ \\ Avec les options su et su-d, **USER** est défini sur le nom d'utilisateur donné. | | SHELL (sortie) | Avec les options su et su-d, **SHELL** est défini sur le shell de connexion de l'utilisateur donné. | | PATH (sortie) | Peut être défini avec le chemin d’option pour les adresses exec et système. | | HOME (sortie) | Avec les options su et su-d, **HOME** est défini sur le répertoire de base de l'utilisateur donné. |