現在、python SOCKS4 サーバーで作業しています。このサーバーはうまく機能しますが、socatを使用してサーバーに接続すると問題なく動作します。他のツールでも問題なく動作します。その結果、wireshark は予想どおりにトラフィックを明らかにします。
ただし、firefox でサーバーに接続すると失敗します。ソックス サーバー (ポート 8080 にリストされている) は、リモート Web サイト (ここでは slashdot.org) とクライアント (ここでは firefox ブラウザー) への接続を確立しますが、ブラウザーはすぐに FIN/ACK を送信します。説明のために、青い線を参照してください。
欠けているピースが何であるかわかりません。ブラウザには特別な SOCKS4 実装がありますか?
[更新]私の言いたいことを明確にするために。ソケットをチェックするには、次のコードを検討してください。
...
r, w, e = select.select([remote,client],[],[])
for s in r:
try:
data = s.recv(1024)
logger.debug("len(data)=%d" % len(data))
...
これはlen(data)==0
、ブラウザが FIN/ACK を送信するとすぐに、ソケットが閉じられることを実際に意味しますよね? ブラウザが接続を終了する理由がわからないので、これは私を混乱させます。何か案は?