標的:
パブリック ポートを 2 台のマシンのいずれにもリダイレクトできない状況 (ローカル ポリシー) で、2 つの異なる NAT の背後にある 2 台のマシン間で、可能な限り高速な TCP ベースのファイル転送を実行したいと考えています。
近似値:
これまでのところ、次のことが可能です。1) リレーとして機能する中央パブリック ノードを使用して VPN を設定する (OpenVPN)、2) リレーなしで両方のマシン間の直接リンクを取得するメッシュ VPN を設定する (tinc)。その後、VPN を使用して、サード パーティのファイル転送クライアント/サーバーを介してシームレスにデータ転送を実行できます (両方のマシンが同じ LAN 上にあるかのように)。
問題:
2 台のマシン間の回線は非常に不安定で、単一の TCP ストリームでは通常、利用可能な帯域幅のごく一部しか実現できません。さらに、TCP を TCP でカプセル化すると、余分なオーバーヘッドが発生し、不安定な回線では非効率であることが知られています。そのため、2 台のマシン間に直接 (リレーなし) かつネイティブ トラフィック リンク (VPN カプセル化なし) を確立したいと考えています。自然な選択は STUN フレームワークですが、パブリック STUN サーバーと対話して NAT トラバーサルを実現するには、アプリケーションをアドホック STUN ライブラリでコンパイルし、通常のソケットではなく STUN 固有のソケットに依存する必要があるという結論に達しました。これは基本的に、STUN 対応のクライアント/サーバー アプリケーションのすべての新しいセットを最初から作成する必要があることを意味します。
質問:
プロセスを簡素化するために、基本的に両方のマシンでデーモンとして実行される汎用 STUN クライアントを実装できるかどうか疑問に思っています。クライアントは、パブリック STUN サーバーに接続して、他のクライアントの情報を登録および照会します。また、ローカルの監視ポートからのすべての送信トラフィックを正しい IP/ポート (ユーザー構成 + STUN サーバー情報) にリダイレクトして、他のマシンに到達します。これにより、サードパーティのクライアント/サーバー アプリケーションは、通常の TCP ソケット (複数の場合もある) をシームレスに開き、他のマシンとの接続を確立できます (同じ LAN 上にあるかのように)。
答え1
あなたが試すことができますSoftEther VPN
- それ:
- かなり良い
NAT Traversal
。 - 複数の設定が可能
Listener Ports
。
これは、多くの作業を節約できる非常に優れたソフトウェアだと私は思います...