2016-11-19 3 views
3

インターネット上で送信する前に、ローカル(トランスペアレント)プロキシサーバーにLAN上の一部の送信TCPトラフィック(最終的にUDPも同様)を転送します。パケットが正しくforwaredされているようです、私はWiresharkのSYNを見ることができます。Winsock/BSDソケット - ローカルIPと異なる宛先IPを持つTCP接続を受け入れる

問題は、ポートXにバインドされたaccept()が、宛先ポートXとの接続を受け入れず、プロキシサーバー自身のIPとは異なる宛先IPが予想されていたことです。

WinsockまたはLinuxソケットでこれを回避する方法はありますか? accept()やそれに類するものはどのようにして達成できますか?

答えて

3

Linuxソケットには、オプションIP_TRANSPARENTがあります。 LinuxのmanページのIPを参照してください:

IP_TRANSPARENTする(Linux 2.6.24以降)

このブール値のオプションが このソケットの透過プロキシを有効に設定します。このソケットオプションを使用すると、呼び出し元の アプリケーションはローカル以外のIPアドレスにバインドし、クライアントとして とローカルアドレス として外部アドレスを持つサーバーの両方を動作させることができます。 ...

私の知る限り、Windowsソケット用のオプションはありません。

関連する問題