1. 程式人生 > >解決mac無法使用80埠問題,親測可用

解決mac無法使用80埠問題,親測可用

前言:

在mac os中,非root使用者是無法使用小於1024的常用埠的。如果開發中需要用到80埠, 就要設定埠轉發。

hosts檔案介紹

(1)hosts檔案是將域名和IP地址建立對映關係的系統檔案,使用者可以自定義常用域名跟IP,當在瀏覽器上輸入網址時,系統會優先從hosts檔案找到相應的IP地址,開啟相應的網頁。
(2)hosts檔案的作用是域名解析,構建對映關係,遮蔽垃圾網站。
(3)為什麼要修改hosts檔案?
在微信公眾號開發時候,需要獲取使用者的微信資訊,如果在微信開發者工具的位址列填寫localhost就獲取不了,所以必須要填寫稽核通過的微信公眾號域名。在這裡,假設我的微信公眾號域名為:

https://test.cn 。本地啟動了java專案,當你很高興地在在微信開發者工具輸入https://test.cn 時候,會注意到點選網頁任意一個按鈕,都不會觸發到本地java專案的任何一個介面。原因好簡單,因為預設hosts檔案中,域名localhost 對映的是 127.0.0.1 ip地址。因此,需要把localhost 對映為https://test.cn

修改hosts檔案的步驟

(1)開啟Terminal,輸入以下指令:

cd /private/etc
sudo vim hosts

開啟後,預設的hosts檔案長這樣:

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry. ## 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost 127.0.0.1 samuel.local # added by Apache Friends XAMPP

(2)把localhost 對映為https://test.cn (改成你要對映的域名)後 ,修改後是張這樣的:

##
# Host Database
# # localhost is used to configure the loopback interface # when the system is booting. Do not change this entry. ## #127.0.0.1 localhost 127.0.0.1 test.cn 255.255.255.255 broadcasthost ::1 localhost 127.0.0.1 samuel.local # added by Apache Friends XAMPP

儲存退出。

埠轉發

域名對映完成後,需要做的是埠轉發,也就是將監聽的80埠轉發到8080。
1.建立idea.tomcat.forwarding檔案:

sudo vim /etc/pf.anchors/idea.tomcat.forwarding

在idea.tomcat.forwarding新增以下命令:

rdr pass on lo0 inet proto tcp from any to 127.0.0.1 port 80 -> 127.0.0.1 port 8080 
rdr pass on lo0 inet proto tcp from any to 127.0.0.1 port 443 -> 127.0.0.1 port 8443 

2.建立pf-tomcat.conf檔案

sudo vim /etc/pf-tomcat.conf 

在pf-tomcat.conf新增以下命令:

rdr-anchor "forwarding"
load anchor "forwarding" from "/etc/pf.anchors/idea.tomcat.forwarding"

3.啟動埠轉發功能

sudo pfctl -ef /etc/pf-tomcat.conf 

如果你在終端看到以下提示,恭喜你成功啟動:

pfctl: Use of -f option, could result in flushing of rules
present in the main ruleset added by the system at startup.
See /etc/pf.conf for further details.

No ALTQ support in kernel
ALTQ related functions disabled
pfctl: pf already enabled

4.關閉埠轉發功能

sudo pfctl -d 

或者關閉全部

pfctl -F all -f /etc/pf.conf 

注意事項:
重啟mac,需要手動重啟埠轉發命令

sudo pfctl -ef /etc/pf-tomcat.conf

java專案配置

在由spring boot搭建的java開發專案中,用到的開發工具是IDEA,作業系統mac OS 10.13.4。因為微信公眾號的開發需要,埠號要設定為80,
之前已經設定好埠轉發,80轉發到8080,所以在本地除錯的時候,專案的伺服器埠設定為8080,如下圖:
這裡寫圖片描述