web-dev-qa-db-ja.com

ソックスではなくssh経由のhttpプロキシ

質問は簡単ですが、答えはそうではありません:

ssh -D 8080 user@Host

または

ssh -gCNf -D 8080 user@Host

または

wathever with -D #

SOCKSをサポートしていない組み込みデバイスで、http_proxy変数で使用できる一種のプロキシが必要です。

私は何をすべきか?

30
behrooz

方法1: SOCKSアップストリームの使用をサポートするHTTPプロキシを使用します。 PolipoまたはPrivoxy。

最初にいつものようにSSHで-Dトンネルを確立してから、SSHトンネルを使用するようにHTTPプロキシを構成します– Polipo構成の例:

proxyAddress = "::1"
proxyPort = 8118
socksParentProxy = "localhost:8080"
socksProxyType = socks5

最後に、http_proxy=localhost:8118を使用してアプリにPolipoを指定します。

方法2:すべての接続を透過的にプロキシするtorsocksラッパー(または古いtsocks)内でプログラムを実行します。 Torで使用するためのものでしたが、ssh -Dを含むすべてのSOCKSサーバーで動作します。

方法3:サーバーにHTTPプロキシをセットアップしssh -Lを使用してアクセスします。

33
user1686

すべての-DはSOCKSサーバーになります。クライアントがSOCKSを処理できない場合は、-Dを忘れてください。

リモートホストでHTTPプロキシを実行し、-Lで転送する必要があります。

ssh -f -N -n -L8080:127.0.0.1:8080 Host
18
ceving

SSH経由でHTTPプロキシを使用したいのと同じ問題があります。多くのアプリケーションはHTTPプロキシのみをサポートしており、HTTPプロキシはコマンドライン環境で簡単に使用できます。

いくつかのページを検索しましたが、これを行うための直接的な方法(Polipo、Privoxy、またはtsocksと連鎖させることができます)が見つかりません...

数日後、SSHを介した単純なGolangバージョンのHTTPプロキシを完成させました。自由に遊んでみてください mallory

現在、RSAキー($ HOME/.ssh/id_rsaにあります)とパスワード認証のみをサポートしています。

HostはSSHサーバーのアドレス、port22管理者によって変更されていない場合。サーバー側は、構成がゼロの旧友sshdです。

mallory -engine=ssh -remote=ssh://Host:port

またはユーザー名user

mallory -engine=ssh -remote=ssh://user@Host:port

またはユーザー名userとパスワード1234

mallory -engine=ssh -remote=ssh://user:1234@Host:port

接続後、HTTPプロキシはlocalhost:1315で機能します。

7
justmao945
ssh -L 8080:localhost:12345 user@Host

これにより、ローカルマシンのポート8080が開き、すべてのデータがリモートマシンから見てlocalhostのポート12345に転送されます。

4
lesmana

リモートホストでPrivoxyを実行し、次にSSH経由で-Lオプションを使用してPrivoxyに接続します。

-L [bind_address:] port:Host:hostport 
ローカル(クライアント)ホスト上の特定のポートを、特定のホストおよび特定のホスト上のポートに転送することを指定します。リモート側。これは、ローカル側のポートをリッスンするソケットを割り当てることで機能します。
オプションで、指定されたbind_addressにバインドされます。このポートに接続が行われるたびに、接続はセキュアチャネルを介して転送されます
。リモートマシンからホストポート
ホストポートに接続されます。

manpage source

2
anonymous

コルクスクリュー(GPL)も使用できます

以下を.ssh/configに追加してください

Host=RemoteServerIP or Name
User=UserLoginName
Port=PortNumber
ProxCommand=/usr/bin/corkscrew Proxy.Adress PortNumber %h %p
1
aurelien