回答:
sshを使用してこれを行うことができます
ssh -L 80:remotehost:80 user@myserver
ローカルポート80からリモートホストポート80へのトンネルができます。これはmyserverと同じである必要はありません。これを透過的にするには、hostsファイルにエントリを追加する必要があります。そうしないと、vhostは機能しません。SOCKSプロキシ接続が必要な場合は、次のものも使用できます。
ssh -D 5000 user@myserver
これにより、すべてのリクエストをmyserver経由でルーティングするSOCKSプロキシがlocalhostポート5000に作成されます。
ssh -L 81:remotehost:80 user@myserver
ローカルポート81がリモートで80であるかのように通信する場合により便利です。
Host myserver User user DynamicForward 5000
Puttyもこれをかなりうまく行います。
SSHの下で、トンネルに移動します。下部で、ポートに8080を配置し、宛先については、黒のままにして、「動的」ラジオボタンを選択します。これで、Puttyを使用してサーバーに接続できます。
接続すると、localhostのポート8080でプロキシサーバーが実行され、サーバーを介してすべての要求がプロキシされます。
次に、Webブラウザーを使用し、host = localhostおよびport = 8080を設定してプロキシを設定し、選択したSOCKSプロキシを確認します。私はこれを常に行うので、Firefoxを使用する場合は、FoxyProxyプラグインをインストールしてください。これにより、プロキシのオン/オフをワンクリックで行うことができます。
注意:デフォルトでは、DNSリクエストはプロキシされないことに注意してください。そのため、プロキシ経由でアクセスしたWebサイトはログに記録されます(このようなものをログに記録する場合)。DNSリクエストをプロキシするようにfirefoxを設定することもできますが、デフォルトではそれを行いません。
sshuttleはVPNのように動作しますが、SSH経由で動作します。
貧乏人のVPNとして機能する透過プロキシサーバー。sshで転送します。管理者は必要ありません。LinuxおよびMacOSで動作します。DNSトンネリングをサポートします。
プロキシでコンピューターを実行し、他のクライアントが接続できるようにするには、-gオプションが必要です。したがって、たとえば、fooという名前のサーバーでこれを実行します。
ssh -g -ND 9191 root@remotehost
その後、SOCKSプロキシにサーバーfooとポート9191を使用するように、クライアントのブラウザーでプロキシを設定できます。クライアントはfooもリクエストを送信し、fooはリクエストをssh経由でremotehostに転送します。したがって、インターネット上では、リモートホストを使用しているように見えます。
firefoxでDNSリクエストも転送したい場合は、firefoxのabout:configを編集し、network.proxy.socks_remote_dnsをtrueに設定します。
SSHUTTLEを使用できます。使用方法のチュートリアルはこちら、
https://etherarp.net/sshuttle-a-vpn-for-the-lazy/
サービスとして機能するように設定する方法を示したチュートリアル、
https://medium.com/@mike.reider/using-sshuttle-as-a-service-bec2684a65fe