かなり単純な SOCKS4/5 プロキシを .Net で作成しました。次のことを行います。
- TcpListener()ポートで を開きます
- TcpClient()着信接続を処理するためにa を起動します
- 初期ヘッダー/リクエスト内容の解析/処理
- TcpClient()リモート ホストに対応する を開きます
- 2 つの接続間でデータをエコーします。
ほとんどの場合 (Web ブラウジングなど) は問題なく動作するようです。ただし、プロキシ経由で OpenVPN を実行しようとすると、奇妙なエラーが発生します (ピアからのカプセル化されたパケット長が正しくありません)。
私の質問 - ソックス プロキシを作成するのに適切な TcpClient を使用していますか? それとも、基本的にもっと低レベルのことをする必要がありますか?