Nmapでいくつかのテストを行うために、ルーターでポート転送を有効にしました。ポート4245の内部IPアドレス10.0.0.10がポート4245のパブリックIPアドレスに送信されています。x.x.x.x:4245
でこれにアクセスできます
ただし、Nmapはポート4245が閉じていると報告しています。確実に、ポート番号を指定し、ホスト検出を無効にしています。これを両方とも試しましたTCP =とUDP。私が試したコマンドはSudo nmap -sS -Pn -p 4245 x.x.x.x
とSudo nmap -sU -Pn -p 4245 x.x.x.x
です
これらの結果はどちらも、ポート4245が閉じていることを示しています。
注:x.x.x.x
は私のパブリックIPアドレスです。
正解です。下記のTL; DRを参照してください!
Nmap問題ではなく、ポート転送の問題だと思います。ローカルネットワークからスキャンしていると思います(そうでない場合は無視してください)。
非常に単純な理由で、ポート転送はローカルネットワークからは機能しないことがよくあります。これがあなたのネットワークだとしましょう:
(A)--+
| ( )
|---(Rpr--R--Rpu)---( Internet )---(X)
| ( )
(B)--+
AとBはローカルネットワークの2台のコンピューターで、どちらもプライベートIPアドレスを持ち、Rはルーター(NATとポート転送を行う)で、1つのパブリックアドレス(Rpu)と1つのプライベート(Rpr)LAN上のXはインターネット上のコンピューターであり、パブリックアドレスを持っています。
Rでポート転送を構成して、Rpu:4245(つまり、IPアドレスRpu、ポート4245)に到着するパケットがA:4245に転送されるようにしました。
XがRpu:4245にパケットを送信すると、Rに到着し、宛先アドレスがA:4245に変換されてAにルーティングされます。Aが応答すると、A:4245からXにパケットが送信されます。このパケットは送信されます宛先がLANの外にあり、Rがゲートウェイであるため、Rへ。 Rは送信元をA:4245からRpu:4245に変更し、パケットをルーティングします。パケットは、Rpu:4245からXへのパケットとしてXに到着し、すべて問題ありません。
BがRpu:4245にパケットを送信すると、Rに送信されます(RpuはLANの外にあり、Rはルーターであるため)。とにかく、Rがポート転送を行い、宛先をA:4245に設定し、パケット(BからA:4245)をAにルーティングするとします。Aが応答すると、A:4245からBにパケットを送信します。 BはLAN上にあるため、パケットはRには送信されず、直接Bに送信されます。パケットは、A:4245からBへのパケットとしてBに到着します。したがって、BからRpu:4245へのパケットへの応答として見ることができず、送信元アドレスが一致しません。
これは、Rが送信元アドレスをRpr(またはRpu、またはLAN外の任意のアドレス)に変更した場合にも機能します。その場合、AはRに応答を送信し、Rはアドレスを逆変換する可能性があるためです。場合。
TL; DR。 LANの外部にあるコンピューターからテストを実行します:nmap -sP4245 -p 4245 x.x.x.x
(-sP4245
指示Nmap)。 LANからは、プライベートアドレスをスキャンして(同じオプションで)ポートが開いていることを確認できますが、ポート転送設定はテストされていません。
NmapがTCP port a closed
を報告している場合、これは、サービスへの接続を開始しようとしたときに応答(RST)を受け取ったことを意味します(応答を受信しなかった場合) 、あなたはfiltered
の結果を得るでしょう、これは一般的に「何も返されなかったので何が起こっているのか分からない」ことを意味します。
通常、これはポートが開いているが、何も実行されていない(または受信した要求に応答する何も実行されていない)場合に発生します。
あなたの問題についてのいくつかの考え
1)どこからポートスキャンを行いますか?通常、ネットワークの内部から外部IPアドレスをスキャンしようとはしませんが、NATは混乱する可能性があります。
2)内部ネットワークから内部IPアドレス(10.0.0.10)をスキャンしようとすると、どのような結果になりますか?そのポートでオープンレスポンスを受け取りますか?