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//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 WITH_HELP 1 #define WITH_STATS 1 #define WITH_STDIO 1 #define WITH_FDNUM 1 #define WITH_FILE 1 #define WITH_CREAT 1 #define WITH_GOPEN 1 #define WITH_TERMIOS 1 #define WITH_PIPE 1 #define WITH_SOCKETPAIR 1 #define WITH_UNIX 1 #undef WITH_ABSTRACT_UNIXSOCKET # definir 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_SOCK S4A 1 #define WITH_SOCKS5 1 #undef WITH_VSOCK #undef WITH_NAMESPACES #define WITH_PROXY 1 #define WITH_SYSTEM 1 #define WITH_SHELL 1 #define WITH_EXEC 1 #define WITH_READLINE 1 #undef WITH_TUN #define WITH_PTY 1 #define WITH_OPENSSL 1 #undef WITH_FIPS #define WITH_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