Я думаю, что вы проходите большую часть пути, поскольку вы упомянули использование прокси-сервера SOCKS. С помощью ssh
вы можете настроить собственный локальный прокси-сервер SOCKS на локальном компьютере, туннелированный через соединение ssh; например:
ssh -D 3128 user@remote.host.com
Затем вы должны указать браузеру использовать этот локальный прокси-сервер для подключения к Интернету. Для Firefox эти настройки находятся в Предпочтения >> Дополнительно >> Сеть >> Соединение. Затем вы можете установить Ручную настройку прокси-сервера >> SOCKS Host на localhost
и 3128
.
Обратите внимание, что он статический, и вам нужно будет обновлять его каждый раз, когда вы подключаетесь / отключаетесь.
Кроме того, вы сказали, что ваш удаленный сервер ....
... подключается к Интернету через прокси-сервер локальной сети.
Я полагаю, что сеть, к которой вы подключаетесь через SSH, имеет собственный прокси-сервер для сетевых подключений, и в этом случае вам может понадобиться запутаться с настройками; трудно быть точным без дополнительной информации.
В качестве альтернативы, в зависимости от вашей ОС, вы можете использовать системные настройки прокси-сервера или, если вы действительно любите приключения, вы можете установить «URL-адрес автоматической настройки прокси-сервера: в файл». Раньше я делал это, когда работал в компании с драконовским «чистым няней» на моем пути. Например, вот конфигурационный файл, который я использовал - много примеров, но вам нужно будет найти правильные настройки для вас.
// 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
Обратите внимание, что я даже использовал этот конфигурационный файл для прокси SMTP и IMAP, когда они также были заблокированы, поэтому я мог получить доступ к своей личной электронной почте через Thunderbird, которая также поддерживает настройки файла PAC.
Как всегда, YMMV ... Надеюсь это поможет.