Este deveria ser um problema simples de resolver, mas por algum motivo não está funcionando para mim.
ssh vps
funciona muito bem (eu uso chaves de autenticação)
Eu configurei o túnel com o comando:
ssh -C2TNv -D 8080 vps
Em seguida, modifico as configurações de rede do Firefox:
- configuração manual
- proxy http: localhost, porta: 8080
- use este servidor proxy para todos os protocolos
- MEIAS v5
- sobre:config
- network.proxy.socks_remote_dns: verdadeiro
Saída terminal:
$ ssh -C2TNv -D 8080 vps
OpenSSH_6.0p1, OpenSSL 1.0.1a 19 Apr 2012
debug1: Reading configuration data /home/ting/.ssh/config
debug1: /home/ting/.ssh/config line 47: Applying options for vps
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to vps.server.com [1.1.1.1] port 22.
debug1: Connection established.
debug1: identity file /home/ting/.ssh/id_rsa type 1
debug1: identity file /home/ting/.ssh/id_rsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.5p1 Debian-6+squeeze1
debug1: match: OpenSSH_5.5p1 Debian-6+squeeze1 pat OpenSSH_5*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.0
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 [email protected]
debug1: kex: client->server aes128-ctr hmac-md5 [email protected]
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA <removed>
debug1: Host 'vps.server.com' is known and matches the RSA host key.
debug1: Found key in /home/ting/.ssh/known_hosts:10
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/ting/.ssh/id_rsa
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Enabling compression at level 6.
debug1: Authentication succeeded (publickey).
Authenticated to vps.server.com ([1.1.1.1]:22).
debug1: Local connections to LOCALHOST:8080 forwarded to remote address socks:0
debug1: Local forwarding listening on ::1 port 8080.
debug1: channel 0: new [port listener]
debug1: Local forwarding listening on 127.0.0.1 port 8080.
debug1: channel 1: new [port listener]
debug1: Requesting [email protected]
debug1: Entering interactive session.
Em seguida, tento visitar um site usando o Firefox, saída SSH:
debug1: Connection to port 8080 forwarding to socks port 0 requested.
debug1: channel 2: new [dynamic-tcpip]
debug1: channel 2: free: dynamic-tcpip, nchannels 3
debug1: Connection to port 8080 forwarding to socks port 0 requested.
debug1: channel 2: new [dynamic-tcpip]
debug1: channel 2: free: dynamic-tcpip, nchannels 3
Apesar do proxy aparentemente funcionar, visitar qualquer site com Firefox apenas retorna com o erro “A conexão foi redefinida”.
Responder1
Seu comando SSH com -D está bom (então o SOCKS irá encapsular, é apenas a conexão com o SOCKS via HTTP, que você precisa resolver)
Eu obtenho bons resultados com
curl --socks5 127.0.0.1:8080 http://blah
mas recebo a mesma saída errada que você obtém se eu fizer isso
curl --proxy 127.0.0.1:8080 http://blah
Então, o Firefox está se conectando como se fosse um proxy HTTP
Olhando para a janela do Firefox
configuração manual SIM
você disse que marcou "usar este servidor proxy para todos os protocolos". Essa é uma atitude totalmente errada! Você deseja inserir um proxy SOCKS e, se fizer isso, a caixa SOCKS será anulada/acinzentada e você só poderá inserir um proxy HTTP.
Então não marque isso.
E faça isso, digite o ip do proxy meias.
e remova onde diz no proxy for 127.0.0.1,localhost . se disser isso, qual é o padrão.
Responder2
Para verificar a conexão via curl você também pode usar sinalizadores -I -v
(para obter apenas cabeçalhos HTTP e obter uma saída mais falante).
Se esses sinalizadores forem selecionados e conectarem-se ao curl - você verá na string de saída como:
* Rebuilt URL to: http://www.google.ru/
* Trying ::1...
* 87
* 245
* 198
* 44
* Connected to localhost (::1) port 8080 (#0)
Se não for possível obter conexão:
* Rebuilt URL to: http://www.google.ru/
* Trying ::1...
* connect to ::1 port 8080 failed: Connection refused
Na aba de outro terminal com conexão ssh você verá algo assim:
debug1: channel 2: new [dynamic-tcpip]
debug1: channel 2: free: direct-tcpip: listening port 9999 for 87.245.198.44 port 80, connect from ::1 port 55034 to ::1 port 8080, nchannels 3