本次对接一个票务系统的时候,对方的 API 须要加白名单后才能够访问,我当时就提出了个问题。php
问:那我在本地怎么调试开发啊?(由于我开发机 IP 是不固定的)html
答:测试环境也要加,要否则怎么开发呢?git
博文源地址 http://blog.phpor.me/tools/2015/11/29/tcp-proxy-for-api-white-list.htmlgithub
想了一下跟他们争确定是争不过的了,那就考虑如何知足他们,想了一下,我有本身的公网服务器 IP,本地测试环境直接请求这台机器,它再把请求转发给相应的 API,这样我无论在哪里均可以开发了。shell
API 那边的 Host 仍是 IP,即 http://x.x.y.z:port/api-route,这样服务端的那里只须要一个 TCP Proxy 就能够了,Google 了一下 tcproxy 这个小巧的很是入眼。api
$ git clone https://github.com/dccmx/tcproxy.git $ cd tcproxy && make ; echo $? # 输出 0 表明安装成功 $ nohup ./src/tcproxy "0.0.0.0:19999 -> rr{x.x.y.z:port}" &
代码里面的 Host 直接换成我本身的 ip:19999 端口就能够访问了。服务器
使用这个有个注意的点,就是你的代码要有环境之分,不一样的环境应能够自定义配置,参考 12 Factor 的配置tcp