如何通过公网访问NAS上用Docker和Portainer部署的Odoo
公网访问内网Odoo服务的可行方案
1. 端口映射(基础方案)
- 操作步骤:
- 登录办公室路由器管理后台,找到端口转发/虚拟服务器配置项
- 添加转发规则:将公网端口(如8080)映射到NAS的内网IP和Odoo容器的服务端口(比如你当前使用的
port值,常见为8069) - 获取办公室公网IP:通过浏览器搜索“本机公网IP”即可查看
- 公网访问时使用格式:
http://你的公网IP:公网端口 - 补充:如果办公室是动态公网IP,需开启路由器或NAS自带的**DDNS(动态域名解析)**功能,绑定一个固定域名,后续用域名替代公网IP访问
2. 内网穿透工具(无公网IP可选)
以FRP为例(稳定且开源):
- 公网服务器部署FRP服务端:
- 下载对应系统的FRP压缩包,解压后修改
frps.ini配置:[common] bind_port = 7000 # FRP服务端监听端口 vhost_http_port = 80 # HTTP转发端口 - 启动服务端:
./frps -c ./frps.ini(Linux环境)或对应Windows命令
- 下载对应系统的FRP压缩包,解压后修改
- NAS端部署FRP客户端:
- 下载FRP客户端,修改
frpc.ini配置:[common] server_addr = 你的公网服务器IP server_port = 7000 [odoo] type = http local_ip = NAS的内网IP local_port = Odoo容器的服务端口 custom_domains = 你的域名 # 需提前将域名解析到公网服务器IP - 启动客户端:
./frpc -c ./frpc.ini
- 下载FRP客户端,修改
- 公网访问:直接使用
http://你的域名
3. VPN连接(高安全方案)
适合对数据安全性要求高的场景:
- 在办公室路由器或NAS上部署VPN服务(如OpenVPN、WireGuard)
- 家庭设备安装对应VPN客户端,连接办公室VPN网络
- 连接成功后,直接使用内网访问格式
http://NAS内网IP:Odoo端口访问,和办公室内网环境完全一致 - 优势:数据加密传输,避免服务直接暴露在公网,安全性大幅提升
关键注意事项
- 防火墙配置:确保办公室路由器、NAS、Odoo容器的防火墙允许对应端口的入站/出站流量
- Odoo适配:如果使用域名访问,需在Odoo配置文件
odoo.conf中设置web.base.url = http://你的域名,避免页面跳转异常 - 安全加固:公网暴露服务时,建议启用HTTPS(可使用Let's Encrypt免费证书),设置强登录密码,有条件的话限制访问IP范围
内容的提问来源于stack exchange,提问作者Dev Project
相关产品推荐
相关产品推荐

