Este é o comando netpipes que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas várias estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online do Windows ou emulador online do MAC OS
PROGRAMA:
NOME
netpipes - um pacote para manipular sockets de stream BSD TCP / IP
versão 4.2
SINOPSE
torneira porta (--no|--Fora|--errar|--fd n) + [--uma vez] [--verbose] [--quieto] [--unix]
[--host estrangeiro addr] [--porto estrangeiro porta] [--localhost addr] [--serial] [--daemon]
[--desligar (r | w)] [--pidfile nome do arquivo] [--noreuseaddr] [--lista de pendências n]
[-[i][o][e][#3[,4[,5...]]] [v][1][q][u][d][s]] [-p porto estrangeiro] [-h hospedeiro estrangeiro] [-H
host local] comando args
mangueira hostname porta (--no|--Fora|--errar|--fd n|--escravo) [--verbose] [--unix] [--localport
porta] [--localhost addr] [- nova tentativa n] [--atraso n] [--desligar [r | w] [a]] [--noreuseaddr]
[-[i][o][e][#3[,4[,5...]]] [s][v][u]] [-p porta local] [-h host local] comando args
encapsular --fd n [ --verbose ] [ --subproc [ --infd n[=sid]] [ --outfd n[=sid]] [
--duplex n[=sid]] [ - Duplex n[=sid]] [ - DUPLEX n[=sid]] [ --prefere-local ] [
--prefer-remoto ] [ - somente local ] [ --somente remoto ]] [ --cliente ] [ --servidor ]
-[#n][v][s[in][on][dn][ion][oin][l][r][L][R]] comando args ...
meia [fd [como]]
getpeername [ -verboso ] [ -meia ] [ fd ]
getockname [ -verboso ] [ -par ] [ fd ]
timelimit.netpipes [ -v ] [ -não mate ] tempo comando args
DESCRIÇÃO
O pacote netpipes torna os streams TCP / IP utilizáveis em scripts de shell. Também pode simplificar
código cliente / servidor, permitindo que o programador pule todos os bits de programação tediosos
relacionados a sockets e se concentrar em escrever um filtro / serviço.
`` Por que seria qualquer um queremos para do naquela?''
-- Richard vendedor ambulante
torneira é a extremidade do servidor de um fluxo TCP / IP. Ele escuta em uma porta da máquina local
esperando por conexões. Cada vez que obtém uma conexão, ele bifurca um processo para realizar um
serviço para o cliente que se conecta.
mangueira é a extremidade do cliente de um fluxo TCP / IP. Ele se conecta ativamente a uma porta remota e
executa um processo para solicitar um serviço.
encapsular é uma implementação do protocolo de controle de sessão. Isso permite que você
multiplexar vários fluxos em uma única sessão TCP e também transmitir saída remota
estado.
meia é um programa simples projetado para desligar parte ou toda a conexão de soquete.
É principalmente útil quando os processos conectados ao soquete realizam entrada e
saída.
getpeername e getockname são dois nomes para um programa projetado para imprimir o
endereços das extremidades de um soquete. getpeername imprime o endereço do terminal remoto e
getockname imprime o endereço da extremidade local.
timelimit.netpipes limita a quantidade de tempo de clock de primeiro plano que um processo pode consumir.
Depois que o limite de tempo se esgota, ele mata o processo ou sai e o deixa no
fundo.
EXEMPLOS
Aqui está um comando simples que freqüentemente executo para transferir árvores de diretório entre máquinas.
(rsh não funciona porque uma máquina está conectada usando SLIP e .rhosts estão fora do
pergunta).
servidor $ faucet 3000 --out tar cf -.
cliente $ servidor de mangueira 3000 - em tar xvf -
Aqui está um cliente HTTP mínimo. É tão mínimo que fala HTTP antigo.
cairo $ shoe www.cis.ufl.edu 80 --in --out \
sh -c "(echo 'GET /'; sockdown) & cat> resultado"
E, claro, existe o metasservidor de Nick Trown para Netrek
cairo $ manga metaserver.ecst.csuchico.edu 3521 --em cat
Permita-me desculpar-me antecipadamente pela complexidade do exemplo a seguir. Isto
requer uma compreensão da sintaxe de redirecionamento do descritor de arquivo Bourne shell (e
ilustra por que csh e tcsh sugam ovos). Não tente digitar isto a partir do seu comando tcsh
linha. Faça um bash (Bourne Again SHell do GNU).
Suponha que você queira distinguir entre stdout e stderr de um processo remoto
remoto $ faucet 3000 --fd 3 \
encapsular --fd 3 --infd 0 --outfd 1 --outfd 2 --subproc \
app remoto
local $ Mangueira remota 3000 --fd 3 \
encapsular --fd 3 --outfd 3 --infd 4 --infd 5 --subproc \
sh -c "cat 0 <& 4 3> & - & cat 0 <& 5 1> & 2 3> & - & \
gato 1> & 3; exec 3> & - "
Feche todos os descritores de arquivo desnecessários ao iniciar uma tarefa em segundo plano. É por isso que
gatos de fundo têm 3> & -.
servidor $ faucet 3000 --in --out --verbose enscript -2rGhp -
cliente $ ps aux | servidor de mangueira 3000 --in --out \
sh -c "(cat <& 3; sockdown) & cat> & 4" 3 <& 0 4> & 1 | \
lpr-Pps422
#ou talvez isso, mas não testei
cliente $ ps aux | servidor de mangueira 3000 --fd 3 \
sh -c "(cat> & 3; sockdown 3) & cat <& 3" | \
lpr-Pps422
Isso prova que a mangueira pode ser usado como parte de um pipeline para realizar uma espécie de controle remoto
chamada de procedimento (RPC). Depois de descobrir esse exemplo, você saberá como usar
Bourne shell para embaralhar os descritores de arquivo. É uma habilidade útil.
Agora vamos ao extremo, mas simplifique as coisas usando o --escravo opção de mangueira. o
a seguir está um relé de soquete
gateway $ faucet 3000 -io servidor de mangueira 4000 --slave
É um pequeno bugger útil quando você deseja túnel através de um firewall em um ocasional
base. Se você experimentar o `` travamento '' da conexão, tente usar o --netslave opção
em vez de --escravo. (proxies telnet se beneficiariam com isso)
Para aqueles que usam ssh, veja como fazer um túnel de algumas informações por meio de um criptografado
Encaminhamento de porta SSH.
servidor $ faucet 3000 -1v --fd 1 - servidor estrangeiro echo blah
cliente $ ssh -n -x -L 3000: servidor: 3000 servidor hibernar 60 &
cliente $ mangueira localhost 3000 --fd 0 -retry 10 cat
O truque com o encaminhamento de porta do ssh é que o encerramento(2) chamada de sistema faz com que ssh para
feche ambas as metades da conexão full-duplex em vez de apenas uma metade. É por isso que você
tem que usar --fd 1 e --fd 0. Se você precisa ser capaz de fechar metade da conexão
enquanto ainda estiver usando o outro, use o invólucro encapsulado.
servidor $ faucet 3000 -1v --fd 3 - servidor forignhost \
encapsular --fd 3 --server -si0o1 tr az AZ
cliente $ ssh -n -x -L 3000: servidor: 3000 servidor hibernar 60 &
cliente $ echo blah | mangueira localhost 3000 --fd 3 -retry 10 \
encapsular --fd 3 --client
OBSERVAÇÃO
O mantenedor do pacote Debian foi renomeado prazo para o mais expressivo
timelimit.netpipes, pois existe uma alternativa melhor usando o mesmo nome curto, mas
que é mantido ativamente como um software independente.
Use netpipes online usando serviços onworks.net