web-dev-qa-db-ja.com

Firefox 47.0 / Kubuntu 16.04でのssh-tunneled SOCKSプロキシ接続拒否

トンネル化されたSOCKSプロキシ経由でFirefoxを使用してWebサイトに接続するのが困難です。 SOCKS4/SOCKS5は違いはありません。

トンネルをセットアップしました

ssh -D 1234 [email protected]

次に、FirefoxのSOCKSプロキシがtcp/1234のlocalhostを指すようにします。

ここで注意すべき重要な点は、私が設定しているトンネルは、長年この目的のために使用してきたリモートサーバー上にあるということです。私はすべての主要なOSで、数十以上の異なるプラットフォームで何千ものセッションのためにFFおよびその他のブラウザーをプロキシしました。一度動作させると、常にスムーズに動作します。ただし、FFのこの特定のインスタンスでは、奇妙で断続的な問題が発生します。

問題は、FFが接続の確立を「望んで」いないように見えることです。 URLを入力するか、リンクをクリックして、瞬時に「接続できません」/「Firefoxがサーバーへの接続を確立できません...」と言うと、「瞬時に」と言うと、これは、ほんの一瞬で私に戻ってくることを意味します。

それで、「Try again」または小さなリロード矢印を押しました。そして、私はそれを何度も何度も何度も繰り返します。そして、数回(3〜4回、時には15〜20回)試行した後、接続が確立され、すべてが機能します。そのため、トンネル/ SOCKS接続が利用可能になりますが、いじめられるまでFFは使用を拒否しているだけです。接続が確立されると、それ以降のリロードによって接続が失われることはありません。

いくつかのアドオンはありますが、a)助けを借りずに選択的に無効にしました。b)(もちろん)セーフモードを試しました。変更はありません。

助言がありますか?

3
JD Baldwin

残念ながら、この問題は断続的であり、トラブルシューティングの作業を混乱させています。 @Terranceが上で与えた答えは、答えとしてマークしましたが、実際には私にとって問題の解決策ではありません。それは動作するように見えた、そして実際にはしばらくの間動作した。その後、私は再び問題に遭遇しました。時々私のsshセッションを停止して再起動すると問題が解決します-しばらくの間-時々再起動しても違いはありません。

言及された提案 このスレッドは別の場所 -つまり、ブラウザのプロキシ設定で「localhost」ではなく127.0.0.1を指定することも同様に違いですが、最終的には効果がありませんでした。これは、これがブラウザの接続が機能する場合と機能しない場合の重大な違いだと以前答えましたが、これもまた時期尚早でした。トンネルを介してWebサイトに接続するブラウザの機能に断続的な問題が発生し続けました。

この問題と、下記で説明する解決策について十分な経験を積んだので、OpenSSH自体に何らかの種類の短時間のバグがあるという結論に合理的に確信しています。ところで、私のバージョンは

OpenSSH_7.2p2 Ubuntu-4ubuntu1、OpenSSL 1.0.2g-fips 2016年3月1日

これは、a)問題がブラウザーに依存しないこと(Firefox、Chromium、およびw3mで検証済み)、およびb)代替sshクライアントを使用することで問題が確実に解決されたという事実に基づいています。

ソースをダウンロードし、PuTTYをビルドしてインストールしました( このリンク から)。注:PuTTYソースがヘッダーファイルを見つけられるように、仮想パッケージgtkgl-devを必ずインストールしてください。それから、私は過去に何度もWindowsで使っていたように設定しましたが、今では約2日間おやつに取り組んでいます。ゼロ障害。

これが修正であり、現在のOpenSSHにバグがあると確信しています。私はその効果について報告することに取り組んでいます。

上記の@Terrenceの回答はまだ非常に有用な読書ですが、私はこの質問の目的のために自分の回答をThe Answerとして選択しています。

0
JD Baldwin

ファイアウォールの反対側にあるサーバーに接続するには、職場で毎日プロキシを使用する必要があります。また、Firefox、ChromeおよびUbuntu 16.04も使用しています。


EDIT:この一部を忘れてしまいました。 ssh構成ファイルにタイムアウトを追加する必要があります。そうしないと、トンネルがタイムアウトして接続が失われます。次のものを追加すると、接続は開いたままになります。

~/.ssh/configに次の情報を追加します(ファイルが存在しない場合は作成します。)。これにより、15秒ごとにサーバーキープアライブがトンネルに送信されます。

Host *
ServerAliveInterval 15

次のコマンドでトンネル接続を開きます。

ssh -CfND 1234 username@proxyhost

次に、FirefoxのConnection Settings手動プロキシ設定に入力するのはのみですSOCKS Host:with 127.0.0.1 andPort:1234.その後、SOCKS v5が選択されています。 また、「プロキシなし:」ボックスには何もありません。

ホストに問題なく接続することができます。

enter image description here

次に、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.

お役に立てれば!

5
Terrance