...
socat TCP4-LISTEN:www TCP4:www.domain.org:www
устанавливает простой перенаправитель TCP-порта. При использовании TCP4-LISTEN он прослушивает локальный порт "www" до тех пор, пока не будет установлено соединение, примет его, затем подключится к удаленному хосту (TCP4) и начнет передачу данных. Он не примет второе соединение.
socat -d -d -lmlocal2 \
TCP4-LISTEN:80,bind=myaddr1,su=nobody,fork,range=10.0.0.0/8,reuseaddr \
TCP4:www.domain.org:80,bind=myaddr2
Переадресация TCP-портов, каждая сторона связана с другим локальным IP-адресом (bind). В этом примере обрабатывается практически произвольное количество параллельных или последовательных соединений путем разветвления нового процесса после каждого accept (). Это обеспечивает небольшую безопасность, позволяя никому не поддаваться после разветвления; он разрешает соединения только из частной сети 10 (диапазон); из-за reuseaddr, он позволяет немедленный перезапуск после завершения главного процесса, даже если некоторые дочерние сокеты не полностью закрыты. С -lmlocal2 socat регистрирует в stderr, пока не достигнет цикла приема. Дальнейшее ведение журнала направляется в системный журнал с помощью средства local2.
socat TCP4-LISTEN:5555,fork,tcpwrap=script \
EXEC:/bin/myscript,chroot=/home/sandbox,su-d=sandbox,pty,stderr
простой сервер, который принимает соединения (TCP4-LISTEN) и разветвляет новый дочерний процесс для каждого соединения; каждый ребенок действует как единое реле. Клиент должен соответствовать правилам для имени процесса-демона "script" в /etc/hosts.allow и /etc/hosts.deny, в противном случае ему будет отказано в доступе (см. "Man 5 hosts_access"). Для выполнения программы EXEC дочерний процесс обрабатывает chroot в /home /sandbox, su в пользовательскую песочницу, а затем запускает программу /home /sandbox /bin /myscript. Сокат и myscript общаются через псевдо-tty (pty); Стандер myscript перенаправляется на стандартный вывод, поэтому сообщения об ошибках передаются через socat подключенному клиенту.
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 - это скрипт оболочки, распространяемый вместе с socat, который реализует простой SMTP-клиент. Он запрограммирован "говорить" по SMTP на своих FD 3 (вход) и 4 (выход). Опции fdin и fdout говорят socat использовать эти FD для связи с программой. Так как mail.sh наследует stdin и stdout, а socat не использует их, скрипт может читать тело письма из stdin. Socat делает alias1 вашим локальным адресом источника (связывание), заботится о правильном завершении сетевой линии (crnl) и отправляет не более 512 байтов данных на пакет (mss).
...