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

Amfe
Amfe
发布于 2025-08-16 / 228 阅读
3
0

1.这里先说下下我的公网服务器配置历史

最开始我是使用阿里云的域名+腾讯云的2核2G服务器,主要是有ipv 4,我也不用向运营商申请(虽然现在很难申请到),很适合我们这种隔一段时间就会换城市的人。当时价格算上新人优惠500块3年。

只是我日常使用这台云主机的时候很不爽,内存很小,vscode ssh连接上的话就会爆内存,导致我搭建个人网站十分难受,没有可视化开发环境真的很难受。

最近也快过期了,就寻思着续费,一看如果内存要比较大的话,年费用上千,而且没法自由加减配置,我只想要内存大,不想要强cpu。

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

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

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

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

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

这里

  • 隧道名称随便,我一般写本机服务运行的端口号

  • 协议选http(即使你想要让你的的网站或服务的访问协议是https)

  • 本地地址填你本机服务运行的端口号

  • 域名类型选自定义域名,因为我们是想用自己买的域名来访问。

  • 域名名称填入你自己买的域名,不带协议,比如amfe.space 而不是https://amfe.space。

  • 证书文件、密钥文件是你的网站的证书和密钥,这个不多解释

  • 地区随便选一个带China的

  • https绑定方式选同时启动

  • 重定向至Https改为true,这样别人访问http://amfe.space就会转到https://amfe.space

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

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

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

3.(可选)网站加速服务配置(阿里云CDN)

3.1为什么要配置CDN

上述方案已经能够对外提供服务了,包括但不限于网盘、ssh、网站等。

但我们希望访客在访问我们的网站时加载速度快点,毕竟cpolar专业版是3Mbps的小水管,如果所有流量都要从我们的主机发出的话,加载图片会很慢。这里我使用的是阿里云家的CDN服务,他们家有一个新人礼包,50G、一年有效期的CDN下行流量,但是比较坑的是,他这个流量不包含Https访问,这个另外计费。

费用详情:阿里云CDN计费外部链接

点击展开:截取按量计费表格

按流量计费说明:按各大区流量(从CDN L1节点流出的下行流量,单位GB)阶梯价格计费,当月按账户维度进行阶梯累进(以自然月为一个累计周期)。

流量阶梯 (元/GB)

中国内地-CN

北美-NA

欧洲-EU

亚太1区-AP1

亚太2区-AP2

亚太3区-AP3

中东、非洲-MEAA

南美-SA

0GB - 10TB (含)

0.24

0.46

0.46

0.58

0.78

0.69

1.31

1.31

10TB - 50TB (含)

0.23

0.46

0.46

0.58

0.78

0.69

1.31

1.31

50TB - 100TB(含)

0.21

0.39

0.39

0.45

0.67

0.60

1.18

1.18

100TB - 1PB(含)

0.18

0.20

0.20

0.38

0.57

0.51

0.98

0.92

大于 1PB

0.15

0.16

0.16

0.35

0.52

0.46

0.92

0.85

可以看到内地流量大概0.24/GB(新人一年50GB免费额度),HTTPs 0.05元/万次。我们网站访问量比较小,这个流量费用忽略不计

3.2如何配置阿里云CDN

进入阿里云CDN域名控制台:

https://cdn.console.aliyun.com/domain/list

点击“添加域名”

区域我选“仅中国内地”,因为我的是简中网站。域名填自己的域名,我这里是a.amfe.space(你要填自己的域名,不要跟我一样)不带协议。业务类型是图片小文件。然后点击蓝色按钮“新增源站信息”,会出现下图内容:

因为我是用的cpolar的内网穿透服务,服务器没有固定ip,所以选择源站域名,填入之前在cpolar上拿到的****.cpolar.cn域名

点击确认后点击下一步,来到:

点击红色箭头所指的DNS配置向导,自行在自己的域名解析服务商处将域名解析到CNAME记录值。这个不展开了。

等几分钟,应该能够通过的自己的域名访问网站了,流量路径应该是:

your.domin->CNAME记录值域名:a.amfe.space.w.kunlunaq.com -> cpolar上拿到的****.cpolar.cn ->物理主机

4.费用计算

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


评论