web-dev-qa-db-ja.com

ポートが開いているかどうかを確認するにはどうすればよいですか?

Windows 7コンピューターにApacheサーバーをインストールしました。ブラウザのアドレス行に http:// localhost / と入力すると、デフォルトのindex.phpを表示できました。

ただし、自分のコンピューターのIPアドレスを入力しても(ローカルでは(同じコンピューターから)、グローバルではなく(インターネットに接続された別のコンピューターから))、このページを表示できません。

ポート80を開く必要があると言われました。( ここ の方法で)行いましたが、問題は解決しませんでした。

まず、開いているポートと開いていないポートを確認します。たとえば、開こうとする前にポート80が閉じられたかどうかはわかりません。開こうとしたのですが、開封されているかわかりません。

Pythonで書かれた非常にシンプルなWebサーバーを実行しようとしました。そのために私はポート81を使用し、それはうまくいきました!ポート81を開こうとはしませんでした。そのため、デフォルトでポートが開かれました。では、81がデフォルトで開かれているのに、なぜ80が開かれていないのでしょうか。それともそうですか?

追加情報:
1。私のhttpd.confファイルには「Listen 80」があります。
2。 このサイト は、コンピュータのポート80が開いていることを通知します。
3。 http:// myip:8http:// myip:81 を試した場合、異なる応答が返されます。最後のケースでは、ブラウザ(Chrome)がリンクが壊れていると書いています。最初のケースでは、次のようになります:Forbiddenこのサーバーにアクセスする権限がありません。
4。 IEは、「ウェブサイトはこのウェブページの表示を拒否しました」と書いています。

23
Roman

外部からポートをスポットチェックするだけの場合。このツールを使用してください:

http://www.yougetsignal.com/tools/open-ports/

特定のポートでIPアドレスへの接続を試み、外部に対して開いているか閉じているかを通知します。

地元の問題も? Windows 7のファイアウォールがあなたを遮断しているように聞こえます。このチュートリアルで例外を追加...

http://www.sevenforums.com/tutorials/542-windows-firewall-add-remove-exception.html

16
Urda

コマンドプロンプトからnetstat -a -nまたはss -a -nを実行すると、開いているすべてのネットワーク接続とマシンのリスニングポートが表示されます。 0.0.0.0:80は、すべてのIPアドレス(ローカルホストとパブリック/プライベートIPアドレス)のポート80でリッスンしていることを意味します。127.0.0.1:80は、ローカルホストでのみリッスンしていることを意味します。コマンドに-bを追加すると、そのポートを使用している実行可能ファイルが表示されます。 Windows 7のリソースモニターを使用して、[ネットワーク]タブの[リスニングポート]セクションで同じ情報を取得できます。

14
Greg Bray

別のサーバーから開いているかどうかを確認する場合は、telnet serverName 80とセッションが開くかどうかを確認します。そうでない場合は、サーバーが待機していないか、ポートがファイアウォールによってブロックされています。

それが開いてすぐに閉じる場合、少なくともWindows 2003では、ソフトウェア(Exchangeなど)はその特定のインターフェースまたはIPをリッスンするように構成されていない可能性がありますが、他のポートでリッスンしています。私はIISが愚かなのでこのように振る舞うのを見ました、Apacheはそうではないかもしれません。

5
Kyle Brandt

あなたが書いた:

最初のケースでは、次のエラーが発生します:Forbiddenこのサーバーにアクセスする権限がありません。

これは奇妙に聞こえるかもしれませんが、実際には開いていないポートでは問題があります(ただし、Apache構成で)。

その「禁止」メッセージは、Apacheサーバーから送信されます。それはあなたのウェブサーバーがインターネットからアクセス可能であることを意味します

すべてのホストにサービスを提供できるようにApacheを設定する必要があります-そうしないと、「禁止」ページが表示されます。 IIRC、Apacheは最初、ローカルコンピュータからのリクエストのみを許可するように設定されています。

Apache設定のどこかに、おそらくこのようなセクションがあります(実際のディレクトリは異なる場合があります)。

<Directory "/home/piskvor/www">
    Allow from 127.0.0.1
    Deny from all
(...)

どのコンピューターにもページを表示させたい場合は、Deny from allAllow from allに変更する必要があります。 詳細については、アクセスモジュールのドキュメントを参照してください

開いているポートを表示するには、nmapを使用する必要があります。それらにはWindowsバージョンがあります。 http://nmap.org/dist/nmap-5.21-setup.exe

Localhostからポート80が開いているのを確認するだけでは十分ではありません。他の場所から試すと、何か邪魔になる可能性があります。そのため、nmapをお勧めします

クライアントから次のように入力します:nmap ip-of-your-server

1
raerek

ローカルネットワークでこれをテストする場合は、ダウンロードしてください nmap ポートが外部からアクセスできる天気を確認したい場合は、スキャンを実行してください https://www.grc .com/x/ne.dll?bh0bkyd2

1
Jared

コマンドプロンプトから:

netstat -ano, look for 0.0.0.0:80 

...またはIP:80。これにより、マシンでポート80が開いているかどうかがわかります。ネットワークの外部からアクセスできるかどうかを確認したい場合は、ファイアウォールが設置されているかどうかを判断します。その場合、ポート80をWebサーバーに転送する必要があります。

0
Jason H

サーバーポートは、単一のIPアドレスまたは使用可能なすべてのIPアドレスにバインドできます。 Apacheインストールが127.0.0.1にのみバインドするように設定されているようですが、*にバインドするように設定する必要があります。 httpd.conf(Apacheのconfディレクトリ内)で、Listen localhost:80のような行を探し、Listen 80に変更します。

0
Andrew Aylett

Windowsを使用している場合は、 SysInternals TCPView を使用します。どのプログラムがどのポートを使用しているかがわかります。

Screenshto

0
Dio Phung

telnet <Host> <port> あなたの友だちです。世界中のほとんどすべてのコンピュータにインストールできるというメリットがあります。

質問を再度読んだ後の編集:

ここにいくつかの有用な診断のヒントがあります

  1. localhostを介してサイトにアクセスできるが、ネットワーク上の他のホストからのサイトローカルIP(192.168。*)を介してアクセスできない場合は、おそらくWindowsファイアウォールの問題です。

  2. 他のサイトローカルマシンからはサイトにアクセスできても、インターネットからパブリックIPにアクセスできない場合は、ルーター/ポート転送の構成の問題です。

0
jdizzle