文档首页 / 移动端网络部署

移动端网络部署

让外网手机安全地打开移动端:仅内网、前置机反向代理、移动网关三种接入方式的选择与配置,以及独立端口、可信代理、接口出站和连通自检。

概述

移动端(手机门户)和 PC 端运行在同一个 SightReport 进程里。PC 端通常只在内网使用,移动端却常常需要从外网打开。为了不把 PC 管理端、设计器一起暴露到外网,移动端可以使用独立端口:这个端口只提供移动端路径(/m、/mapi)和域名校验文件,其余地址一律返回 404。

外网手机怎么连到这个端口,取决于现场网络,有三种方式:

方式 适用场景 外网需要开放什么
仅内网使用 手机走公司 Wi-Fi 或 VPN 不开放
前置机反向代理 有一台公网可达的前置机(Nginx、WAF、负载均衡、网闸端口映射),且它能连进内网 前置机的 443 端口;前置机到 SightReport 移动端口
移动网关 前置机连不进内网,只允许内网往外连 网关所在机器的手机侧端口;内网到网关隧道端口的出站连接

注意:开启「允许外网访问」前,必须先配置独立端口或启用移动网关,否则保存时会被拒绝。已经开着外网访问的旧配置不会被强制关闭,但「网络与部署」页会给出红色提示。

功能入口

移动 > 设置 > 「网络与部署」页签。页签上有五块内容:

  1. 「当前状态」:主端口、移动端口、可信代理以及需要处理的问题。
  2. 「外网怎么进来」:三种方式的说明、当前方式,以及按当前配置生成的前置机 Nginx 示例。
  3. 「移动网关」:网关地址、接入令牌、证书指纹、连接数与连接状态。
  4. 「钉钉 / 飞书 / 企业微信接口出站」:免登和消息推送访问这些平台接口的方式。
  5. 「手机连通自检」:用手机扫码检查外网能否打开移动端。

操作步骤

配置移动端独立端口

  1. 编辑 SightReport 的 application.yml,在 sight.mobile 下设置 port(不能与 server.port 相同)。如只想让移动端口监听某一块网卡(例如连前置机的那块),同时设置 address。
  2. 重启 SightReport。
  3. 打开「网络与部署」,「当前状态」里的「移动端口」显示该端口即生效。
server:
  port: 9091            # 主端口:PC 端、设计器,只在内网开放
sight:
  mobile:
    port: 9092          # 移动端独立端口:只放行 /m、/mapi 与域名校验文件
    address:            # 可选:只监听这个地址,留空 = 所有地址

方式一:前置机反向代理

  1. 按上一节配置独立端口。
  2. 在「网络与部署 >「外网怎么进来」」复制「前置机反向代理示例(Nginx)」,放到前置机的 Nginx 配置里,按需补上 HTTPS 证书。示例只转发 /m/、/mapi/ 和根目录的 .txt 校验文件,访问根路径时跳转到移动端首页。
  3. 把前置机访问 SightReport 时使用的地址加入 application.yml 的 sight.security.trusted-proxies,重启。不加的话,系统看到的访客地址都是前置机自己,按 IP 的限流、外网判定、审计都会失准;同时为了安全,这类请求一律按外网对待。
  4. 在「基础」页填写「对外访问地址」(手机实际打开的地址,例如 https://m.example.com),打开「允许外网访问」,保存。
  5. 用「手机连通自检」扫码验证。

方式二:移动网关

移动网关是一个单文件程序(Linux x86_64 / ARM64 / 龙芯、Windows),在官网「下载中心」的「Sight 移动网关」分类下载,版本与 SightReport 一致。它部署在手机能访问到的机器上,SightReport 从内网主动连出到网关,建立加密隧道;手机访问网关,请求经隧道转回 SightReport。网关本身不保存任何业务数据。完整的安装、配置项、升级与排障见移动网关安装与配置,下面是最短步骤。

  1. 在网关机器上执行初始化,-hostnames 填 SightReport 用来访问网关的域名或 IP:
    ./sight-mobile-gateway init -hostnames dmz.example.com
    
    命令会生成 gateway.yaml、隧道证书,并打印「证书指纹」和「接入令牌」。以后可用 ./sight-mobile-gateway show 再次查看。
  2. 按需编辑 gateway.yaml:手机侧监听端口 listen(默认 :8080 明文,可配置 HTTPS 证书)、隧道端口 tunnel.listen(默认 :7443)。网关前面如果还有负载均衡,把它的地址填进 trusted_proxies。
  3. 在 SightReport「网络与部署 >「移动网关」」:打开「启用移动网关」,「网关地址」填 wss://dmz.example.com:7443/tunnel,粘贴「接入令牌」和「证书指纹」,保存。
  4. 在网关机器上注册并启动服务:
    sudo ./sight-mobile-gateway install
    sudo ./sight-mobile-gateway start
    
    Windows 下用管理员身份运行 sight-mobile-gateway.exe install 和 start。
  5. 回到「网络与部署」,「连接状态」显示「已连接(2/2)」即成功。
  6. 在「基础」页填写「对外访问地址」(手机访问网关的地址),打开「允许外网访问」,保存,再用「手机连通自检」扫码验证。

提示:防火墙只需放通两条:外网到网关的手机侧端口;SightReport 所在内网到网关隧道端口的出站连接。不需要从外面连进内网。

设置钉钉 / 飞书 / 企业微信接口出站

免登和消息推送时,SightReport 服务器要访问 qyapi.weixin.qq.com、oapi.dingtalk.com、api.dingtalk.com、open.feishu.cn。在「钉钉 / 飞书 / 企业微信接口出站」选择访问方式:

访问方式 说明
沿用服务器设置 默认。和以前一样,服务器启动参数里配置了系统代理就走代理
直连 从本机直接访问,不走任何代理
经 HTTP 代理 填写代理地址 主机:端口
经移动网关 由移动网关代为访问,出口 IP 就是网关机器的 IP;内网服务器完全不用上外网。需先启用移动网关

不管选哪种方式,系统都只会访问上面这几个固定主机。

手机连通自检

「手机连通自检」里的二维码指向 对外访问地址/m/m.html#/diag。用手机扫码,页面会显示:

  • 连接是否正常;
  • 经过的是移动网关、前置机还是直接连接;
  • 是否使用了加密连接(HTTP 会提示不安全);
  • 前置机地址没有加入可信代理时,给出提示。

属性/参数说明

application.yml

属性 说明 取值/默认值
sight.mobile.port 移动端独立端口;配置后该端口只放行移动端路径与校验文件。改动需重启 留空 = 移动端在主端口上提供
sight.mobile.address 移动端口只监听该地址 留空 = 所有地址
sight.security.trusted-proxies 可信反向代理,单个 IP 或 CIDR;只有来自这些地址的请求才采信 X-Forwarded-For 默认空

「网络与部署」中的移动网关

属性 说明 取值/默认值
启用移动网关 是否连接网关 默认关闭
网关地址 隧道地址,形如 wss://主机:端口/tunnel;ws:// 为明文,只建议在受控网络内使用 启用时必填
接入令牌 网关 init 时生成;保存后只显示为已设置 启用时必填
证书指纹 网关隧道证书的 SHA-256 指纹,填了就只认这张证书 空 = 按系统证书库校验
连接数 同时保持的隧道连接数 1~4,默认 2

对外访问地址

格式为 http(s)://主机[:端口][/路径]。统一网关按路径分发时可以带子路径,例如 https://gw.example.com/sight,此时移动端首页是 https://gw.example.com/sight/m/m.html。域名校验文件始终在域名根目录。

示例

某单位 SightReport 在内网 10.1.2.30,DMZ 有一台公网 IP 为 203.0.113.10 的 Linux 主机,防火墙只允许内网往外连。

  1. DMZ 主机:./sight-mobile-gateway init -hostnames 203.0.113.10,编辑 gateway.yaml 把 listen 改为 :443 并配置 HTTPS 证书,install、start。
  2. SightReport:application.yml 设置 sight.mobile.port: 9092,重启;「网络与部署」启用移动网关,网关地址 wss://203.0.113.10:7443/tunnel,填入令牌与指纹;接口出站选「经移动网关」;保存。
  3. 「基础」页:对外访问地址填 https://m.example.com(解析到 203.0.113.10),打开「允许外网访问」,保存。
  4. 手机扫「手机连通自检」二维码,显示「连接正常」「经过移动网关」。

预期结果:外网只能访问到移动端;企业微信、钉钉后台登记的服务器出口 IP 填 203.0.113.10。

注意事项

注意:主端口(PC 端、设计器)不要暴露到外网。外网访问一律通过独立端口或移动网关。

注意:网关的接入令牌等同于隧道的钥匙,只填在 SightReport 里,不要外传。重新执行 init -force 会换新令牌和指纹,需要同步更新到 SightReport。

提示:集群部署时,每个节点都会各自连上网关,网关在所有连接间轮流分配请求。

排障

现象 原因 解决方法
保存时提示「开放外网访问前,请先为移动端配置独立端口或启用移动网关」 没有独立端口,也没启用网关 配置 sight.mobile.port 并重启,或启用移动网关
连接状态显示「接入令牌不正确」 令牌填错,或网关重新 init 过 在网关上 show 查看令牌后重新填写
连接状态显示「网关证书指纹与设置不一致」 指纹填错,或网关证书换过 用 show 查看最新指纹
连接状态显示「连不上网关地址」 防火墙未放通出站、地址或端口不对 在 SightReport 机器上测试能否连到网关隧道端口
手机打开提示「服务暂不可用」 网关上没有存活的隧道连接 查看「网络与部署」的连接状态
自检提示前置机地址没有加入可信代理 前置机转发了 X-Forwarded-For,但它的地址不在 trusted-proxies 里 把前置机地址加入 sight.security.trusted-proxies 并重启

相关文档

联系我们

请填写您的信息,我们将在 1 个工作日内与您联系。