Mountain Lion 中的埠轉發
這必須是可以做到的。我搜尋並找到了許多聲稱可以做我想做的事情的答案,但我似乎無法將它們放在一起。所以…
我在 Mountain Lion 下執行 Linux 虛擬機。VM 執行 Apache。我需要將到達主機埠 80 的所有流量重定向到訪客埠 80。我可以使用以下命令從主機訪問 VM 的網站:
http://192.168.100.2/
我還可以使用以下方法從本地網路上的其他機器訪問預設的 Mountain Lion Apache 伺服器:
http://10.0.42.22/
(證明主機上的 80 埠是打開的。是的,我嘗試關閉 Apache 的 Mac OS 安裝無濟於事)
我需要網路上的其他機器能夠通過後一個地址 (
http://10.0.42.22/
) 訪問在 VM 下執行的伺服器。我已經從主機嘗試了 ipfw:
ipfw add 100 forward 192.168.100.2,80 ip from any to any 80 in
在我這樣做之後,本地網路上的機器會超時嘗試訪問
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
這與使用預設配置重新載入 pfctl 時得到的結果相同。這沒有影響(本地網路上的機器會收到 Mac OS Apache 預設的“It Works!”螢幕)。我也嘗試過同時使用上述兩種方法,結果與僅使用 ipfw 技巧相同。
我已經閱讀並嘗試了許多 ipfw 和 pfctl 的組合,但沒有一個得到任何不同的結果,或者看起來比我上面提到的更正確。
近二十年來,我一直使用 BSD 和各種風格的 Linux 作為主機來做這件事,但我似乎無法讓它與 Mac OS 主機一起工作。我希望我忽略了一些愚蠢和/或簡單的事情,並且有人可以指出它是什麼。
您是否嘗試過關閉 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 &
或者,或者使用 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。