Intereting Posts
Как я могу получить только процессы предков данного процесса? Разрешить только шестнадцатеричное регулярное выражение Incrontab не выполняет команду URL Rewrite на debian не работает Перенаправление стереофонических звуков через моно канал Требуется минимальный дистрибутив linux, размер установки которого составляет менее 250 – 300 мб Совместимость драйверов между дистрибутивами Посмотрите, работает ли скрипт при использовании #! / Usr / bin / env Почему я не могу перейти в корзину из / var / tmp? Использование изображения в качестве фона в filebrowser Nemo для каталогов, которые не являются домашним каталогом сообщение «done» после того, как & -команда не отображается сразу же, но после действия пользователя. Зачем? Как проверить, является ли данный путь файлом или каталогом Удалить все до последнего «:» в терминале Установка и решение зависимостей в автономном режиме для старой версии пакета Сценарий Bash, который может протестировать конкретную библиотеку lib

Как подключиться к гостевой виртуальной машине из хост-системы?

У меня есть установка веб-сервера VM, и я установил и запустил Apache. VM имеет мостовой интерфейс сети и может быть отсканирован от хоста с использованием 192.168.0.2.

Однако, если я ввожу тот же IP-адрес в браузер на хост-машине, я ожидал увидеть страницу apache по умолчанию, сгенерированную на виртуальной машине, но вместо этого я не can't connect to 192.168.0.2 в браузере хост-компьютеров.

Я явно что-то пропустил. Кто-нибудь знает, что я пропустил или сделал неправильно?

Выход из VM netstat -tnlp

 tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 950/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1026/master tcp 0 0 :::22 :::* LISTEN 904/sshd tcp 0 0 ::1:25 :::* LISTEN 980/master 

Грубый рисунок того, что я думаю о сетевой активности / связности, будет выглядеть.

введите описание изображения здесь

Проблема №1 – Типы сетей VM

Существует 3 режима работы в сети:

  1. NAT
  2. Только хост
  3. Мостовое

Подробная информация о настройке

  • Этот вопрос AU Q & A под названием « В VirtualBox, как мне настроить виртуальные машины только для хоста, которые могут получить доступ к Интернету? », Показано, как сделать # 2.
  • Эта статья под названием « Как настроить гостевые дополнения и сеть VirtualBox » показывает, как сделать # 3.

Когда использовать каждый?

  • # 1 : для разработки Facebook / веб-приложений, которые находятся на других серверах
  • # 2 : Если вы хотите создать собственное приложение и протестировать его с хоста VirtualBox (а не только гостевой виртуальной машины)
  • # 3 : Если вы хотите создать приложение и протестировать его из других систем в локальной сети

Проблема № 2 – блокировка брандмауэра?

В зависимости от того, какой дистрибутив вы используете, брандмауэр может блокировать доступ вашего веб-браузера к вашему экземпляру Apache. Это имело бы смысл, если вы можете выполнить ping-систему, но не получить доступ к ней через порт 80, который является портом, который прослушивает Apache.

временно отключить его

В CentOS вы используете эту команду, чтобы отключить ее.

 $ /etc/init.d/iptables stop 

проверьте, что прослушивание Apache

Вы также можете подтвердить, что он прослушивает этот порт.

 $ netstat -antp | grep :80 | head -1 | column -t tcp 0 0 :::80 :::* LISTEN 3790/httpd 

отключить брандмауэр

Брандмауэр может быть подтвержден, что он широко открыт.

 $ 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 

Если это решит вашу проблему, вы можете надолго добавить правило, разрешающее трафик через TCP-порт 80.

добавление правила для TCP-порта 80

 $ /etc/init.d/iptables restart $ iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT $ /etc/init.d/iptables save 

ПРИМЕЧАНИЕ. Это приведет к тому, что правило будет сохраняться между перезагрузками.

брандмауэр принимает TCP-порт 80

Система, открывающая порт 80, будет выглядеть примерно так:

 $ 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 

Проблема №3 – прослушивание Apache?

В вышеупомянутом выпуске мы увидели, что Apache слушал, но иногда он неправильно настроен, так что он только прослушивает 1 IP-адрес или слушает другой сетевой интерфейс. Команда netstat может использоваться для двойной проверки этого, а также для просмотра файлов конфигурации Apache.

 $ netstat -anpt | grep :80 | column -t tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1750/httpd 

Это показывает, что Apache прослушивает все интерфейсы (IP 0.0.0.0).

Я не буду повторять то, что @ Lekensteyn ответ, который охватывает этот конкретный вопрос более подробно здесь.

Рекомендации

  • Глава 6. Виртуальные сети

На CentOS 7 firewalld заменил iptables как брандмауэр по умолчанию.

Мне пришлось использовать

 systemctl stop firewalld 

для приостановки брандмауэра для проверки соединения с хостом на CentOS VM.

Подробнее см. Здесь: https://stackoverflow.com/questions/24756240/how-can-i-use-iptables-on-centos-7

Возможно, ваша установка Apache настроена на прослушивание только на localhost. Вы можете убедиться, что, запустив в вашем гостю:

 $ netstat -tnl | grep :80 Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN tcp6 0 0 :::80 :::* LISTEN 

Если он говорит 0.0.0.0:80 , он прослушивает все интерфейсы. В вашем случае я ожидал бы 127.0.0.1:80 вместо этого. Чтобы решить эту проблему, отредактируйте конфигурацию Apache (где-нибудь в /etc/httpd/conf/ ) и измените:

 Listen 127.0.0.1:80 

чтобы:

 Listen 80 

Вы также можете использовать nmap для проверки доступных сервисов на вашем компьютере. Он должен выглядеть так:

 $ nmap 192.168.0.2 Starting Nmap 6.40 ( http://nmap.org ) at 2014-01-11 15:22 CET Nmap scan report for localhost (192.168.0.2) Host is up (0.0036s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http Nmap done: 1 IP address (1 host up) scanned in 0.21 seconds