无公网IP,程序员如何低成本搭建自己的公网服务器

233 阅读3分钟

现在我的方案就是使用一个小主机:

我买的是下面这一个,准系统,极摩客G3 plus,没有内存条和硬盘。

image.png 自己网购了16G内存和1T硬盘,我没有特别多东西要存,所以硬盘不大。内存也是奔着冗余配置去的(相对于静态个人站和几个小服务来说是足够的)。自己手动装了个ubuntu 22 server,然后连上wifi,就可以开启ssh服务,内网访问了,就不用专门连一个显示器看小主机的输出了。到这里,我们还是没法在外网访问我们的服务,我就去找了找内网穿透。网上有的人是使用cloudflare做隧道的,胜在免费,我个人使用的是国内的cpolar服务,由于他们家的免费版没法使用自己的域名,所以我开的专业版,149一年,就为了能在外面使用自己的域名连接小主机提供的服务。

在他们官网dashboard.cpolar.com上申请固定的随机域名,可能是****.cpolar.cn之类的,就像下图

image.png

转存失败,建议直接上传图片文件然后把自己的域名在域名服务商那里使用CNAME的形式解析到这个****.cpolar.cn的域名,现在访问这两个域名都会得到cpolar的404.因为并没有两个域名都没有只向本机的任何端口。指定端口需要用到cpolar自己的软件,我是在本机部署了cpolar的docker服务(这个教程可以看他们的官网dashboard.cpolar.com/get-started),然后本地局域网使用浏览器访问cpolar的服务,如下

转存失败,建议直接上传图片文件

image.png 这里

  • 隧道名称随便,我一般写本机服务运行的端口号
  • 协议选http(即使你想要让你的的网站或服务的访问协议是https)
  • 本地地址填你本机服务运行的端口号
  • 域名类型选自定义域名,因为我们是想用自己买的域名来访问。
  • 域名名称填入你自己买的域名,不带协议,比如amfe.space 而不是amfe.space
  • 证书文件、密钥文件是你的网站的证书和密钥,这个不多解释
  • 地区随便选一个带China的
  • https绑定方式选同时启动
  • 重定向至Https改为true,这样别人访问amfe.space 就会转到 amfe.space

这样你的访问请求就:从自己的域名->cpolar的域名->本地局域网主机->指定端口->后端服务

注意你在本机端口运行的服务要是http协议的,不能是https,因为你的ssl校验在“ cpolar的域名->本地局域网主机 ”那一步就已经做了,不需要再在本机校验了。

很多时候我写代码vscode ssh到本地主机的,非常方便🎉

费用计算

最后的开销是主机购买600+每年的149的内网穿透服务费用+域名年费用50块。同样性能的云服务器每年都差不多小一千,这个方案只有第一年买硬件能花几百块,后续只有一百多每年的内网穿透和域名费用。

最后是我的个人博客网站欢迎访问