Это ДОЛЖНО быть чем-то, что можно сделать. Я искал и нашел много ответов, которые утверждают, что делаю то, что я хочу, но я не могу собрать их воедино. Так...
Я запускаю виртуальную машину 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 должно работать, но не так, как вы написали правило, и, поскольку вы не предоставляете много информации о своей конфигурации, я полагаю, что вы пропустили несколько вещей:
Вы пытались закрыть экземпляр 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.