Тунелювання в комп'ютер для доступу до Інтернету


0

У мене є базове розуміння тунелювання

У віддаленій системі встановлено веб-сервер, який підключається до Інтернету за допомогою проксі-сервера LAN.

Я можу тунелювати в віддалений комп'ютер (Dynamic Port Forwarding) за допомогою шпаклівки. Використовуючи проксі SOCKS, я отримую доступ до сервера, встановленого на віддаленій системі, але не в Інтернеті.

Як отримати доступ до Інтернету ??


хороше питання .. Можливо, SSH -L PORTA: 127.0.0.1: PORTB, що пересилає на 127.0.0.1:PORTB проксі на віддаленому комп'ютері. тому, якщо на віддаленому комп'ютері є проксі на порт 5678, можна виконати SSH -L 1234: 127.0.0.1: 5678 і (на локальному комп'ютері) вказати веб-переглядач на порт 1234
barlop

і я припускаю, що ви хочете два тунелі .. один для браузера в Інтернеті через ваш проксі, і один для доступу до веб-сервера. ви могли б зробити 2 SSH з'єднання, кожен з SSH-L, або, я думаю, ви можете зробити -L двічі .. як ssh -L PORT: 127.0.0.1: PORT -L PORT: 127.0.0.1: PORT
barlop

Відповіді:


0

Тому що ви говорите, що ви можете тунелі в машину я б рекомендував запустити проксі-сервер на машині ви сидите, а потім відображення порту на віддаленому комп'ютері в локальний порт проксі. Потім на віддаленому комп'ютері встановіть проксі на себе на відображений порт. Будь-які інтернет-запити будуть відображені через ваш проксі-сервер в Інтернет.

    internet --- your machine with proxy on port 8080 --- ssh tunnel mapping 8080(local) to 8080(remote) ---- remote machine (http://localhost:8080 as proxy)

    SSH -L 8080:1.2.3.4:8080

ваш ip як видно віддаленою машиною = 1.2.3.4


0

Один туннель SSH може підключатися лише до одного вибраного хоста. Немає способу створити лише один тунель для обслуговування декількох підключень до Інтернету, як проксі. Або я не знаю жодної існуючої технології.


так, хоча я навіть не впевнений, що один тунель для обслуговування декількох хостів означав би. є ssh -D, де створюється порт, і ви підключаєтеся і в кінці пересилання він підключається до декількох хостів. не тільки "як" проксі, але це проксі, коли з -D.Said бути один tunnel.Also з'єднання SSH може тунелю кілька з'єднань .. хоча я думаю, що було б кілька тунелів, як tere є кілька точок входу і виходу.
barlop

Дякую. Ви праві. І раніше я не помітив опцію -S-s. Дізнався щось сьогодні. :)
Johnny Wong

багато ssh підручники згадують -L -R і -D. (-R - вислухайте в кінці sshhd, r емоція кінця, і вперед на ssh.exe кінця, або зворотного SSH тунель). І немає r Емоція / зворотна форма -D, хоча люди роблять це через ssh -D, щоб зробити тунель проксі-ssh, і ssh -R переслати до нього. Я не впевнений, що це можливо в одному ssh-D 1234-R ... але я бачив це зробити в двох окремих. ssh -D ... & lt; ENTER & gt; ssh -R ... & lt; ENTER & gt ;.
barlop

0

Думаю, ви більшість шляхів там, оскільки ви згадали про використання проксі SOCKS. С ssh, ви можете налаштувати свій локальний проксі-сервер SOCKS на вашому локальному комп'ютері, прокладений через ssh-з'єднання; напр. :

ssh -D 3128 user@remote.host.com

Потім потрібно повідомити веб-переглядачу, щоб він використовував цей локальний проксі-сервер для підключення до Інтернету. Для Firefox ці налаштування знаходяться в Налаштування & gt; & gt; Розширений & gt; & gt; Мережа & gt; & gt; Підключення . Потім можна встановити Ручна конфігурація проксі-сервера & gt; & gt; SOCKS Host до localhost і 3128.

Зверніть увагу, що це статичний, і вам потрібно буде оновити його при кожному підключенні / відключенні.

Крім того, ви сказали, що ваш віддалений сервер ....

... підключається до Інтернету за допомогою проксі-сервера LAN.

Я вважаю, що мережа, до якої ви підключаєтеся через 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 ... Сподіваюся, що це допомагає.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.