鉴于很多开发者在临时体验开发时往往没有公网域名或者公网IP,本工具提供了一个公网代理服务,目的是方便开发测试。
案例一:ISV三方企业小程序的回调地址必须是公网域名或IP,对于大部分开发者来说,开发者无法在本地调试远程代码,对于回调URL校验不通过之类的问题无法追踪,只能不断远程部署查看log日志来调试修改。
案例二:企业通讯录同步过程中需要注册一个公网域名(或IP)的回调地址,用来接收钉钉上的企业通讯录信息变更。
内网穿透工具可以实现将一个公网域名映射到本地的 localhost 域名。
使用 git 工具克隆下面仓库,命令如下:
git clone https://github.com/open-dingtalk/pierced.git
Windows执行以下命令:
# 说明:Windows需使用cmd工具打开命令行 cd windows_64 ding -config=ding.cfg -subdomain=abcde 8080
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测试一下。
每次启动透传工具都要输入一长串的命令麻烦,于是编写了一个简单的脚本用于快速启动透传工具。脚本如下:
@echo off setlocal title 钉钉HTTP/HTTPS透传 set baseDir=%~dp0 cd %baseDir%/windows_64 :continue set /p port=Set local port (0~65535): ding.exe -config=ding.cfg -subdomain=hxstrive %port% set /p flag=Do you want to continue? (Y/N) if "%flag%"=="Y" goto continue if "%flag%"=="y" goto continue
该脚本运行效果如下图:
参考资料:https://developers.dingtalk.com/document/resourcedownload/http-intranet-penetration?pnamespace=app