很多開發者在開發個人項目的前期,可能都會遇到沒有公網域名或者公網IP,導致調試受限的問題。雖然,購買一個服務器,注冊一個域名,很便宜,也很簡單,但是如果能通過免費的內網穿透工具,讓外網訪問你本地的服務器是不是更好呢?
下面我就來介紹下釘釘的免費內網穿透工具。雖然,釘釘官方說此工具主要是用來方便開發者測試對接釘釘,但是如果你只是臨時用做其他合法用途也未嘗不可。
實現原理
上圖是釘釘提供的內網穿透示意圖。從圖中我們可以獲得兩個關鍵信息,一個是公網域名abcde.vaiwan.com,一個是本地服務127.0.0.1:8080,這兩個關鍵信息共同構成了公網與內網的映射,也即當我們訪問abcde.vaiwan.com時,實際上就是訪問我們本地的服務127.0.0.1:8080。
使用方法
釘釘的這個內網穿透工具支持Window系統、mac系統和linux系統。
1、下載代碼:
git clone https://github.com/open-dingtalk/pierced.git
2、進入對應系統的代碼目錄,執行如下命令,啟動內網穿透工具,以mac為例:
cd mac_64
chmod 777 ./ding
./ding -config=./ding.cfg -subdomain=abcde 8080
參數說明:
參數 |
說明 |
-config |
內網穿透的配置文件,按照命令示例固定為釘釘提供的./ding.cfg,無需修改 |
-subdomain |
您需要使用的域名前綴,該前綴將會匹配到“vaiwan.com”前面,例如你的subdomain是abcde,啟動工具后會將abcde.vaiwan.com映射到本地。 |
端口 |
您需要代理的本地服務http-server端口,例如你本地端口為8080等 |
啟動后,界面如下圖所示:
此時,所有對
http://abcde.vaiwan.com/xxxxx的訪問都會映射到 http://127.0.0.1:8080/xxxxx上。
不過前提是,我們的內網要成功注冊到釘釘服務器。如上圖所示。
當我們的內網成功注冊到釘釘服務器后,釘釘服務器就可以將我們的請求數據通過消息通知的方式發送到內網,達到內網穿透的目的。如上圖所示。
注意
- 需要訪問的域名是http://abcde.vaiwan.com/xxxxx 而不是http://abcde.vaiwan.com:8080/xxxxx
- 啟動命令的subdomain參數有可能被別人占用,盡量不要用常用字符,可以用自己公司名的拼音,例如:alibaba、dingding等。
- 可以在本地起個http-server服務,放置一個index.html文件,然后訪問http://abcde.vaiwan.com/index.html測試一下。