socat (SOcket CAT: netcat on steroids) é um relé para transferência bidirecional de dados entre dois canais de dados independentes. Cada um desses canais de dados pode ser um arquivo, canal, dispositivo (linha serial etc. ou um pseudo terminal), um soquete (UNIX, IP4, IP6 - bruto, UDP, TCP), um soquete SSL, uma conexão proxy CONNECT, um arquivo descritor (stdin etc.), o editor de linha GNU (readline), um programa ou uma combinação de dois destes. Esses modos incluem a geração de soquetes de "escuta", pipes nomeados e pseudoterminais.
Alguns dos exemplos de uso de socat são:
Retransmissão TCP (one-shot ou daemon)
Meias externas
Interface Shell para soquetes Unix
Retransmissão IPv6
Substituição de Netcat e rinetd
Redirecionando programas orientados a TCP para uma linha serial
Estabelecer um ambiente relativamente seguro (su e chroot) para executar scripts shell de cliente ou servidor dentro de conexões de rede.
http://www.dest-unreach.org/socat/doc/socat.html#EXAMPLES
socat 1.8.0.1-x86_64 para Windows 7, 8.1, 10 e 11 e servidor [24/08/2024]
O procedimento para quem deseja compilar a partir dos arquivos fonte.
Caso contrário, para os outros, existe um arquivo pronto 'socat-1.8.0.1.7z' . Você pode baixá-lo acessando: socat-1.8.0.1.7z e procedendo pelo atalho de teclado (Ctrl + Shift + s).
Em primeiro lugar, se ainda não tiver feito isso, baixe e instale o Cygwin (última versão): https://www.cygwin.com/setup-x86_64.exe
– gcc-g++
– núcleo gcc
–cygwin32-gcc-g++
–cygwin32-gcc-core
- fazer
– gcc-fortran
– gcc-objc
–gcc-objc++
–libkrb5-devel
–libkrb5_3
– libreadline-devel
– libssl-devel
–libwrap-devel
– tcp_wrappers
Para isso, vamos tentar responder à seguinte questão: Como instalar pacotes no Cygwin? Baixe o instalador Cygwin e execute setup.exe. Clique em Avançar nos padrões e selecione espelho para baixar pacotes. Procure cada pacote, abra a categoria apropriada (por exemplo Net ou PHP ou outro) e clique em Ignorar ao lado de cada pacote para selecioná-lo para instalação.
Por favor, não se esqueça de baixar a fonte socat em http://www.dest-unreach.org/socat/
Execute o Cygwin via (Windows + R, 'mintty') e execute os seguintes comandos:
cd / && cd cygdrive/c/Users/<seu_nome de usuário>/Desktop [ou cd / && cd %USERPROFILE%/Desktop se você usar (Windows + R, 'cmd')] wget http://www.dest-unreach.org/socat/download/socat-1.8.0.1.tar.gz tar -xvzf socat-1.8.0.1.tar.gzcd socat-1.8.0.1 ./configure fazer fazer instalar
Após a compilação, copie o diretório 'socat-1.8.0.1' para %ProgramFiles% ou outro local. Você tem que copiar o diretório totalmente e não apenas 'socat.exe', caso contrário não funcionará.
Cuidado: Adicione o caminho do socat das variáveis de ambiente, com (Windows + R, 'sysdm.cpl', configurações avançadas do sistema). Feche 'mintty' e abra-o novamente.
Nota (de 'mintty' [cygwin] para verificar o número da versão):
$ socat -V socat por Gerhard Rieger e colaboradores - veja www.dest-unreach.org socat versão 1.8.0.1 em 24 de agosto de 2024 21:18:20 executando em CYGWIN_NT-10.0-26100 versão 2024-04-03 17:25 UTC, versão 3.5.3-1.x86_64, máquina x86_64 características: #define COM_HELP 1 #define COM_STATS 1 #define COM_STDIO 1 #define COM_FDNUM 1 #define COM_FILE 1 #define COM_CREAT 1 #define COM_GOPEN 1 #define COM_TERMIOS 1 #define COM_PIPE 1 #define COM_SOCKETPAIR 1 #define COM_UNIX 1 #undef COM_ABSTRACT_UNIXSOCKET #define COM_IP4 1 #define COM_IP6 1 #define COM_RAWIP 1 #define COM_GENERICSOCKET 1 #undef COM_INTERFACE #define COM_TCP 1 #define COM_UDP 1 #undef COM_SCTP #undef COM_DCCP #undef COM_UDPLITE #define COM_LISTEN 1 #undef COM_POSIXMQ #define COM_SOCKS4 1 #define COM_SOCKS4A 1 #define COM_SOCKS5 1 #undef COM_VSOCK #undef COM_NAMESPACES #define COM_PROXY 1 #define COM_SYSTEM 1 #define COM_SHELL 1 #define COM_EXEC 1 #define COM_READLINE 1 #undef COM_TUN #define COM_PTY 1 #define COM_OPENSSL 1 #undef COM_FIPS #define COM_LIBWRAP 1 #define COM_SYCLS 1 #define COM_FILAN 1 #define COM_RETRY 1 #undef COM_DEVTESTS #define COM_MSGLEVEL 0 /*debug*/ #define COM_DEFAULT_IPV 4
Do comentário de Mugane:
Também posso acrescentar que é melhor usar o Powershell (como administrador) para instalar esses pacotes para o cygwin se estiver usando cyg-get :
cyg-get gcc-g++ gcc-core make gcc-fortran gcc-objc gcc-objc++ libkrb5-devel libkrb5_3 libreadline-devel libssl-devel libwrap-devel tcp_wrappers
Se você não usar o PowerShell e tentar instalar a partir do próprio cygwin (mesmo como administrador), você poderá encontrar erros de dll ausentes e enigmáticos e acabar precisando remover/reinstalar o próprio cygwin para corrigir os problemas.
Se os usuários não tiverem o cygwin, recomendo chocolatey (novamente do Powershell como administrador):
choco instalar -y cygwin cyg-get