1

アクセスできないルーター上の Web サーバーのポートをポート転送したいと考えています。UPNP が有効になっているとは思えません。

4

2 に答える 2

1

実際、できます(ちょっと)

少し複雑で、常に機能するわけではありませんが、機能の要点は次のとおりです。

与えられた:

パブリック IP 1.2.3.4 の RouterA

プライベート IP abcd を持つ PC1 (ルーター A の背後)

パブリック IP 5.6.7.8 の RouterB

プライベート IP efgh を持つ PC2 (ルーター B の背後)

さて、理想的な解決策(つまり、PATなし)が与えられました...

ステップ A:

任意のポート (この例では 10000) の PC1 から RouterB のパブリック IP (4.5.6.7) にメッセージを送信します。これにより、routerA の NAT と PAT に abcd:10000 -> 4.5.6.7:10000 が登録されます。RouterB はこのパケットを破棄します (要求されていないため、予想どおり)。

ステップ B: 同時に、PC2 からルーター A のパブリック IP (1.2.3.4) に、同じポート (10000) でパケットを連続して送信します。これにより、ルーター B の NAT および PAT に egfh:10000 -> 1.2.3.4:10000 が登録されます。

ステップ C:

さて、ここで魔法が起こります:

PC2 は常にパケットを RouterA に送信しているため、RouterB に応答が返されるように「穴」が開いたままになっています。PC1 が単一のパケットを RouterB に送信すると、RouterB には応答として表示されるため、PC2 に転送されます。PC2 がこの「応答」を受信したら、もう 1 つのパケットが送信されていることを確認し、連続したパケットの送信を停止します。この最後のパケットは、PC1 への「応答」として機能し、手順 A で作成された「穴」を通過します。これで、NAT トランスバーサルができました。「穴」を開いたままにするために、毎分または双方向に 1 つのパケットを送信するだけで済みます。

注: これはコネクションレスであるため、UDP でのみ機能します (ドロップされたパケットは問題ありません)。

現在、ほとんどすべてのルーターが PAT を使用しているため、ほとんどのルーターに「応答」するポートが +-10 (ieabcd:10000 -> 5.6.7.8:10010) のオフセットを行うことを「推測」する必要があります。

その範囲でいくつか試してみてください(応答が得られるまで-10から+10)

残りのルーターは PAT でランダムです。もしそうなら、あなたはめちゃくちゃです... 他の方向を試してください(つまり、他の方向の接続を開始します)。それが失敗した場合、接続できません...申し訳ありません)

于 2014-06-09T20:35:19.757 に答える