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