すべてのWebトラフィック(HTTP、HTTPS、DNS-他に何かありますか?)がローカルアプリケーションを経由してサーバーアプリケーションに送信され、そこからインターネットに送信されるようにします。これどうやってするの?
私は非同期TCPサーバーを作成し、SocketAsyncEventArgsを使用したC#でのソケット非同期プログラミングを知っています(私は1つのプロジェクトだけのマスターではありませんが、いくつかの基本を理解できると思います)。
これを行う唯一の方法は、Windowsネットワークドライバーを作成することです。ユーザーランドからこれを行うことはできません。これがVPNの仕組みです。
単一の接続でトンネルを開発できるユーザーランドトンネルがありますが、最初にそれを使用するようにユーザーがアプリケーションを構成する必要があるため、すべてのネットワークアクティビティを一方的にリダイレクトすることはできません。
あなたの質問から、あなたはWinsockの内部構造やカーネルネットワークドライバの作成にあまり精通していないと思います。したがって、今のところ、これは現在の能力レベルを上回っていると思います。
ただし、少し不純なアプローチに落ち着く場合は、SOCKSプロキシを簡単に実装できますが、これにはプロキシサーバーを使用するようにブラウザーを構成する必要があります-少なくともこの方法では、HTTPとHTTPSをトンネリングしますが、私はブラウザがDNSにSOCKSサーバーを使用しているかどうか、またはOSが提供するDNS機能を使用しているかどうかが不明です。
@Daiが提案したように、SOCKSプロキシを使用します。トランスポート層の上で動作するため、SOCKSサーバーは、一般的なTCP/UDPで動作する任意のアプリケーションプロトコルを処理するように構成できます。
これは、HTTPだけでなく、すべてのトラフィックをマスクするためにTORが行うこととまったく同じです。