Назад | Перейти на главную страницу

Экспедирование портов в Mountain Lion

Это ДОЛЖНО быть чем-то, что можно сделать. Я искал и нашел много ответов, которые утверждают, что делаю то, что я хочу, но я не могу собрать их воедино. Так...

Я запускаю виртуальную машину Linux под Mountain Lion. На виртуальной машине работает Apache. Мне нужно перенаправить весь трафик, который поступает на порт 80 хоста, на гостевой порт 80. Я могу получить доступ к веб-сайту виртуальной машины с хоста, используя: http://192.168.100.2/

Я также могу подключиться к серверу Apache Mountain Lion по умолчанию с других компьютеров в локальной сети, используя: http://10.0.42.22/

(Доказательство того, что порт 80 открыт на хосте. И да, я безрезультатно пытался отключить установку Apache в Mac OS)

Мне нужно, чтобы другие машины в сети могли подключиться к серверу, работающему под виртуальной машиной, по последнему адресу (http://10.0.42.22/).

Я пробовал ipfw с хоста:

ipfw add 100 forward 192.168.100.2,80 ip from any to any 80 in

После того, как я это сделаю, машины в локальной сети по таймауту пытаются связаться с http://10.0.42.22/ вместо достижения Mac OS «Работает!» screen, который сообщает мне, что "что-то" произошло, но, к сожалению, что-то не то, что пересылка гостю работает.

Я также пробовал добавить в /etc/pf.conf:

rdr on en1 inet proto tcp from any to any port 80 -> 192.168.100.2 port 80

С последующим:

pfctl -f /etc/pf.conf

В результате получается такой результат:

No ALTQ support in kernel ALTQ related functions disabled

То же самое я получаю при перезагрузке pfctl с конфигурацией по умолчанию. Это не повлияет (машины в локальной сети получают экран Mac OS Apache по умолчанию «Это работает!»). Я также пробовал использовать оба вышеперечисленных вместе, и результаты были такими же, как при использовании только трюка ipfw.

Я читал и пробовал множество комбинаций ipfw и pfctl, но ни один из них не получил других результатов и не кажется более правильным, чем то, что я упомянул выше.

Я делал именно это в течение почти двух десятилетий с BSD и различными разновидностями Linux в качестве хоста, но мне просто не удалось заставить его работать с хостом Mac OS. Я надеюсь, что упустил из виду что-то глупое и / или простое, и что кто-нибудь может указать, что это такое.

Я немного опоздал, чтобы ответить на ваш вопрос. Ваше решение ipfw должно работать, но не так, как вы написали правило, и, поскольку вы не предоставляете много информации о своей конфигурации, я полагаю, что вы пропустили несколько вещей:

  • вы установили scopedroute на 0 (используя sysctl)
  • вы установили переадресацию на 1 (используя sysctl)
  • ты активировал брандмауэр?
  • вы натренированы между двумя сетями?
  • вы должны пересылать только пакеты, приходящие из вашей локальной сети, но IP адресата

Вы пытались закрыть экземпляр Mountain Lion Apache и настроить ssh туннель например

sudo bash
nohup ssh -L 80:192.168.100.2:80 -N -i ~someUser/.ssh/id_dsa someUser@192.168.100.2 &

Или, альтернативно, используя экземпляр Apache Mountain Lion для обратного обращения прокси-запросов к виртуальной машине, например

ProxyRequests Off
ProxyPass        /  http://192.168.100.2/
ProxyPassReverse /  http://192.168.100.2/
<Proxy *>
  Order Deny,Allow
  Allow from all
</Proxy>

Вставьте это в свой: /private/etc/apache2/httpd.conf и перезапустите Apache.