問題
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
- 添加
到 pf.conf檔案的rdr on lo0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 8080
這一行後面。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端口