1

すべてのWebトラフィック(HTTP、HTTPS、DNS-他に何かありますか?)がローカルアプリケーションを経由してサーバーアプリケーションに送信され、そこからインターネットに送信されるようにします。これどうやってするの?

私は非同期TCPサーバーを作成し、SocketAsyncEventArgsを使用したC#でのソケット非同期プログラミングを知っています(私は1つのプロジェクトだけのマスターではありませんが、いくつかの基本を理解できると思います)。

4

2 に答える 2

1

これを行う唯一の方法は、Windowsネットワークドライバーを作成することです。ユーザーランドからこれを行うことはできません。これがVPNの仕組みです。

単一の接続でトンネルを開発できるユーザーランドトンネルがありますが、最初にそれを使用するようにユーザーがアプリケーションを構成する必要があるため、すべてのネットワークアクティビティを一方的にリダイレクトすることはできません。

あなたの質問から、あなたはWinsockの内部構造やカーネルネットワークドライバの作成にあまり精通していないと思います。したがって、今のところ、これは現在の能力レベルを上回っていると思います。

ただし、少し不純なアプローチに落ち着く場合は、SOCKSプロキシを簡単に実装できますが、これにはプロキシサーバーを使用するようにブラウザーを構成する必要があります-少なくともこの方法では、HTTPとHTTPSをトンネリングしますが、私はブラウザがDNSにSOCKSサーバーを使用しているかどうか、またはOSが提供するDNS機能を使用しているかどうかが不明です。

于 2012-11-07T23:24:48.370 に答える
0

@Daiが提案したように、SOCKSプロキシを使用します。トランスポート層の上で動作するため、SOCKSサーバーは、一般的なTCP/UDPで動作する任意のアプリケーションプロトコルを処理するように構成できます。

これは、HTTPだけでなく、すべてのトラフィックをマスクするためにTORが行うこととまったく同じです。

于 2012-11-08T00:22:32.557 に答える