Vấn đề # 1 - Các loại mạng VM
Có 3 chế độ kết nối mạng:
- NAT
- Chỉ lưu trữ
- Cầu nối
Chi tiết về việc thiết lập chúng
Khi nào nên sử dụng mỗi?
- # 1 : Để phát triển ứng dụng Facebook / web trên các máy chủ khác
- # 2 : Nếu bạn muốn xây dựng ứng dụng của riêng mình và kiểm tra nó từ máy chủ VirtualBox (không chỉ VM khách)
- # 3 : Nếu bạn muốn xây dựng một ứng dụng và thử nghiệm nó từ các hệ thống khác trên mạng LAN
Vấn đề # 2 - chặn tường lửa?
Tùy thuộc vào phân phối nào bạn đang sử dụng, tường lửa có thể chặn trình duyệt web của bạn truy cập vào phiên bản Apache của bạn. Điều này có nghĩa là bạn có thể ping hệ thống, nhưng không truy cập được qua cổng 80, đây là cổng mà Apache đang nghe.
tạm thời vô hiệu hóa nó
Trên CentOS, bạn sử dụng lệnh này để vô hiệu hóa nó.
$ /etc/init.d/iptables stop
kiểm tra xem Apache có nghe không
Bạn cũng có thể xác nhận rằng nó đang nghe trên cổng này.
$ netstat -antp | grep :80 | head -1 | column -t
tcp 0 0 :::80 :::* LISTEN 3790/httpd
xác nhận tắt tường lửa
Tường lửa có thể được xác nhận rằng nó rộng mở.
$ iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Nếu điều này giải quyết vấn đề của bạn thì bạn có thể thêm vĩnh viễn một quy tắc cho phép lưu lượng truy cập thông qua cổng TCP 80.
thêm quy tắc cho cổng TCP 80
$ /etc/init.d/iptables restart
$ iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ /etc/init.d/iptables save
GHI CHÚ: Điều này sẽ làm cho quy tắc tồn tại giữa các lần khởi động lại.
tường lửa chấp nhận cổng TCP 80
Một hệ thống có cổng 80 mở sẽ trông giống như thế này:
$ iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:http
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:https
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:8834
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT icmp -- anywhere anywhere
ACCEPT all -- anywhere anywhere
ACCEPT all -- anywhere anywhere
REJECT all -- anywhere anywhere reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Vấn đề # 3 - Nghe Apache?
Trong vấn đề trên, chúng tôi đã thấy rằng Apache đang lắng nghe, nhưng đôi khi nó được cấu hình sai để nó chỉ nghe trên 1 địa chỉ IP hoặc nó đang nghe trên một giao diện mạng khác. Lệnh netstat
có thể được sử dụng để kiểm tra lại điều này cũng như xem xét các tệp cấu hình Apache.
$ netstat -anpt | grep :80 | column -t
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1750/httpd
Điều này cho thấy Apache đang lắng nghe trên tất cả các giao diện (IP 0.0.0.0).
Tôi sẽ không nhắc lại những gì @ Lekensteyn câu trả lời của bao gồm vấn đề cụ thể này chi tiết hơn ở đây.
Người giới thiệu
:::80
, thì Apache chỉ lắng nghe các kết nối IPv6. Bạn đã thử kiểm traListen
chỉ thị của bạn ?