ssh-туннелированный отказ прокси-сервера SOCKS на Firefox 47.0 / Kubuntu 16.04

У меня возникают трудности с подключением к веб-сайтам с использованием Firefox через туннелированный прокси SOCKS. SOCKS4 / SOCKS5 не имеет значения.

Я установил туннель с

ssh -D 1234 id@remotehost.example.com

, затем укажите прокси SOCKS Firefox to localhost на tcp / 1234.

Один из ключевых моментов, который следует отметить здесь, заключается в том, что туннель, который я настраиваю, находится на удаленном сервере, который я использовал для этой цели в течение многих лет. Я проксировал FF и другие браузеры через него для многих тысяч сеансов на десятках или более разных платформах во всех основных операционных системах. Как только я его работаю, он всегда работает плавно. Однако на этом конкретном экземпляре FF возникают странные и прерывистые проблемы.

Проблема в том, что FF, похоже, не хочет «устанавливать» соединение. Я набираю URL-адрес или нажимаю ссылку, и я сразу получаю «Невозможно подключиться» / «Firefox не может установить соединение с сервером в ...» Когда я говорю «мгновенно», я имею в виду, что это всплывает ко мне в небольшая часть секунды.

Итак, я нажал «Попробовать еще раз» или небольшую перезагрузку стрелки. И я делаю это снова и снова, и снова, как только могу. И после нескольких попыток - иногда 3-4, иногда целых 15-20 - я получаю связь, и все работает! Таким образом, соединение туннель / SOCKS доступно, просто FF отказывается использовать его, пока его не издеваются.

У меня есть несколько надстроек, но я отключил их выборочно без помощи и b) у меня есть (из курс) попробовал безопасный режим. Нет изменений.

Любые предложения?

1
задан 14 June 2016 в 16:53

1 ответ

Я должен использовать прокси каждый день на работе, чтобы подключиться к серверам с другой стороны брандмауэра. Я также использую Firefox, Chrome и Ubuntu 16.04.

EDIT: Я забыл одну часть этого. Мне пришлось добавить тайм-аут в конфигурационный файл ssh, или мой туннель истечет, и я потеряю свое соединение. Как только я добавил следующий материал, мое соединение остается открытым:

В ~/.ssh/config добавьте следующую информацию (если файл не существует, создайте его.). Это будет отправлять серверу на ваш туннель каждые 15 секунд.

Host *
ServerAliveInterval 15

Открываю туннельное соединение с помощью следующей команды:

ssh -CfND 1234 username@proxyhost

Затем в Firefox под , если файл не существует, создайте его. в конфигурации прокси-сервера вручную я заполняю только EDIT: с 127.0.0.1 и портом: 1234. Затем я убеждаюсь, что выбран SOCKS v5. Также обратите внимание, что у меня нет ничего в поле Без прокси для:.

Я могу без проблем подключиться к моим хостам.

Тогда для Chrome я запускаю командную строку, поэтому мне не нужно устанавливать настройки в Chrome каждый раз, когда я хочу пройти через прокси-сервер, а затем без прокси. Для подключения Chrome к прокси-серверу я запускаю следующую строку:

nohup google-chrome-stable --proxy-server="socks5://127.0.0.1:1234" & > /dev/null 2>&1
from ssh manpage

 -C      Requests compression of all data (including stdin, stdout,
         stderr, and data for forwarded X11, TCP and UNIX-domain connec‐
         tions).  The compression algorithm is the same used by gzip(1),
         and the “level” can be controlled by the CompressionLevel option
         for protocol version 1.  Compression is desirable on modem lines
         and other slow connections, but will only slow down things on
         fast networks.  The default value can be set on a host-by-host
         basis in the configuration files; see the Compression option.

 -f      Requests ssh to go to background just before command execution.
         This is useful if ssh is going to ask for passwords or
         passphrases, but the user wants it in the background.  This
         implies -n.  The recommended way to start X11 programs at a
         remote site is with something like ssh -f host xterm.

 -N      Do not execute a remote command.  This is useful for just for‐
         warding ports.

 -D [bind_address:]port
         Specifies a local “dynamic” application-level port forwarding.
         This works by allocating a socket to listen to port on the local
         side, optionally bound to the specified bind_address.  Whenever a
         connection is made to this port, the connection is forwarded over
         the secure channel, and the application protocol is then used to
         determine where to connect to from the remote machine.  Currently
         the SOCKS4 and SOCKS5 protocols are supported, and ssh will act
         as a SOCKS server.  Only root can forward privileged ports.
         Dynamic port forwardings can also be specified in the configura‐
         tion file.

Надеюсь, что это поможет!

3
ответ дан 23 May 2018 в 09:20
  • 1
    Я обогнал это, не отметив его как «Ответ только». Я попытался сделать сеанс ssh с -CfND, как вы сказали. Он работал в Chromium. Затем я уронил -f и -N. Он все еще работал. Затем я уронил -C. Он все еще работал. Затем я вернулся в Firefox, и теперь он работает, несмотря на то, что я не делал этого! Это может иметь какое-то отношение к тому факту, что при экспериментировании я фактически использовал порт 1234 (как в вашем примере). Это не имеет никакого смысла для меня; Я все еще изучаю это. Спасибо за вашу помощь. Рад узнать о командной строке для Chromium. – JD Baldwin 15 June 2016 в 03:13
  • 2
    @JDBaldwin Вы очень желанны! Удачи в ваших экспериментах. знак равно – Terrance 15 June 2016 в 03:15
  • 3
    Хорошо, я отмечаю ваш ответ как «Ответ». Дело не в том, что я решил свою проблему (я добавлю непонятный ответ на это), а потому, что это такое хорошее и ясное объяснение того, как это сделать. И если кто-то хочет получить незаинтересованную рекомендацию относительно поставщика оболочки, который предоставит эту и другие отличные услуги (на основе NetBSD) за 100 долларов США в год, отправьте мне отдельное примечание с запросом. – JD Baldwin 15 June 2016 в 03:53
  • 4
    @JDBaldwin Я обновил свой ответ до того, что я отложил, но вспомнил, когда я прочитал ваш ответ о тайм-аутах. – Terrance 21 June 2016 в 01:57
  • 5
    Я попробую дополнения к .ssh / config и экспериментирую с туннелированием по-старому. (Это объясняет, почему PuTTY работает, потому что у меня есть keepalives, установленный на 30 секунд.) Я обновлю свой ответ соответствующим образом. Спасибо. – JD Baldwin 22 June 2016 в 05:43

Другие вопросы по тегам:

Похожие вопросы: