Mac 80埠占用

gary-liu發表於2017-02-13

問題

tomcat 預設埠是 8080,但是我的一個程式必須用 80 埠啟動,才能根據域名去 cas 校驗,在idea 中設定了 tomcat 的啟動埠是 80 後,並沒有起作用,報了 “80埠占用” 的錯誤,可是也沒查到 80 埠被那個程式佔用,後來發現是 80 埠沒有開啟。

原因

由於 Mac 系統限制非root使用者不能啟動1024以下埠,而我們平時使用Mac一般都是非root使用者,所以如果想啟動80埠必須用root使用者。

比如在啟動 nginx 時,必須用命令 sudo nginx

具體步驟

  • sudo vim /etc/pf.conf

  • 新增 rdr on lo0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 8080 到 pf.conf檔案的 rdr-anchor "com.apple/*" 這一行後面。

  • 其中 lo0 通過 ifconfig 看自己那個裝置繫結的是 127.0.0.1, lo0是這個網路裝置的名字。 8080是要轉發的埠

  • sudo pfctl -f /etc/pf.conf

  • sudo pfctl -e

這時,應用啟動8080埠即可以,訪問的話就可以通過80埠來訪問了!

注意:每次重啟過後如果要轉發都要執行上面最後兩條命令

參考文獻

Mac OS普通使用者啟動80埠

相關文章