天天看點

Mac 80端口占用問題原因具體步驟參考文獻

問題

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端口