Đừng thấy apache chạy trong netstat


10

Tôi chỉ chơi với apache và tôi đã làm cho nó hoạt động, đó là tôi có thể kết nối với máy chủ bằng cách duyệt đến http://127.0.0.1http://192.168.1.5tôi KHÔNG chạy IPv6

Tuy nhiên, đây là kết quả của 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]

Tôi đã mong đợi để xem nó nghe trên một TCP thông thường mà nó rõ ràng làm gì!?

Biên tập:

$ 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: Tại sao bỏ phiếu xuống? Những gì tôi thiếu có thể ai đó xây dựng?


thử netstat -a | grep LISTEN và đăng đầu ra
Lety

Đăng kết quả
meccooll

Đã thử netstat -pchưa?
muru

hai dòng cuối cùng được gọi là apache đang lắng nghe trên cổng 80 và 443. hãy thử gợi ý muru để xem tiến trình / pid.
Lety

@Letizia đúng nhưng nó nói tcp6 trong cột đầu tiên và :: cho ip là IPv6, nhưng tôi đang kết nối với nó trên IPv4 ???
meccooll

Câu trả lời:


17

TL; DR

Apache không xuất hiện trong bạn netstatđầu ra, và nó đang chạy. Đó là lý do tại sao wgetcuộc gọi của bạn hoạt động. Tuy nhiên, nó bị ràng buộc với địa chỉ IPv6 của bạn thay vì địa chỉ IPv4 của bạn. Ánh xạ địa chỉ xử lý bản dịch khi cần thiết.

Đi tìm tài liệu

Rõ ràng có một số cơ chế dự phòng IPv6-IPv4 ở đây. Thực tế, tôi chưa sử dụng IPv6 trên mạng cục bộ của mình:

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

Điều quan trọng cần lưu ý là cho dù bạn xử lý máy như thế nào, cuối cùng thì nó vẫn là dịch vụ và cổng. Phần còn lại chủ yếu phụ thuộc vào trình duyệt và dịch vụ phân giải DNS của bạn. Tuy nhiên, để biết thêm thông tin về cách Apache xử lý việc này, bạn có thể muốn xem tài liệu của họ :

Một yếu tố phức tạp đối với các quản trị viên Apache là liệu một ổ cắm IPv6 có thể xử lý cả kết nối IPv4 và kết nối IPv6 hay không. Xử lý các kết nối IPv4 với ổ cắm IPv6 sử dụng các địa chỉ IPv6 được ánh xạ IPv4, được mặc định cho phép trên hầu hết các nền tảng, nhưng không được phép mặc định trên FreeBSD, NetBSD và OpenBSD, để phù hợp với chính sách toàn hệ thống trên các nền tảng đó. Trên các hệ thống không được phép theo mặc định, một tham số cấu hình đặc biệt có thể thay đổi hành vi này cho Apache.

Về cơ bản, đây là về việc xử lý cả ổ cắm IPv4 và IPv6 theo cách sẽ tránh được hầu hết các vấn đề liên quan đến khả năng tương thích đa nền tảng và xử lý ổ cắm. Như bạn có thể đọc, trên các nền tảng Linux như Ubuntu, vấn đề này được giải quyết bằng cách sử dụng các địa chỉ IPv6 được ánh xạ IPv4 . Các tài liệu cũng nêu:

Nếu bạn muốn Apache chỉ xử lý các kết nối IPv4, bất kể nền tảng và APR của bạn sẽ hỗ trợ gì, hãy chỉ định địa chỉ IPv4 trên tất cả các lệnh Nghe.

Mà sẽ cung cấp một cái gì đó như thế này trong ports.conftập tin:

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

Kết quả là một trong những netstatkết quả đầu ra sau đây ...

$ 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 

Một trình nghe đẹp, nhưng chưa sẵn sàng, IPv6. Cài đặt ở trên thường được đặt trong /etc/apache2/ports.conf(hoặc trực tiếp trong apache2.confcác phiên bản cũ hơn). Giá trị mặc định là Listen 80, thực hiện liên kết tự động , nghĩa là tuân thủ các thông số kỹ thuật IPv6 được đưa ra trong tài liệu.


1
Tôi không biết về ánh xạ địa chỉ nên tôi phải coi chừng các cổng mở trên cả IPv6 và IPv4.
meccooll

đã tham gia "Askubfox" để nâng cao câu hỏi và câu trả lời này !!!
Prem
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.