Я настраиваю VirtualBox с CentOS, чтобы я мог протестировать весь свой код и т. Д. В системе Linux вместо Windows, которую я использую для разработки.
Я только что получил работу SSH (я SSH на localhost: 2222, и порт перенаправляет его на порт виртуального бокса 22).
Он использует NAT, потому что по какой-то причине он отказывается запускаться с мостовым адаптером.
Я пытаюсь сделать то же самое с Apache, чтобы запустить и запустить веб-сервер.
Я перенаправил порт 8888 на локальном хосте на порт 80 в моем CentOS Virtualbox, но я не могу получить доступ ни к чему с помощью localhost: 8888 в моем браузере?
Apache тоже определенно работает:
ps -e | grep httpd 2108 ? 00:00:00 httpd 2110 ? 00:00:00 httpd 2111 ? 00:00:00 httpd 2112 ? 00:00:00 httpd 2113 ? 00:00:00 httpd 2114 ? 00:00:00 httpd 2115 ? 00:00:00 httpd 2116 ? 00:00:00 httpd 2117 ? 00:00:00 httpd
Iptables:
# Generated by iptables-save v1.4.7 on Fri Jan 27 18:26:36 2012 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [32:2278] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited -I INPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT -I OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT -I INPUT -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT -I OUTPUT -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT COMMIT # Completed on Fri Jan 27 18:26:36 2012
Я также остановил iptables, так что это не мешает. Я попытался подключиться через telnet к порту 80 с моей виртуальной машины CentOS, чтобы посмотреть, будет ли это работать, но ни 127.0.0.1, ни [vm ip] не работают для telneting на порт 80. Он попадает в connecting to [ip]
а затем говорит connection closed by foreign host
. Для строк прослушивания в моем httpd.conf он говорит listen 0.0.0.0:80
Выход netstat -tlnp | grep http
netstat -tlnp | grep http tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2032/httpd tcp 0 0 :::443 :::* LISTEN 2032/httpd
Когда я Nmap localhost, Я получил
[root@CentOS conf]# nmap localhost Starting Nmap 5.21 ( http://nmap.org ) at 2012-01-28 00:58 WST Nmap scan report for localhost (127.0.0.1) Host is up (0.0000090s latency). Hostname localhost resolves to 3 IPs. Only scanned 127.0.0.1 Not shown: 993 closed ports PORT STATE SERVICE 22/tcp open ssh 23/tcp open telnet 25/tcp open smtp 80/tcp open http 111/tcp open rpcbind 443/tcp open https 631/tcp open ipp
Вы скопировали и вставили правила iptables? Если да, то в нем есть ошибка:
_I OUTPUT -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
подчеркивание вместо дефиса.
В виртуальном боксе попробуйте изменить настройки сети на Bridge Adapter вместо NAT и выберите соответствующий интерфейс, который вы хотите использовать (проводной или беспроводной). Запустите CentOS, а затем еще раз проверьте свой сетевой адрес (запустите ifconfig).
Оттуда проверьте, можете ли вы теперь получить доступ к apache, используя новый адрес Ethernet.
Что касается ssh на centos, вы должны обязательно отредактировать sshd_config и раскомментировать следующее:
Port 22
PermitRootLogin No
Также создайте другого пользователя помимо root, а затем добавьте этого пользователя в sshd_config:
AllowUsers username
Сначала вы должны убедиться, что apache прослушивает интерфейс Ethernet (тот, что от виртуальной машины) или все адреса. Для этого запуска:
sudo netstat -tlnp|grep http
Если он не прослушивает внешний интерфейс (в отличие от петлевого), вам необходимо изменить директиву Listen в конфигурации apache и перезапустить apache (не перезагружать).