Eu descobri o problema:
O servidor proxy da minha escola estava bloqueando endereços IP brutos (por exemplo, 123.45.79.911
), então eu configurei um servidor DNS para redirecionar conexões de hostname.net
para meu endereço IP residencial.
Estou tentando ignorar um servidor proxy na minha escola devido à sua restrição desnecessária ao usar o encapsulamento SSH por HTTPS. Consegui usar um serviço de encapsulamento SSH gratuito e proxytunnel , que supostamente cria túneis HTTP (S) genéricos através de proxies para um servidor remoto.
O problema é que o serviço de tunelamento que estou usando não é muito confiável. 9/10 vezes tento criar o túnel usando o comando ssh [email protected] -p 443 -ND 1080 -o"ProxyCommand /usr/local/bin/proxytunnel -p proxy.ip.address:port —v -d %h:%p"
recebo
ssh_exchange_identification: connection closed by remote host
, então presumo que o servidor esteja apenas sobrecarregado.
Este servidor também é bastante lento, como você pode esperar de um serviço gratuito. Este método funciona, não é o que eu quero.
Portanto, eu tenho um computador extra em casa executando sshd
ouvindo na porta 443, e redirecionei a porta 443 no roteador. Eu conectei-me ao servidor doméstico a partir de uma rede remota que não está atrás do proxy, por isso sei que é acessível de fora.
Agora, algo interessante acontece quando executo ssh [email protected] -p 443 -o"ProxyCommand /usr/local/bin/proxytunnel -p proxy.ip.address:port -v -d %h:%p"
da rede restrita: ssh_exchange_identification: connection closed by remote host
. Eu recebo isso toda vez que tento conectar-me a partir da rede restrita, não importa o que aconteça.
Então, por que posso me conectar ao servidor gratuito, mas ele não me permite usar meu servidor doméstico? Adicionar -vvv
(para a parte do comando ssh
do comando, não proxytunnel
) não fornece nenhuma informação útil além de não ser possível conectar-se ao servidor inicial. Se isso ajudar, acho que proxytunnel
não é o culpado porque imprime Via proxy.ip.address:port -> home.server.ip:port
, o que significa que ele se conectou ao proxy. proxy.ip.address
é o proxy restritivo que estou tentando ignorar, apenas para esclarecer.
Eu descobri o problema:
O servidor proxy da minha escola estava bloqueando endereços IP brutos (por exemplo, 123.45.79.911
), então eu configurei um servidor DNS para redirecionar conexões de hostname.net
para meu endereço IP residencial.
Acabei de colocar todo o conjunto de diretivas Proxy, que são:
RequestReadTimeout header=0,MinRate=500 body=0,MinRate=500
ProxyRequests on
AllowCONNECT 22
<Proxy localhost>
Order allow,deny
Allow from all
</Proxy>
dentro do primeiro bloco <VirtualHost>
no httpd.conf, e ele fez o truque - "405 Method Not Allowed" desapareceu para sempre.
Tags command-line ssh networking proxy tunnel