Kết nối bị từ chối


20

Tôi có một máy chủ Apache đang chạy trên một máy chủ:

[root@te-srv2 ~]# ps -ecf|grep httpd
root       698 32047 TS   19 10:45 pts/24   00:00:00 grep httpd
root     32081     1 TS   19 10:16 ?        00:00:00 /usr/sbin/httpd
apache   32083 32081 TS   19 10:16 ?        00:00:00 /usr/sbin/httpd
apache   32084 32081 TS   19 10:16 ?        00:00:00 /usr/sbin/httpd
....

Tuy nhiên, khi tôi cố gắng kết nối với máy chủ cục bộ, tôi nhận được "Kết nối bị từ chối":

[root@te-srv2 ~]# wget http://127.0.0.1
--2014-02-24 10:46:16--  http://127.0.0.1/
Connecting to 127.0.0.1:80... failed: Connection refused.

Điều tương tự xảy ra khi tôi cố gắng kết nối với địa chỉ IP cục bộ:

[root@te-srv2 ~]# wget http://132.70.6.157
--2014-02-24 10:46:40--  http://132.70.6.157/
Connecting to 132.70.6.157:80... failed: Connection refused.

Mặt khác, khi tôi thử tương tự từ một máy tính khác trong cùng mạng, tôi gặp một lỗi khác "Không có tuyến đến máy chủ":

[erelsgl@erel-biu ~]$ wget http://132.70.6.157
--2014-02-24 10:49:11--  http://132.70.6.157/
Connecting to 132.70.6.157:80... failed: No route to host.

Tại sao tôi nhận được những lỗi này? Và tôi nên làm gì để có thể kết nối với máy chủ http từ cả máy tính và các máy tính khác trong mạng?

CẬP NHẬT: Dựa trên các ý kiến ​​và câu trả lời, đây là một số thông tin khác:

[root@te-srv2 ~]# traceroute 132.70.6.157
traceroute to 132.70.6.157 (132.70.6.157), 30 hops max, 60 byte packets
 1  te-srv2 (132.70.6.157)  0.082 ms  0.007 ms  0.005 ms

[erelsgl@erel-biu ~]$ traceroute 132.70.6.157
traceroute to 132.70.6.157 (132.70.6.157), 30 hops max, 60 byte packets
 1  te-srv2 (132.70.6.157)  0.446 ms !X  0.431 ms !X  0.420 ms !X

[root@te-srv2 ~]# netstat -lnp|grep http
tcp        0      0 :::443                      :::*                        LISTEN      5756/httpd          

Bạn có thể traceroute 132.70.6.157từ cả hai máy chủ và so sánh đầu ra?
Werner Henze

1
443 là cổng SSL (https). Kiểm tra cấu hình của bạn để đảm bảo bạn nghe cổng http 80.
Mikpa

Câu trả lời:


13

Hiển thị đầu ra của netstat -lnp, để chúng ta có thể xem các quá trình đang thực sự lắng nghe cổng nào trên máy chủ và địa chỉ IP nào chúng bị ràng buộc.

Về máy tính thứ hai, kết nối mạng của nó có vẻ bị hỏng. netstat -rnsẽ cung cấp một số cái nhìn sâu sắc về vấn đề đó.

Để đưa ra lời khuyên tốt hơn, cần có thêm thông tin chi tiết về cấu hình mạng chung và cấu hình IP trên cả hai máy tính.

Biên tập:

Bạn phải thay đổi cấu hình Apache của mình để nó là máy chủ HTTP, không phải máy chủ SSL. Các tệp cấu hình được đặt bên dưới / etc / apache2 hầu hết thời gian.

Cấu hình IP và thông tin cấu hình mạng vẫn cần thiết để phân tích vấn đề khác. Thông tin theo dõi không tiết lộ bất cứ điều gì.


Thật vậy, không có quá trình nghe cổng 80! Máy chủ Apache lắng nghe trên cổng 443. Nhưng tại sao lại như vậy?
Erel Segal-Halevi

@ErelSegalHalevi: thông thường, 80 là HTTP, 443 là HTTPS (trừ khi bạn thay đổi các cổng mặc định đó). Vì vậy, có lẽ ứng dụng chỉ mong đợi HTTPS?
Olivier Dulac

Nhờ netstat, chúng tôi phát hiện ra rằng đây thực sự là một vấn đề cấu hình trong Apache.
Erel Segal-Halevi

26

"Kết nối bị từ chối" có nghĩa là máy đích đã chủ động từ chối kết nối. Với cổng 80 là bối cảnh, một trong những điều sau đây có thể là lý do:

  • Không có gì đang nghe trên 127.0.0.1:80 và 132,70.6.157:80
  • Không có gì nghe trên *: 80
  • Tường lửa đang chặn kết nối với RE DỰ ÁN

Vì vậy, hãy kiểm tra cấu hình Apache và iptables của bạn.

"Không có tuyến đường đến máy chủ" đề cập đến một vấn đề mạng. Nó không phải là một trả lời từ máy mục tiêu.


một vấn đề mạng? vậy làm thế nào để cùng một tên miền trả về "kết nối bị từ chối" cho một và "không có tuyến đường đến máy chủ" cho một cổng khác, trên cùng một tên miền?
phil294

Có thể tường lửa hoặc proxy của bạn đang chặn cổng khác vì vậy đó là lý do mạng gặp sự cố?
croraf

3

Tôi tìm thấy bài đăng này mô tả sự cố mà tôi gặp phải khi cố gắng thiết lập một trang http đơn giản bằng cách sử dụng nodejs trên nút tính toán Đám mây Công cộng.

Lệnh này đã lừa tôi:

iptables -F

Lệnh này xóa tức là xóa các quy tắc tường lửa được thiết lập bên trong hệ thống Linux.

Lưu ý: Vì tôi sử dụng tường lửa phân tán là một phần của VCN Đám mây Công cộng, tôi thực sự không sử dụng tường lửa của HĐH. Trong trường hợp bạn không có tường lửa bên ngoài, hãy đảm bảo thêm quy tắc tường lửa trong iptables.


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.