这是可以做的事情。 我search并find许多答案,声称做我想做的,但我似乎无法把它放在一起。 所以…
我在Mountain Lion下运行一个Linux虚拟机。 VM运行Apache。 我需要将到达主机端口80的所有stream量redirect到客户端口80.我可以使用以下url从主机访问虚拟机的网站: http://192.168.100.2/ : http://192.168.100.2/
我也可以使用以下http://10.0.42.22/从本地networking的其他计算机访问默认的Mountain Lion Apache服务器: http://10.0.42.22/ : http://10.0.42.22/
(certificate在主机上打开了80端口,是的,我试图closuresApache的Mac OS安装无济于事)
我需要networking上的其他机器能够通过后面的地址( http://10.0.42.22/ )到达在VM下运行的服务器。
我已经尝试从主机ipfw:
ipfw add 100 forward 192.168.100.2,80 ip from any to any 80 in
在我这样做后,本地networking上的计算机超时尝试达到http://10.0.42.22/而不是到达Mac OS“It Works!” 屏幕,这告诉我“发生了什么”,但不幸的是,有些东西不是转发给客人正在工作。
我也尝试添加到/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
使用默认configuration重新加载pfctl时,获得的是同样的结果。 这没有任何影响(本地networking上的机器接收到Mac OS Apache默认的“It Works!”屏幕)。 我也尝试使用上述两个在一起,结果与只使用ipfw技巧相同。
我已经阅读并尝试了许多ipfw和pfctl的组合,但没有得到任何不同的结果或似乎比我上面提到的更正确。
我已经做了近二十年的BSD和各种风格的Linux作为主机,但我似乎无法让它与Mac OS主机一起工作。 我希望我忽略了一些愚蠢和/或简单的东西,那里的某个人可以指出它是什么。
你有没有试过closuresMountain Lion的Apache实例,并build立一个SSH隧道例如
sudo bash nohup ssh -L 80:192.168.100.2:80 -N -i ~someUser/.ssh/id_dsa [email protected] &
或者,交替使用Mountain Lion Apache实例将代理请求反向转发给VM
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解决scheme应该可以工作,但不是你写规则的时候,因为你没有提供关于你的configuration的很多信息,所以我想你错过了几件事情: