Mac-Osx

Mountain Lion 中的埠轉發

  • February 16, 2013

這必須是可以做到的。我搜尋並找到了許多聲稱可以做我想做的事情的答案,但我似乎無法將它們放在一起。所以…

我在 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。

引用自:https://serverfault.com/questions/461170