Problema n. 1 - Tipi di rete VM
Esistono 3 modalità di rete:
- NAT
- Solo host
- Bridged
Dettagli su come configurarli
Quando usarli?
- # 1 : per lo sviluppo di app Web / Facebook che si trovano su altri server
- # 2 : se vuoi creare la tua app e testarla dall'host VirtualBox (non solo dalla VM guest)
- # 3 : se vuoi creare un'app e testarla da altri sistemi su LAN
Problema n. 2: blocco del firewall?
A seconda della distro in uso, il firewall potrebbe impedire al browser Web di accedere all'istanza di Apache. Ciò avrebbe senso dato che sei in grado di eseguire il ping del sistema, ma non accedervi tramite la porta 80, che è la porta su cui Apache è in ascolto.
disabilitandolo temporaneamente
Su CentOS si utilizza questo comando per disabilitarlo.
$ /etc/init.d/iptables stop
controlla che Apache stia ascoltando
Puoi anche confermare che è in ascolto su questa porta.
$ netstat -antp | grep :80 | head -1 | column -t
tcp 0 0 :::80 :::* LISTEN 3790/httpd
confermare che il firewall è disattivato
Il firewall può essere confermato che è completamente aperto.
$ 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
Se ciò risolve il problema, è possibile aggiungere in modo permanente una regola che consenta il traffico tramite la porta TCP 80.
aggiunta di una regola per la porta TCP 80
$ /etc/init.d/iptables restart
$ iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
$ /etc/init.d/iptables save
NOTA: Questo farà persistere la regola tra i riavvii.
il firewall accetta la porta TCP 80
Un sistema con la porta 80 aperta sarebbe simile a questo:
$ 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
Problema n. 3: ascolto Apache?
Nel problema precedente abbiamo visto che Apache era in ascolto, ma a volte è configurato in modo errato in modo che sia in ascolto solo su 1 indirizzo IP o che sia in ascolto su un'altra interfaccia di rete. Il comando netstat
può essere usato per ricontrollare questo e rivedere i file di configurazione di Apache.
$ netstat -anpt | grep :80 | column -t
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1750/httpd
Questo dimostra che Apache è in ascolto su tutte le interfacce (IP 0.0.0.0).
Non ripeterò quale sia la risposta di @ Lekensteyn che tratta questo particolare problema in modo più dettagliato qui.
Riferimenti
:::80
, Apache è in ascolto solo delle connessioni IPv6. Hai provato a controllare le tueListen
direttive?