web-dev-qa-db-ja.com

プロキシのようにサーバーを介してHTTPをトンネルするSSHを作成できますか?

serverclientがあるとします。プロキシのように、clientからwebsiteからserverへの接続を作成する必要があります。

SSHトンネルを使用してこれを行うことは可能ですか、またはserverにプロキシサービスをインストールする必要がありますか?

33
Jakub Arnold

あなたはsshを使ってこれを行うことができます

ssh -L 80:remotehost:80 user@myserver

ローカルポート80からリモートホストポート80へのトンネルが作成されます。これは、myserverと同じである必要はありません。これを透過的にするには、hostsファイルにエントリを追加する必要があります。そうしないと、vhostsは機能しません。 SOCKSプロキシ接続が必要な場合は、次も使用できます。

ssh -D 5000 user@myserver

これにより、myhostを介してすべての要求をルーティングするlocalhostポート5000にSOCKSプロキシが作成されます。

43
Wienczny

はい、可能です。

ssh -D port user@Hostを実行し、ボックスをSOCKSプロキシとして使用するようにクライアントを設定します。

特にHTTPプロキシが必要な場合は、Proxychainsを使用して、以前のSOCKS経由でルーティングできます。

15
mr-euro

sshuttleはVPNのように機能しますが、SSH経由で機能します。

貧乏人のVPNとして機能する透過プロキシサーバー。 ssh経由で転送します。管理者は必要ありません。 LinuxおよびMacOSで動作します。 DNSトンネリングをサポートします。

https://github.com/sshuttle/sshuttle

6
Kasper Grubbe

PuTTYはこれもかなりうまくいきます。

SSHで、トンネルに移動します。下部で、ポートに8080を挿入し、宛先は黒のままにして、[動的]ラジオボタンを選択します。以上で、PuTTYを使用してサーバーに接続できます。

接続すると、ローカルホストのポート8080でプロキシサーバーが実行され、サーバーを介してすべての要求がプロキシされます。

次に、Webブラウザーを使用し、Host = localhostおよびport = 8080を設定してプロキシーをセットアップし、選択したSOCKSプロキシーを確認します。私はいつもこれを行っているので、Firefoxを使用している場合は、ワンクリックでプロキシをオン/オフにするため、FoxyProxyプラグインをインストールしてください。

注意:デフォルトでは、DNSリクエストはプロキシされないことに注意してください。そのため、プロキシ経由でアクセスするWebサイトは引き続きログに記録されます(これらのログが記録されている場合)。また、FirefoxがDNSリクエストをプロキシするように設定することもできます。デフォルトではそれを行いません。

5
J Sidhu

プロキシーがコンピューターを実行できるようにして、他のクライアントがあなたに接続できるようにするには、-gオプションが必要です。したがって、たとえば、fooという名前のサーバーでこれを実行します。

ssh -g -ND 9191 root@remotehost

次に、クライアントのブラウザーでプロキシーを設定して、サーバーfooおよびポート9191をSOCKSプロキシーに使用できます。クライアントは自分のリクエストもfooを送信し、次にfooがsshを介してリクエストをリモートホストに転送します。したがって、インターネットでは、リモートホストを使用しているように見えます。

DNS要求もFirefoxで転送する場合は、Firefoxのabout:configを編集し、network.proxy.socks_remote_dnsをtrueに設定します。

2
Kyle Brandt

あなたはSSHUTTLEを使用することができます、ここにそれを使用する方法に関するチュートリアルがあります、

https://etherarp.net/sshuttle-a-vpn-for-the-lazy/

サービスとして機能するように設定する方法のチュートリアル

https://medium.com/@mike.reider/using-sshuttle-as-a-service-bec2684a65fe

0
perfecto25