上周不是有件小米实习生私自将公司内网端口映射到公网的新闻嘛,当时看了没啥感觉,然后周末跟旧同事叙旧,才想起来类似的事情我也干过啊,简直心有余悸。
当年毕业没多久,在实习的工作一直干到了前端部门的主管,遇到个客户表示没做过互联网项目,以前都是在内网折腾。由于数据比较私密,所以他们拷贝了测试数据库给我们前后端进行开发,等上线前再部署过去。后来我们这边都开发测试好了,代码发过去。他们说 Java 的东西还好,前端的东西怎么看文档也不会用,QQ 远程协助也不肯,非要我们立马外派一名前端出差到当地协助上线。
很明显这件苦差只能我来扛了,客户催得也急,叫我马上买了第二天早上六点的飞机出发,下飞机之后还打了一个多小时的出租车才来到客户那个鸟不拉屎的科技园,总算整明白了,客户长期做硬件和数据业务,公司里根本没有前端,只有运维测试和后端,以前的项目都是后端随便 jq 糊上去的。问了下他们的运维,node npm 没听过,docker nginx 不会用,以前的项目都是陈年老 SSH,jar 直接跑到端口上给内网用,听得我直挠头。
不过我看他们的生产环境好像还算规范,生产环境不接外网,物理机柜放在冷 /热通道封闭系统内,要操作生产环境只能在全监控的操作室内进行(操作室附近还屏蔽了手机信号,搞不懂为什么)。不过服务器的 RHEL 系统上连 Nginx 都没有,幸亏我还有一点 Linux 基础,跑到园区外用 Android 上网下载了源码自己编译,总算在生产环境把前后端服务都跑起来了。
万万没想到的就是部署成功,他们用了之后,列出了长长的一个改进清单,说是什么我来都来了现场改肯定比远程方便,死活不给我走,逮住我 996 没日没夜地改,我公司那帮孙子又打死不肯来支援,干了两周一看,妈呀清单不减反增。我说顶不住啊,重要问题都给你改了,非紧急需求的我回公司再弄,客户还是不让走,说我在公司调用不了他们的内网 API,我差点就在操作室晕过去🤯🤯🤯
幸亏在那段时间还是认识了很多人,知道除了不连外网的生产环境外,他们还是有测试环境的,可以写工单申请指定时间内连接外网。当时确实不懂网络安全啥的,但是为了能回家,就找客户的测试妹子,麻烦她每天写工单,申请早上十点到下午五点连接外网,然后再装个花生壳,在这段时间内开内网穿透,这样我就能调用测试环境的 API,还能把 ssh 服务安排上(他们的技术也知道了这件事)。最后我顺利回家,用这个办法远程给他们搞定了清单还干了二期。
可是现在看来,这种操作挺危险的吧?幸亏项目结束后我就叫妹子把软件卸了。请问在外网调用内网的接口,请问正确的姿势是什么?比如说在公司调用家里局域网,怎样做才是比较安全,至少不会说让自己或公司承受巨大的风险。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.