使用Squid代理转发解决测试过程中API接口白名单请求ip变动问题

最近对接一个测试项目的时候,需要调用客户对方的服务器进行测试和开发。客户服务器上面调用API接口的时候添加了白名单机制,只有添加到白名单的IP请求才能够响应。在服务器的互相调用中这个是没有问题的,服务器的IP不会变动的。但是在开发测试中却遇到了麻烦。

直接用本地的电脑进行请求开发测试的话,需要将本地的IP地址添加上面。上午添加后请求正常,等到下午的时候,本地宽带的IP地址就发生了变化。然后重新让对方添加了白名单,结果同样,到不了第二天又发生了变化。

我知道本地宽带的IP地址会发生变化的,但是这个变化速度是我没有想到的。

这个时候我想到手头有一个阿里云的服务器,虽然配置不高但是有固定的公网IP,是否可以利用这个公网IP进行请求呢?进行了一番搜索查找之后,还真的可以的。用squid进行代理转发就可以实现这个需求。

说干就干,我的这台阿里云服务器上面安装是宝塔面板,宝塔面板除了站点可视化以外,现在还有Docker的可视化管理和操作。这里,为了不对服务器本身系统配置产生什么影响,我同样适用Docker来进行Squid的部署。

从Docker Hub上面搜索Squid,发现 ubuntu/squid 这个镜像完全符合我的要求。由于最近国内的Docker镜像源大部分都不能用,所以,我通过本地docker进行拉取,并导出镜像,然后将镜像上传并导入到宝塔面板的本地镜像中。

然后使用宝塔的Docker管理–>容器–>创建容器。选择导入的镜像,这里是ubuntu/squid:latest,然后最重要的一步设置便是端口的设置

Squid使用的是 3128 端口,便需要将3128端口映射出来。宝塔中这一步的操作也比较方便,暴露端口中选择添加,容器端口填写 3128,本地端口随意。 为了安全起见,我这里本地端口用了另一个,比如4444

本地端口便是后面代理设置时候需要填入的端口地址,阿里云服务器的本身对这些端口是没有放行的。需要登录阿里云后台,在对应的网络组中,选择并放行你填写的端口,比如我这里填写的4444


后面的配置直接使用默认配置即可,点击创建。运行成功之后,如果使用postman进行测试,则直接在postman上面进行设置。在postmanSetting中选择Proxy,选择 use custom proxy configuration,然后填入你的服务器ip和你上面设置的端口即可。

填写完成之后,再用postman进行接口请求,便是使用的这个服务器的固定IP。

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注