web-dev-qa-db-ja.com

ポートはマシンAで開いていますが、マシンBからはNmap

ポート8080でリッスンしているソフトウェアを備えた仮想化CentOSマシンがあります。SELinuxをオフにして、すべてのiptablesをフラッシュしました(したがって、ルールは設定されていません)。 netstat -nap | grep 8080で、ポートが実際に開いていることを確認しました。 IPアドレスは192.168.1.3です。

他のマシンから、プログラムでそのポートに接続したいのですが、失敗します。 nmap -p 8080 192.168.1.3を実行すると、ポートが閉じていると表示されます。

Wiresharkで確認すると、接続しているコンピューターがSYNパケットを送信しているのに、応答しているコンピューター(IP 192.168.1.3)がSYN/RESETで応答して接続を中断し、SYNで応答しないことがわかります。/ACKし、送信を継続します。シーケンス番号は正しく、送信側のコンピューターは0を送信し、受信側のコンピューターは1を受信します。

奇妙なことに、他のポートはクライアントマシンからNmapで開いていると検出できますが、8080では検出できません。

何が問題なのですか?

[〜#〜]編集[〜#〜]

わかりました、今何を信じたらいいのかわかりません。これは私が発見したものです:
「サーバーマシン」で8080をリッスンしているポーグラム(そう呼びましょう)は、Java(サードパーティライブラリを使用)に組み込まれているカスタムメイドのWebサービスです。 EclipseLinkなど)。「サーバーマシン」でnmap localhostを実行すると、ポートが開いていることがわかります。「クライアントマシン」からnmap 192.168.1.3を実行すると、ポートが閉じていることがわかります(上記のとおり)。
そして新しい発見:私は単純なJavaアプリを作成しました。このアプリはServerSocketクラスを使用して8080でリッスンし、ポートは「クライアントマシン」から検出可能です。 、それはWebサービスアプリの問題ですか?Webサービスの実行時に「サーバーマシン」(自身をスキャンする場合、localhost)からポートを検出できるのに、「クライアントマシン」からは検出できないのはなぜですか?また、両方のマシンからポート8080を検出できるのはなぜですか? 8080でリッスンする単純なJavaアプリを実行していますか?

netstat -ntpl
tcp    0    0 ::ffff:127.0.0.1:8080    :::*    LISTEN 3481/Java



編集2
バカだ! ::ffff:127.0.0.1:8080は、プログラムがローカルホストからのみ到達可能であることを意味します。 :-D
すべての人から聞くようにどこを変更すればよいですか?

2
Rox

8080ポートが別の場所にバインドされている可能性がありますか?

ホストマシン上?

とにかく、ネットワーク構成、ブリッジ内の仮想マシンを表示しますか?

0
Korjavin Ivan

古いバージョンのcentosの場合は、「/ etc/hosts。{allow、deny}」に問題がある可能性がありますが、iptablesがある場合は、おそらくそれらを使用していません。それらのファイルが存在するかどうかを確認してください。

0
user1223780