GNU/Linux >> Linux の 問題 >  >> Ubuntu

NetstatでApacheが実行されているのを見ませんか?

Apacheで遊んでいるだけで、動作するようになりました。つまり、http://127.0.0.1にアクセスしてサーバーに接続できます。 およびhttp://192.168.1.5 IPv6を実行していません

しかし、これはnetstatの結果です

$ sudo service apache2 status
 * apache2 is running
$ netstat -an | grep :80
tcp6       0      0 :::80                   :::*                    LISTEN

$ wget 127.0.0.1
--2014-06-26 01:32:15--  http://127.0.0.1/
Connecting to 127.0.0.1:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 11510 (11K) [text/html]
Saving to: ‘index.html’

100%[=====================================================================================================>] 11,510      --.-K/s   in 0s      

2014-06-26 01:32:15 (161 MB/s) - ‘index.html’ saved [11510/11510]

私はそれが明らかにする通常のTCPでリッスンするのを見ることを期待していました!?

編集:

$ netstat -a | grep LISTEN
tcp        0      0 localhost:ipp           *:*                     LISTEN     
tcp        0      0 localhost:mysql         *:*                     LISTEN     
tcp6       0      0 ip6-localhost:ipp       [::]:*                  LISTEN     
tcp6       0      0 [::]:https              [::]:*                  LISTEN     
tcp6       0      0 [::]:http               [::]:*                  LISTEN     

Edit2:
なぜ反対票を投じるのですか?何が欠けているのでしょうか?

承認された回答:

TL; DR

Apacheはします netstatに表示されます 出力、そしてそれはです ランニング。そのため、wget 呼び出しは機能します。ただし、IPv4アドレスではなくIPv6アドレスにバインドされます。アドレスマッピングは、必要に応じて変換を処理します。

ドキュメントを探す

ここには明らかにいくつかのIPv6-IPv4フォールバックメカニズムがあります。実際のところ、ローカルネットワークではまだIPv6を使用していません:

$ netstat -tunla | grep LISTEN | grep 80
tcp6       0      0 :::80                   :::*                    LISTEN

マシンをどのようにアドレス指定しても、最終的には同じサービスとポートであることに注意することが重要です。残りは主にブラウザとDNS解決サービス次第です。ただし、Apacheがこれを処理する方法の詳細については、ドキュメントを参照してください:

Apache管理者にとって複雑な要因の1つは、IPv6ソケットがIPv4接続とIPv6接続の両方を処理できるかどうかです。 IPv6ソケットを使用したIPv4接続の処理では、IPv4にマップされたIPv6アドレスを使用します。これは、ほとんどのプラットフォームでデフォルトで許可されていますが、FreeBSD、NetBSD、およびOpenBSDでは、これらのプラットフォームのシステム全体のポリシーに一致させるためにデフォルトで許可されていません。デフォルトで許可されていないシステムでは、特別なconfigureパラメーターによってApacheのこの動作が変更される可能性があります。

基本的に、これは、クロスプラットフォームの互換性とソケット処理に関連するほとんどの問題を回避する方法で、IPv4とIPv6の両方のソケットを処理することに関するものです。ご覧のとおり、UbuntuなどのLinuxプラットフォームでは、この問題はIPv4にマップされたIPv6アドレスを使用して解決されます。ドキュメントには次のようにも記載されています:

プラットフォームとAPRがサポートするものに関係なく、ApacheでIPv4接続のみを処理する場合は、すべてのListenディレクティブでIPv4アドレスを指定します。

これはports.confでこのようなものを与えるでしょう ファイル:

Listen 0.0.0.0:80 # Or...
Listen 127.0.0.1:80 # Or...
Listen 192.0.2.1:80

次のnetstatのいずれかになります 出力…

$ netstat -tunla | grep LISTEN | grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN 
$ netstat -tunla | grep LISTEN | grep 80
tcp        0      127.0.0.1:80              127.0.0.1:80            LISTEN
$ netstat -tunla | grep LISTEN | grep 80
tcp        0      192.0.2.1:80              192.0.2.1:80            LISTEN 

美しいが、IPv6に対応していないリスナー。上記の設定は通常、/etc/apache2/ports.confで設定されます。 (または直接apache2.conf 古いバージョンの場合)。デフォルト値はListen 80です。 、自動を実行します バインディング、つまり、ドキュメントに記載されているIPv6仕様に準拠しています。

関連:GnomeでKDEアプリケーションを実行することの意味は?
Ubuntu
  1. Apacheを再起動する方法は?

  2. 更新されたパッケージのバージョン?

  3. ポート 80 で実行中のプロセスを強制終了する

  1. Apache/Mysqlが実行されていません。間違い?

  2. Ubuntu14.04にApache2.2.22をインストールしますか?

  3. Apacheを再起動します

  1. スレッドが実行されている CPU コアを確認するにはどうすればよいですか?

  2. 別のユーザーとして Apache を実行する

  3. netstat -s の代替