使用Vigor 2928+阿里云服务器,没公网IP也可内网服务云发布

解决方案详情

技术博客

解决方案类别: 技术博客

最后更新: 2026-05-27

使用Vigor 2928+阿里云服务器,没公网IP也可内网服务云发布

Vigor 2928 通过 WireGuard 连接阿里云服务器,使用 Nginx 反向代理发布公司内网 ERP 和 CRM 系统的网络拓扑图
很多中小企业都会遇到一个典型问题:公司内网部署了 ERP、CRM、OA、MES、文件系统等业务系统,但是企业宽带没有公网 IP,或者普通宽带无法使用 80、443 端口,导致外部员工、客户和分支机构无法方便地访问公司内网服务器。

最典型的问题是:

  • 公司宽带没有固定公网 IP,或者公网 IP 经常变化
  • 有公网 IP,普通宽带通常也很难完成 ICP 备案,80、443 端口的使用受到限制
  • 如果直接在路由器上做端口映射,不仅安全风险高,而且后期维护也比较麻烦。

传统方案通常有几种:

  1. 租用专线
  2. 在公司宽带上做 DDNS 加端口映射
  3. 阿里云、腾讯云等云平台购买 VPN 网关
  4. 云服务器和公司防火墙之间配置 IPsec VPN。

但这些方案各有不足:租用专线价格高昂,DDNS 加端口映射会遭遇运营商的DNS缓存策略,导致有时候IP变更时会有一段时间无法访问;云厂商提供的 VPN 网关往往需要额外付费,带宽规格也受限制;而直接在 Linux 云服务器上配置 IPsec,对普通企业用户来说配置复杂,排错成本较高。

在这种场景下,可以使用 DrayTek Vigor 2928 路由器内建的 WireGuard VPN 功能,配合阿里云 Linux ECS 服务器上的内核态 WireGuard,搭建一套“Vigor 2928 连接阿里云 WireGuard”的企业组网方案。这样即使公司没有公网 IP,也可以把企业局域网安全接入到阿里云服务器,再通过阿里云公网 IP 和域名发布内网 ERP、CRM 等业务系统。

通过在云服务器上叠加WAF设置,还可以实现统一入口的安全拦截,将一些攻击阻断在局域网之外。

一、方案整体架构

简单来说,这是一个“阿里云服务器 + Vigor 2928 路由器 + WireGuard VPN + Nginx 反向代理”的内网穿透和服务发布方案。它适合解决企业宽带没有公网 IP、普通宽带无法开放 80/443 端口、本地 ERP/CRM 系统需要通过公网域名访问等问题。

本方案的核心思路是:

公司局域网中的 Vigor 2928 路由器主动通过 WireGuard 拨号连接到阿里云服务器,建立一条安全 VPN 隧道。公司内网网段为:

192.168.88.0/24

阿里云服务器在 WireGuard 隧道侧的地址为:

172.24.11.23/32

公司内网中有两台业务服务器:

ERP服务器:192.168.88.88:80 
CRM服务器:192.168.88.188:80

阿里云服务器对外使用域名:

www.xyz.com

并在服务器上运行 Nginx,通过反向代理规则实现路径转发:

www.xyz.com/erp  →  192.168.88.88:80
www.xyz.com/crm  →  192.168.88.188:80

最终效果是:用户只需要访问阿里云服务器的域名,就可以通过阿里云公网入口、Nginx 反向代理和 WireGuard VPN 隧道,访问到公司局域网内部的 ERP 和 CRM 系统。

访问路径可以理解为:

用户浏览器  
↓
Internet  
↓
www.xyz.com 阿里云服务器  
↓
Nginx 反向代理  
↓
WireGuard VPN 隧道  
↓
Vigor 2928 路由器  
↓
企业局域网 ERP / CRM 服务器

二、为什么不直接把内网服务器暴露到公网?

很多企业最开始的做法,是在公司路由器上配置端口映射。例如把公网 IP 的 8080 端口映射到内网 ERP 服务器的 80 端口。

这种方式虽然简单,但存在几个明显问题。

首先,普通宽带公网 IP 不稳定。有些宽带甚至没有真正的公网 IP,而是运营商 NAT 后的地址。这种情况下,外部用户根本无法直接访问公司路由器。而运营商现在往往有DNS强制缓存策略,导致动态公网IP使用DDNS时,在IP变更时会有一段时间无法访问。

其次,普通宽带很难正规使用 80 和 443 端口。企业网站、业务系统如果希望使用标准 HTTPS 访问,一般需要域名备案、证书配置和公网入口,而家庭或普通企业宽带往往不适合承担这个角色。

第三,直接端口映射会把内网服务暴露在公网扫描之下。ERP、CRM 等系统通常是业务系统,不一定具备强互联网安全防护能力。一旦系统存在弱口令、旧版本漏洞、文件上传漏洞或 SQL 注入风险,直接暴露到公网会大幅增加被攻击的概率。

第四,多个内网服务发布时,端口管理会越来越混乱。例如 ERP 使用 8081,CRM 使用 8082,OA 使用 8083,用户访问体验很差,也不利于统一配置 HTTPS 证书、访问日志和安全策略。

因此,更推荐的方式是:不要让内网服务器直接面对公网,而是通过云服务器作为统一公网入口,再通过 VPN 安全访问企业内网服务。

三、Vigor 2928 + WireGuard 的优势

Vigor 2928 内建 VPN 功能,可以直接作为企业局域网侧的 VPN 网关使用。相比在普通 PC 或服务器上安装 VPN 客户端,它有几个明显优势。

第一,配置简单。Vigor 2928 作为企业出口路由器,本身就在网络边界位置。只要在路由器上配置 WireGuard Peer、Allowed IP、Endpoint 和密钥,就可以让整个企业局域网通过路由器接入阿里云服务器,而不需要在每台内网服务器上单独安装 VPN 客户端。

第二,网络结构清晰。公司内网继续使用原有网段,例如 192.168.88.0/24,ERP、CRM 等服务器不需要改动 IP。阿里云服务器只需要通过 WireGuard 隧道学习到 192.168.88.0/24 的路由,就可以访问到内网业务服务器。

第三,WireGuard 性能够好,配置也比传统 IPsec 更直观。Linux 内核态 WireGuard 部署简单,配置文件清晰,排错成本低,非常适合“云服务器 + 企业路由器”的轻量级组网场景。

第四,路由器主动拨号更适合没有公网 IP 的企业宽带环境。即使公司宽带没有公网 IP,只要 Vigor 2928 可以主动访问互联网,就可以主动连接到阿里云服务器。阿里云服务器拥有公网 IP,因此可以作为稳定的 VPN 汇聚点。

四、阿里云服务器承担什么角色?

在这个方案中,阿里云服务器不是简单地运行一个业务系统,而是承担了三个关键角色。

第一个角色是 公网入口。域名 www.xyz.com 解析到阿里云服务器的公网 IP,外部用户访问业务系统时,实际上首先访问的是阿里云服务器。

第二个角色是 Nginx 反向代理服务器。Nginx 在阿里云服务器上作为反向代理网关,根据用户访问的 URL 路径把请求转发到公司局域网内的业务服务器。例如访问 www.xyz.com/erp 时,Nginx 通过 WireGuard 隧道反向代理到内网 ERP 服务器 192.168.88.88:80;访问 www.xyz.com/crm 时,则反向代理到内网 CRM 服务器 192.168.88.188:80

第三个角色是 WireGuard VPN 对端。阿里云 Linux 服务器运行 WireGuard,与 Vigor 2928 建立安全隧道。Nginx 在转发请求时,实际上是通过 WireGuard 隧道访问 192.168.88.88:80192.168.88.188:80

示例 Nginx 逻辑如下:

server {
    listen 80;
    server_name www.xyz.com;

    location /erp/ {
        proxy_pass http://192.168.88.88:80/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /crm/ {
        proxy_pass http://192.168.88.188:80/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

在生产环境中,建议使用 HTTPS,并将 80 端口自动跳转到 443。Nginx 可以统一管理 TLS 证书,让 ERP、CRM 等内网系统不需要单独配置公网证书。

五、这个方案能解决哪些实际问题?

1. 没有公网 IP 也可以访问公司内网服务器

企业局域网侧不需要被公网访问,Vigor 2928 只需要主动连接阿里云服务器即可。这样即使公司宽带处于 NAT 后面,也不会影响 VPN 隧道建立。

2. 普通宽带无法开放 80/443 端口,也能发布内网 Web 服务

域名和公网入口放在阿里云服务器上,由云服务器对外提供 80、443 服务。公司宽带只负责访问互联网和建立 WireGuard 隧道,不需要对外开放 Web 服务端口。

3. 避免 ERP、CRM 服务器直接暴露公网,提高内网服务发布安全性

ERP、CRM 服务器仍然留在公司局域网,不直接暴露在公网。公网访问统一经过阿里云服务器、Nginx、WAF、防火墙和 WireGuard 隧道,安全边界更清晰。

4. 多个内网系统统一使用一个公网域名访问

所有服务都可以通过同一个域名发布:

www.xyz.com/erp
www.xyz.com/crm
www.xyz.com/oa
www.xyz.com/file

用户只需要记住一个域名,不需要记住多个公网 IP、端口或 VPN 客户端配置。

5. 方便后续接入安全服务

因为公网入口在阿里云上,所以可以进一步接入云防火墙、WAF、DDoS 防护、访问控制、日志审计等安全服务。相比把业务系统直接暴露在公司宽带出口,云端安全能力更容易集中管理。

六、部署时需要注意的关键点

第一,路由要正确。阿里云服务器需要知道访问 192.168.88.0/24 应该走 WireGuard 隧道;Vigor 2928 也需要知道访问阿里云 WireGuard 地址或云服务器相关地址时走 VPN 隧道。

第二,WireGuard 的 AllowedIPs 要规划清楚。一般来说,阿里云服务器这一侧的 Peer 可以把 Vigor 2928 后面的公司网段写入 AllowedIPs:

AllowedIPs = 192.168.88.0/24

Vigor 2928 这一侧则可以只允许访问阿里云服务器的隧道地址,例如:

AllowedIPs = 172.24.11.23/32

具体配置需要结合实际 WireGuard 地址规划来调整。

第三,建议开启 Persistent Keepalive。由于公司宽带大概率在 NAT 后面,Vigor 2928 作为主动连接方时,可以设置 Keepalive,避免 NAT 映射长时间空闲后失效。

第四,阿里云安全组和服务器防火墙要放行必要端口。通常需要放行 WireGuard 使用的 UDP 端口,以及 Nginx 对外提供的 80/443 端口。同时,不建议把数据库、管理后台、SSH 等端口随意开放到公网。

第五,内网服务器也要限制访问来源。ERP、CRM 服务器可以只允许来自 Vigor 2928 LAN 侧、阿里云 WireGuard 隧道地址或指定网段的访问,避免内网横向风险。

第六,要关注路径代理兼容性。有些老系统不一定适合挂在 /erp/crm 这种子路径下面,因为它们的前端资源可能写死为 /static/login/api。这种情况下,可以考虑使用不同子域名:

erp.xyz.com  →  192.168.88.88:80
crm.xyz.com  →  192.168.88.188:80

相比路径代理,子域名反向代理通常兼容性更好。
但是,使用/路径 的方式会带来额外的安全buf,因为如果你的路径写的不那么容易被猜到,就天然可以挡掉一些路径扫描找到你真实服务的可能性。

第七,要关注 MTU 问题。WireGuard 会增加一定封装开销,如果访问过程中出现页面偶尔卡住、文件上传异常、部分网站打开不完整等现象,可能需要调整 WireGuard 接口 MTU。

七、方案优势总结

这个方案最大的价值,是用比较低的复杂度,实现了企业内网服务的安全公网发布。

对于企业来说,Vigor 2928 已经位于网络出口位置,内建 WireGuard 后,可以很自然地承担企业侧 VPN 网关角色。阿里云服务器则承担公网入口、Nginx 反向代理和 VPN 对端的角色。两者结合后,企业无需在内网服务器上逐台安装 VPN 客户端,也不需要购买额外的云 VPN 网关服务。

从用户体验看,所有服务都可以统一到一个域名下,例如 www.xyz.com/erpwww.xyz.com/crm,访问方式简单清晰。

从安全角度看,内网服务器不直接暴露公网,公网流量先经过阿里云服务器,后续可以叠加 HTTPS、WAF、访问控制、日志审计、限速、IP 白名单等能力。

从运维角度看,Nginx 配置集中,证书集中,访问日志集中。后续新增业务系统时,只需要新增一条反向代理规则和相应的内网服务器地址即可。

八、适用场景

如果你正在搜索以下问题,这个方案就非常适合:

  • 公司没有公网 IP,如何让外网访问内网服务器?
  • 普通宽带不能开放 80/443 端口,如何发布内网 Web 服务?
  • 本地 ERP 系统不迁移到云端,如何通过公网域名访问?
  • 阿里云 ECS 如何访问公司局域网内的服务器?
  • 如何使用 WireGuard 打通阿里云服务器和企业内网?
  • Vigor 2928 如何通过 WireGuard 连接阿里云服务器?
  • 如何用 Nginx 反向代理内网 ERP、CRM、OA 系统?

九、可以进一步增强的方向

后续还可以在这个方案上继续增强。

例如,可以把 www.xyz.com 改为多个业务子域名,让系统访问更加规范:

erp.xyz.com
crm.xyz.com
oa.xyz.com

也可以在 Nginx 前面接入 WAF,对 SQL 注入、XSS、路径穿越、恶意扫描等攻击进行防护。

对于后台管理系统,可以增加访问控制,例如只允许公司固定出口 IP、管理员 VPN 地址或指定地区访问。

对于重要业务系统,可以开启 Nginx 访问日志分析,记录访问来源、URL、响应时间、状态码,为后续审计和故障排查提供依据。

如果对可用性要求更高,还可以考虑部署两台阿里云服务器,或者在公司侧增加备用宽带和备用 VPN 隧道,进一步提升容灾能力。

常见问题 FAQ

1. 公司没有公网 IP,能不能让外网访问内网 ERP 系统?

可以。公司内网不需要被公网直接访问,只需要让 Vigor 2928 主动通过 WireGuard 连接到阿里云服务器。外部用户访问阿里云公网域名后,Nginx 再通过 WireGuard 隧道把请求转发到公司内网 ERP 服务器。

2. 普通宽带不能开放 80 和 443 端口,怎么办?

可以把 80 和 443 端口放在阿里云服务器上,由阿里云服务器提供公网访问入口。公司宽带只负责建立 WireGuard VPN 隧道,不需要对外开放 Web 端口。

3. 阿里云 ECS 可以反向代理公司内网服务器吗?

可以。只要阿里云 ECS 通过 WireGuard VPN 能够访问公司内网网段,例如 192.168.88.0/24,就可以使用 Nginx 把公网域名请求反向代理到内网 ERP、CRM、OA 等服务器。

4. Vigor 2928 可以作为 WireGuard 客户端连接阿里云吗?

可以。Vigor 2928 内建 WireGuard VPN 功能,可以作为企业侧 VPN 网关主动连接阿里云 Linux 服务器。这样可以把整个公司局域网接入到阿里云服务器,而不是只让单台电脑接入 VPN。

5. 这个方案和内网穿透有什么区别?

它可以理解为一种基于 WireGuard VPN 和云服务器反向代理的企业级内网穿透方案。相比普通内网穿透工具,这种方式的网络结构更清晰,安全边界更可控,也更适合 ERP、CRM、OA 等企业业务系统发布。

结语

通过 Vigor 2928 的内建 WireGuard 功能,企业可以非常方便地把本地局域网接入阿里云服务器。再结合 Nginx 反向代理,就可以把本地 ERP、CRM 等业务系统通过阿里云公网 IP 和统一域名发布出去。

这个方案既避免了普通宽带没有公网 IP、备案困难、端口受限等问题,也避免了直接暴露内网服务器带来的安全风险。对于希望低成本、快速、安全地发布内网业务系统的中小企业来说,这是一个非常实用的混合云接入方案。

浏览次数: 4