Экспедирование в горном льве
Это должно быть что-то, что может быть сделано. Я искал и нашел много ответов, которые утверждают, что делают то, что я хочу, но я не могу соединить это. Так...
Я использую виртуальную машину Linux под Mountain Lion. ВМ работает Apache. Мне нужно перенаправить весь трафик, который поступает на порт 80 хоста, на порт гостя 80. Я могу получить доступ к веб-сайту виртуальной машины с хоста, используя:http://192.168.100.2/
Я также могу подключиться к серверу Mountain Lion Apache по умолчанию с других компьютеров в локальной сети, используя: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 "Это работает!" экран, который говорит мне, что "что-то" произошло, но, к сожалению, что-то не так, переадресация гостю работает.
Я также попытался добавить в /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. Я надеюсь, что я упустил что-то глупое и / или простое, и что кто-то там может указать, что это такое.
2 ответа
Вы пытались выключить экземпляр 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.
Я немного опаздываю, чтобы ответить на ваш вопрос. Ваше решение ipfw должно работать, но не так, как вы написали правило, и, поскольку вы не предоставляете много информации о своей конфигурации, я полагаю, что вы пропустили несколько вещей:
- Вы установили scopedroute на 0 (используя sysctl)
- Вы установили переадресацию на 1 (используя sysctl)
- Вы активировали брандмауэр?
- ты нат между двумя сетями
- вам следует пересылать только пакеты, поступающие из вашей локальной сети, но IP-адрес получателя