# 代理服务

# 使用轻舟代理

# 安装证书

  1. 移动端直接扫描下方二维码下载轻舟CA证书。
ca-install
  1. 移动端安装上面刚刚下载的证书(与Fiddler,Charles等安装证书过程类似)

以小米手机为例:

a. 点击设置 -> WLAN -> 高级设置 -> 安装证书 (证书名称任意,例如:rowboat)

image-20201103151738965
  1. 【可选】移动端确认证书已成功安装

以小米手机为例:

a. 点击设置 -> 更多设置 -> 系统安全 -> 信任的凭据 -> 用户

查看证书 - 轻舟 - 北京世纪好未来教育科技有限公司

image-20201103151834991

# 配置代理

  1. 查看轻舟服务运行机器的IP地址

a. Windows

C:\> ipconfig

b. Linux/macOS

[root@localhost root] ifconfig
  1. 移动端配置手动代理

以小米手机为例:

a. 点击设置 -> WLAN -> [已连接wifi名] 右侧的 >

image-20201103152334369

b. 选择代理 -> 手动 -> 填入第一步查询到的轻舟服务运行机器的IP地址 -> 端口 6666 -> 确定

image-20201103152424698

# 常见问题

下面列举了一些使用代理服务可能遇到的问题及可能的解决方法

# Android 7以上版本SSL证书问题

# 问题表现

在移动端已安装好证书并正确配置代理服务IP和端口的情况下,轻舟使用代理调试无法拦截请求信息,app依然显示网络异常或获取数据失败。

# 问题说明

从Android 7(Nougat)开始,系统对于证书的安全策略做了修改,用户证书只能用于代理浏览器的流量,而应用是不会信任这些证书。

# 解决方案

因此需要在测试的app中添加配置项来信任轻舟代理服务生成的SSL证书。

具体步骤如下:

  1. 添加 Network Security Configuration File (opens new window) 到测试app,例如:

在app中添加 res/xml/network_security_config.xml:

<network-security-config> 
  <debug-overrides> 
    <trust-anchors> 
      <!-- Trust user added CAs while debuggable only -->
      <certificates src="user" /> 
    </trust-anchors> 
  </debug-overrides> 
</network-security-config>
  1. 然后在app的manifest中添加对于上面文件的引用,例如:
<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <application android:networkSecurityConfig="@xml/network_security_config" ... >
        ...
    </application>
</manifest>
  1. 重新打包app

# 部分网络请求受限问题

# 问题表现

移动端在配置代理服务后出现部分页面一直在加载,长时间无法显示

# 问题说明

由于代理服务受限制于部署的机器网络环境,所以如果轻舟服务运行的机器无法访问某些地址,那么移动端通过轻舟代理也无法访问。已知部分域名无法在培优vpn环境下访问。

可以通过轻舟服务运行的机器的浏览器或curl测试验证

# 解决方案

如果网络访问受限是由于培优vpn造成的,可尝试换用集团vpn(轻舟运行需要vpn环境)