忘机山人
前几天,一个朋友来找我。他说自己新买了一台云服务器,却发现厂商没有分配公网 IP。最关键的是,他已经在上面部署好了服务,还急着要对外共享。于是他问我: **“这台没有公网 IP 的云服务器,还有办法让别人访问吗?”** 这其实是很多人都会遇到的情况: * 有些云厂商默认不给公网 IP,只能通过内网访问。 * 公网 IP 要额外收费,而且价格往往不低。 * 部分地区公网 IP 甚至直接被封禁。 * 轻量机、学生机这类实验主机,干脆就不提供公网 IP。 那么,有没有办法“曲线救国”? 答案是:当然有。靠的就是 **懒猫微服的端口转发功能**。 它能让一台没有公网 IP 的云服务器,重新获得对外访问的能力,甚至还能跨懒猫账号共享。 我把这种玩法类比于 HTTPS 的证书卸载,称之为 **“登录卸载”**。 ### 1. 解决思路 朋友的云服务器上跑着一个 Web 服务,但因为没有公网 IP,只能在内网访问。 我的解决方案是: 1. 在这台云服务器上安装懒猫微服客户端; 2. 找一台有公网 IP 的懒猫微服节点,作为“出口”; 3. 把云服务器的服务端口转发到出口节点上。 这样一来,即便服务器本身只有内网地址,也能借助另一台机器的公网出口,对外提供服务。 此时,只需要在这台服务器上安装懒猫微服客户端,然后记住它的机器名称。  ### 2. 设置端口转发 出于数据安全的考虑,我给他单独开了一个子账号。 https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.app.forward 因为当转发目标选择“微服客户端”时,只能获取到**登录账号下的设备**。这也意味着我无法直接读取他机器的域名,更不能帮他添加转发规则,所以需要让他自己登录来配置。 在懒猫微服的控制台里,他只需要新建一个端口转发规则: * **转发类型**:选择 **“微服客户端”**,对应的就是那台没有公网 IP 的云服务器; * **端口**:填写要转发的服务端口(比如 8080); * **出口类型**:选择 **0.0.0.0**,绑定到有公网 IP 的微服网卡。  完成后,这台云服务器的服务就顺利“挂”在了公网出口上。 ### 3. 转发测试 配置好后,我先在内网直接用 `telnet` 验证: ```bash telnet a.b.c.d Trying x.x.x.x... Connected to x.x.x.x. Escape character is '^]'. ``` 可以看到,不登录的情况下直接访问懒猫的私有 IP 就能通。 我自己家里有公网 IP,于是只需要在路由器上再做一个转发,就能让这台云服务器的服务真正跑到公网去。  当他看到成功连上之后,才彻底放心: **原来真的能让一台没有公网 IP 的云服务器,也能被公网访问!** https://appstore.lazycat.cloud/#/shop/detail/dev.beiyu.ddnsgo 为了更方便,我还配合了 **DDNS-go** 使用。这样即便出口 IP 改变,也能通过域名自动解析到最新 IP,保证随时可访问。  ### 4. 最终效果 经过这套操作,这台“没有公网 IP 的云服务器”,就像普通云主机一样,可以被外网直接访问了。 关键是:全程不需要购买昂贵的公网 IP,配置好之后也不必频繁登录管理,真正做到一次设置,长期使用。 现在网站的流量数据已经很好看了:  ### 小结 * **传统做法**:必须购买公网 IP → 成本高、限制多; * **懒猫微服做法**:通过端口转发 → 云服务器无需公网 IP,也能轻松对外服务; * **额外优势**:支持跨懒猫账号共享,配置好之后,朋友也能直接访问。 一句话总结: **有了懒猫微服 + DDNS-go,再“抠门”的云服务器,也能摇身一变,获得公网入口。**
评论
0暂无评论