# Surfboard

Surfboard is a proxy utility tool compatible with Surge config.

### 如何安装

* [Google Play](https://play.google.com/store/apps/details?id=com.getsurfboard)
* [APK 下载](https://apkpure.com/surfboard/com.getsurfboard)

### 新闻

* ​[Twitter](https://twitter.com/getsurfboard)​
* [Telegram News Channel](https://t.me/surfboardnews)​
* ​[Telegram User Group](https://t.me/surfboardapp)

### 如何使用

如果您有 Surge 3/4 配置，导入使用即可

### 支持的协议

* HTTP/HTTPS/SOCK5/SOCKS5 over TLS
* SS/SS-OBFS
* VMess
* Trojan

### 单独支持的功能

* bypass 的 app 不会进入 VPN 模块
* PROCESS-NAME 规则（使用包名）

### 受限不支持的功能

* MITM （[Android 官方不支持](https://android-developers.googleblog.com/2016/07/changes-to-trusted-certificate.html)）
* URL Rewrite
* 规则类型
  * USER-AGENT（MITM 不支持了）
  * URL-REGEX（请用 DOMAIN-SUFFIX 这类更好的）

### TODO

* ~~编辑器~~
* ~~应用分流~~
* ~~最近请求~~


# 配置模板

```
#!MANAGED-CONFIG http://test.com/surfboard.conf interval=60 strict=true
[General]
dns-server = system, 8.8.8.8, 8.8.4.4, 9.9.9.9:9953
skip-proxy = 127.0.0.1, 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, localhost, *.local, www.baidu.com //444
proxy-test-url = http://www.gstatic.com/generate_204
always-real-ip = *.srv.nintendo.net, *.stun.playstation.net, xbox.*.microsoft.com, *.xboxlive.com

[Host]
abc.com = 1.2.3.4
*.dev = 6.7.8.9
foo.com = bar.com
bar.com = server:8.8.8.8

[Proxy]
# build in policy
On = direct
Off = reject

// supported proxies
ProxyHTTP = http, 1.2.3.4, 443, username, password
ProxyHTTPS = https, 1.2.3.4, 443, username, password, skip-cert-verify=true, sni=www.google.com
ProxySOCKS5 = socks5, 1.2.3.4, 443, username, password, udp-relay=false
ProxySOCKS5TLS = socks5-tls, 1.2.3.4, 443, username, password, skip-cert-verify=true, sni=www.google.com
ProxySS = ss, 1.2.3.4, 8000, encrypt-method=chacha20-ietf-poly1305, password=abcd1234, udp-relay=false, obfs=http, obfs-host=www.google.com, obfs-uri=/
ProxyVMess = vmess, 1.2.3.4, 8000, username=0233d11c-15a4-47d3-ade3-48ffca0ce119, udp-relay=false, ws=true, tls=true, ws-path=/v2, ws-headers=X-Header-1:value|X-Header-2:value, skip-cert-verify=true, sni=www.google.com, vmess-aead=true
ProxyTrojan = trojan, 192.168.20.6, 443, password=password1, udp-relay=false, skip-cert-verify=true, sni=www.google.com

[Proxy Group]
SelectGroup = select, ProxyHTTP, ProxyHTTPS, DIRECT, REJECT
AutoTestGroup = url-test, ProxySOCKS5, ProxySOCKS5TLS, url=http://www.gstatic.com/generate_204, interval=600, tolerance=100, timeout=5, hidden=true
ExternalGroup = select, policy-path=https://test.com/nodes.txt, policy-regex-filter=HK-.*
AutoExternalGroup = url-test, policy-path=https://test.com/nodes.txt

[Rule]
DOMAIN,www.apple.com,Proxy
DOMAIN-SUFFIX,apple.com,Proxy,force-remote-dns
DOMAIN-KEYWORD,google,Proxy,enhanced-mode
IP-CIDR,192.168.0.0/16,DIRECT
GEOIP,US,DIRECT
PROCESS-NAME,com.android.vending,Proxy  # android package name
RULE-SET,https://ruleset.com/cn,DIRECT
FINAL,Proxy
```


# DeepLink

* 导入配置: `surfboard:///install-config?url=[encoded_profile_url]`
* 切换VPN开关: `surfboard:///toggle`
* 开启VPN: `surfboard://start`
* 关闭VPN: `surfboard:///stop`


# 常见问题

### 支持 SSR 吗？

不支持。

### 如何导入配置呢

* 在 Profile 页面，可以输入配置 URL 导入，也可以扫描配置二维码导入。
* 配置需要是 Surge3/4 格式的，如果有直接提供 Surfboard 支持格式，可以直接导入
* 如果没有，可以尝试以下转换工具，但是不推荐使用

### 如何更新订阅配置呢

在配置页面列表，长按需要更新的配置项后会出现菜单，选择更新点了

### 为什么会耗电比较高呢？ <a href="#battery" id="battery"></a>

* 系统会把所有网络请求的耗电都计算到 Surfboard 上
* 可以自行 bypass 国内应用，耗电量会显著降低

### ROM 常见问题

#### App 后台被杀掉怎么办

参考对应的教程配置各 ROM 的锁后台 <https://dontkillmyapp.com/>

#### 小米 MIUI 关闭迅雷加速

此问题也会导致 Google Play 无法下载，关闭方法见[这里](https://github.com/shadowsocks/shadowsocks-android/issues/772)

#### 华为 EMUI 关闭加密 DNS

见[这里](https://club.huawei.com/thread-21446964-1-1.html)

### 移动 4G 下无法连接代理的问题

部分地区移动 4G 分配的 IPv6 会屏蔽海外，需要关闭 IPv6 解决问题，见[这里](https://zhuanlan.zhihu.com/p/94088821)

### 如果遇到部分应用不走代理如何解决 <a href="#rule-error" id="rule-error"></a>

**务必先**

1. 将代理模式选为全局代理
2. 在 bypass 应用中不要 bypass 任何应用（**特别注意系统应用也没有bypass到**）
3. 关闭 VPN，然后重新开启 VPN
4. 彻底关闭不走代理的应用，重新打开
5. 再次测试应用是否走代理
6. 如果应用恢复正常了，说明是自己的规则或者 bypass 规则有错误
7. 如果依然有问题，再到「最近请求」中查看 App 的请求是否正常

### Google Play 常见问题 <a href="#google-play-error" id="google-play-error"></a>

#### 下载不了软件

请不要把 下载管理器 放到了 bypass 的应用中，Google Play 下载依赖了它

#### DF-DFERH-01 错误

使用的规则没有让 `googleapis.cn` 域名走代理

### UDP 支持吗

目前已支持，单个节点后指定 udp-relay=true


# 如何正确的反馈 bug

在设置页面，选择邮箱反馈问题，此时 App 会自动带上必要的调试日志。

在邮件正文部分，请详细描述，问题是如何产生的。

典型的无用反馈：导入不成功、App 打不开、存不了配置、XXX 连不上。

软件使用上的求助请勿发送邮件，请带上具体的信息去相关群询问。至少需要

* 规则的完整配置文件（自行隐去节点信息）
* bypass 的完整配置

如果连基本的反馈能力都没有，就不要浪费彼此的时间。


# Introduction

### How to install <a href="#how-to-install" id="how-to-install"></a>

* <https://play.google.com/store/apps/details?id=com.getsurfboard>

### News <a href="#news" id="news"></a>

* ​[Telegram News Channel](https://t.me/surfboardnews)​
* ​[Telegram User Group](https://t.me/surfboardapp)
* ​[Twitter](https://twitter.com/getsurfboard)​

### How to use <a href="#how-to-use" id="how-to-use"></a>

If you have surge 2 config, just import and use

#### Will Not Support <a href="#will-not-support" id="will-not-support"></a>

* MITM ([Android Official Not Support](https://android-developers.googleblog.com/2016/07/changes-to-trusted-certificate.html))
* Rule
  * USER-AGENT (MITM is not available)
  * URL-REGEX (DOMAIN-SUFFIX are better)


