如何用运营商静态IP搭建树莓派DNS及部署Spring Boot项目
树莓派搭建个人项目环境解决方案
1. 静态IP到手后,路由器的必要配置
- 端口转发(核心):登录路由器管理后台,找到「端口转发」/「虚拟服务器」模块,添加两条规则:
- 外部端口
80→ 内部端口80,目标IP填树莓派的内网IP(如192.168.3.10),协议选TCP - 外部端口
443→ 内部端口443,目标IP同上,协议选TCP
- 外部端口
- 验证WAN口状态:在路由器「WAN口设置」中确认已获取到运营商提供的静态公网IP,确保不是动态IP
- 防火墙放行:如果路由器有自带防火墙,需允许外部对
80、443端口的访问请求,避免被拦截
2. 仅Certbot+Spring Boot能否实现HTTPS?
可以实现,但维护成本略高,具体步骤:
- 在树莓派上安装Certbot,生成Let's Encrypt证书(以域名
mydomain.com为例):sudo certbot certonly --standalone -d mydomain.com -d console.mydomain.com - 证书默认存放在
/etc/letsencrypt/live/mydomain.com/,包含fullchain.pem(证书链)和privkey.pem(私钥) - 将PEM格式证书转换为Spring支持的PKCS12格式:
openssl pkcs12 -export -in /etc/letsencrypt/live/mydomain.com/fullchain.pem -inkey /etc/letsencrypt/live/mydomain.com/privkey.pem -out keystore.p12 -name tomcat - 在Spring Boot配置文件
application.yml中启用SSL:server: port: 443 ssl: key-store-type: PKCS12 key-store: classpath:keystore.p12 key-store-password: 你设置的密码 key-alias: tomcat - 注意:Let's Encrypt证书90天过期,需配置Certbot自动续签,续签后要重启Spring应用才能加载新证书。更推荐搭配Nginx反向代理,Nginx可自动加载续签后的证书,无需重启应用。
3. 子域名创建与单树莓派多服务共存
子域名创建方式
方式一:用域名服务商的DNS解析(推荐,省心)
登录你的域名服务商后台(如阿里云、腾讯云),进入「DNS解析管理」,添加A记录:
- 主机记录:填子域名前缀,比如
console、dns - 记录类型:A
- 记录值:你的静态公网IP
- TTL:选默认值即可
方式二:树莓派自建DNS服务器(适合自定义需求)
- 在树莓派上安装Bind9等DNS服务软件,配置主域名解析区域,添加子域名的A记录指向树莓派内网IP
- 登录域名服务商后台,将域名的NS记录修改为你的树莓派公网IP,让全球DNS服务器指向你的树莓派DNS
单树莓派能否完成所有操作?
完全可以。单台树莓派可同时承载:
- Spring Boot应用运行
- Certbot证书生成与自动续签
- 自建DNS服务器(如Bind9)
- 反向代理(如Nginx,用于多子域名转发、简化HTTPS配置)
若自建DNS服务器,需在路由器端口转发中开启53端口(UDP+TCP),允许外部访问你的DNS服务。
内容的提问来源于stack exchange,提问作者Mohammad Asgari
相关产品推荐
相关产品推荐

