2

それぞれがファイアウォールで保護された NAT の背後にある 2 つのクライアントに「hello」を送信しようとしていますが、成功しません。今のところ、UDP または TCP パンチングは問題ありません。

クライアント A は「hello p」を受信することを期待しています:

set -- $( wget -qO- http://www.pschmidt.it/screenshooter/ss3.php | awk '{print $1, $2}'); echo $1 $2 $3 $4; `nc -l -v $2 ` & sudo hping3 -2 -c 30 -s $2 -p $4 $3

クライアント B が hello p を送信:

set -- $( wget -qO- http://www.pschmidt.it/screenshooter/ss3.php | awk '{print $1, $2}'); echo $1 $2 $3 $4; sudo hping3 -2 -c 30 -s $2 -p $4 $3; echo "hello p" | nc -p $2 -u $3 $4

残念ながら何も受信されません。

http://www.brynosaurus.com/pub/net/p2pnat/に触発された実装

4

2 に答える 2

1

扱っている NAT のタイプを調査する必要があります。「対称」という用語は時代遅れです。scribd からオンラインで入手できる Practical JXTA II book から対応する章を読むことができます。

ピアのどちらも公開アドレスを持っていない場合、質問で説明した手法は機能しません。この問題の解決はより高度であり、常に可能であるとは限りません。

于 2011-08-19T02:45:59.933 に答える
1

では、どちらの NAT も制限されたコーン NATですか? 以前にその/リクエストソースに何も出なかったときに、ポートアクセスを拒否しますか?

正しいアドレスとポートを使用して、あるホストから別のホストにパケットを送信する必要があります。これにより、NAT は、応答ではなく要求であっても着信要求を受け入れるようになります。

例として:

PC1 - NAT1 - ネットワーク - NAT2 - PC2

PC1 は、ポート 10 で PC2 にアクセスしようとしています。

PC2 は、送信元ポート 10 (NAT1 によってブロックされている) を使用して PC1 に要求を送信します。PC1 は PC2 への要求をポート 10 に送信します。この要求はブロックされず、応答されます。

于 2010-12-10T02:09:22.310 に答える