Seu script original requer que a conexão venha de um host chamado localhost
, mas, por algum motivo, a filtragem está falhando. Incomum, porque corresponde exatamente ao nome listado no erro: invalid connection to [127.0.0.1] from localhost [127.0.0.1] 60038
Este comando escutará na interface de rede localhost
(e ignorará os pedidos de outras interfaces, como sua LAN):
netcat -vvl -s localhost -p 1111 -c '
set -x
read http_request
echo HTTP/1.0 200 OK
echo
echo "Received HTTP request: $http_request"
'
Se você deseja ouvir solicitações em todas as interfaces, pode descartar totalmente a parte -s
:
netcat -vvl -p 1111 -c '...'
No meu sistema, se eu quiser fazer o mesmo tipo de filtro de host de origem sem -s
, preciso usar 127.0.0.1
ou localhost.localdomain
:
netcat -vvl localhost.localdomain -p 1111 -c '...'
netcat -vvl 127.0.0.1 -p 1111 -c '...'
Em qualquer caso, uma das opções acima deve funcionar para você:
$ netcat -vvl 127.0.0.1 -p 1111 -c '
quote> set -x
quote> read http_request
quote> echo HTTP/1.0 200 OK
quote> echo
quote> echo "Received HTTP request: $http_request"
quote> '
listening on [any] 1111 ...
connect to [127.0.0.1] from localhost.localdomain [127.0.0.1] 35368
+ read http_request
+ echo HTTP/1.0 200 OK
+ echo
+ echo Received HTTP request: GET / HTTP/1.1
$