Juno Proxy Server ってのを作ってみた

普段、Proxomitron を使ってる。便利ではあるんだけど、古いソフトということもあって次のような問題があったりする。

Content-Type が 32 ビット
4GiB 以上のファイルをダウンロードしようとすると、オーバーフローして途中で切れてしまう。
Transfer-Encoding: chunked なリクエストに対応していない
そのせいで Subversion 1.8 が使えない。

作者も亡くなってて開発も止まっちゃってるので、自分で作っちゃうことにした。

で、だいたい動くような感じになったので、1 つの区切りとして公開することにした。

何ができる?

まず、Proxomitron を置き換えることが目標なので、HTTP プロキシとして次のような機能をつけた。

  • RFC 2616 にだいたい沿った HTTP プロキシ
  • CONNECT メソッドによるトンネリング
  • 外部プロクシの使用
    • 外部プロクシの Basic 認証
  • Apache の mod_headers に似たヘッダー フィルター

あと、以外に便利な SOCKS プロキシも組み込んだ。

  • SOCKS4 の CONNECT リクエスト
  • SOCKS5 の CONNECT リクエスト (認証なし)

テストが甘いけど IPv6 にも対応できてると思う。

その他

まだベータ版なクオリティなのと、ドキュメントも無いのであんまりおすすめはしない。