Você está na maior parte do caminho, eu acho, desde que você mencionou o uso de um proxy SOCKS. Com ssh
, você pode configurar seu próprio servidor proxy SOCKS local em sua máquina local, encapsulado através da conexão ssh; por exemplo. :
ssh -D 3128 [email protected]
Em seguida, você precisa dizer ao seu navegador para usar esse servidor proxy local para se conectar à Internet. Para o Firefox, essas configurações estão em Preferências > > Avançado > > Rede > > Conexão . Em seguida, você pode definir a Configuração manual de proxy> > > Host SOCKS para localhost
e 3128
.
Note que é estático e você precisará atualizá-lo toda vez que se conectar / desconectar.
Além disso, você disse que o seu servidor remoto ...
... connects to internet using a LAN proxy server.
Eu entendo que a rede que você conecta via SSH tem seu próprio servidor proxy para conexões de rede, caso em que você pode precisar ser complicado com suas configurações; difícil ser definitivo sem mais informações.
Como alternativa, dependendo do sistema operacional, você pode usar as configurações de proxy do sistema ou, se for realmente aventureiro, pode definir "URL de configuração automática de proxy: para um arquivo. Eu costumava fazer isso quando trabalhava para uma empresa com um proxy draconiano "net-nanny" no meu caminho. Por exemplo, aqui está o arquivo de configuração que usei - muitos exemplos, mas você terá que descobrir as configurações certas para você.
// Personal/Portable Proxy Auto Config -- in -*- conf -*- mode
//
// Point your web-browser or good mail client (e.g. Thunderbird)
// at this automatic configuration script.
//
// Reasonable references for PAC stuff:
// - http://en.wikipedia.org/wiki/Proxy_auto-config
// - http://findproxyforurl.com/example-pac-file/
//
// This is not for the weak of heart. If you want something
// user friendly and still configurable, try:
// - https://addons.mozilla.org/en-us/firefox/addon/foxyproxy-standard
////
// normal, non-firewalled, non-proxied...
var PROXY = "DIRECT";
var SOCKS = "DIRECT";
var DOMAIN = ".nomatch";
var IPCACHE = "bogus";
var LOCALPROXY = "PROXY localhost:3128";
function MyPACSetup() {
alert("MY IP = " + myIpAddress());
PROXY = "PROXY proxy.corporation.com:8080;" +
"DIRECT";
SOCKS = "DIRECT";
DOMAIN = ".nomatch";
IPCACHE = myIpAddress();
NETMASK = "255.255.0.0";
// Proxy web locally when inside 10.x.x.x nonrouteable
//if (isInNet(myIpAddress(), "192.168.158.0", "255.255.255.0")) {
//if (isInNet(myIpAddress(), "192.168.1.0", "255.255.255.0")) {
//if (isInNet(myIpAddress(), "128.99.3.0", "255.255.255.0")) {
if (isInNet (myIpAddress(), "164.145.43.0", NETMASK)) {
DOMAIN = ".nomatch";
SOCKS = "SOCKS localhost:1080";
PROXY = "SOCKS localhost:1080;" +
"DIRECT";
}
// Proxies when inside
// if (isInNet(myIpAddress(), "129.235.0.0", "255.255.0.0")
// || isInNet(myIpAddress(), "199.62.0.0", "255.255.0.0")) {
// DOMAIN = ".corporation.com";
// NETMASK = "255.255.0.0";
// PROXY =
// //"PROXY lug.corporation.com:3128;" +
// //"PROXY mspcf01.corporation.com:8080;" +
// //"PROXY tmpproxy.corporation.com:8080;" +
// "DIRECT";
// SOCKS =
// //"SOCKS localhost:1080";
// "SOCKS lug.htc.corporation.com:1080";
// }
// Dwight's world
// if (isInNet(myIpAddress(), "192.168.17.0", "255.255.255.0")) {
// PROXY = "128.99.0.23:500"; // + ";DIRECT";
// SOCKS = "128.99.0.23:500";
// }
alert("PROXY = " + PROXY);
alert("SOCKS = " + SOCKS);
alert("DOMAIN = " + DOMAIN);
}
function FindProxyForURL(url, host) {
// Re-configure proxies when IP changes
// Handles portables moving around different networks
if (myIpAddress() != IPCACHE) { MyPACSetup(); }
//alert("URL: " + url);
// Testing localhost proxy for wfuzz or other hacking
if ( host == "localhost" ) {
alert("localhost: " + host + " -- returning PROXY");
return LOCALPROXY;
}
// local and loopback hosts are always direct
// should non-routable be here too?
if ( isPlainHostName(host)
|| dnsDomainIs(host, DOMAIN)
//|| host == "localhost"
|| isInNet(host, "127.0.0.0", "255.255.255.0")
|| isInNet(host, IPCACHE, NETMASK)
) {
//alert("Plain/local host: " + host + " -- returning DIRECT");
return "DIRECT";
}
// Mostly for Thurderbird
// IF host is local or in DOMAIN, above check will succeed
if (url.substring(0, 5) == "imap:"
|| url.substring(0, 7) == "mailto:"
|| url.substring(0, 5) == "nntp:") {
//alert("Mail/News protocols - returning SOCKS");
return SOCKS;
}
// Tunnel blocked sites through our SOCKS server
if ( shExpMatch(host, "*poker*")
|| shExpMatch(host, "*.emusic.com")
|| shExpMatch(host, "www.myspace.com")
|| shExpMatch(host, "*beer*")
|| shExpMatch(host, "*youtube.com")
|| shExpMatch(host, "*.somethingawful.com")
|| shExpMatch(host, "www.rst38.org.uk")
|| shExpMatch(host, "*videodownloader.net")
|| shExpMatch(host, "*javimoya.com")
|| shExpMatch(host, "gnupg.org")
|| shExpMatch(host, "*.asobrain.com")
|| shExpMatch(host, "*climateprediction.net")
|| shExpMatch(host, "*rsscache.com")
//|| shExpMatch(host, "*winamp.com*")
// || dnsDomainIs(host, ".windowsupdate.com")
// || dnsDomainIs(host, "windowsupdate.microsoft.com")
// || dnsDomainIs(host, ".windowsupdate.microsoft.com")
) {
alert("Corporation Blocked -- returning SOCKS");
return SOCKS;
}
// if (url.substring(0, 5) != "http:") {
// //alert("NON HTTP -- returning SOCKS");
// return SOCKS;
// }
// if (url.substring(0, 5) == "https:") {
// //alert("HTTPS -- returning DIRECT + PROXY");
// return "DIRECT;" + PROXY;
// }
// Otherwise use normal proxy
//alert("Default PROXY");
return PROXY;
}
// eof
Note que eu mesmo usei esse arquivo de configuração para fazer o proxy SMTP e IMAP quando eles também estavam bloqueados, então eu poderia acessar meu e-mail pessoal via Thunderbird, que também suporta as configurações do arquivo PAC.
Como sempre, YMMV ... Espero que isso ajude.