Surge 使用手册:Rewrite 和 MitM

本文来自 Surge 使用手册|如何定制自己的规则配置 专题

接上一篇 Surge 使用手册:DNS

Rewrite

Surge 中的 Rewrite 分为两个部分 [Header Rewrite] 和 [URL Rewrite]

在 Surge 「首页」的「Rewrite」打开开关,然后看看「Header 修改」和「URL 重定向」

这两个功能如字面意思一个是修改 Header 一个是修改 URL 的,这方面的知识点不是很好解释那从致用性入手,我通过例子来告诉你大概是做什么的,如果有兴趣可自行深入了解还有什么玩法。

[Header Rewrite]

[Header Rewrite]
^https?:\/\/www\.zhihu\.com header-replace User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1 Safari/605.1.15

[Header Rewrite] 可以对 Header 进行修改,举个例子现下互联网上有种风气是「重 App 轻网页」什么都想往 App 上引流,这个操作的实现是当检测到你是使用手机访问时让故意不显示全部内容让你下载并从 App 打开,而判断是手机还是电脑访问就是根据前面讲规则时的 User-Agent,既然如此以知乎为例访问知乎时修改 User-Agent 相关内容让知乎以为你是在用桌面系统进行浏览的即可。(这个操作需要 MitM 开启并加入相关域名,这个稍后再说)

[URL Rewrite]

[URL Rewrite]
^https?:\/\/(www.)?(g|google)\.cn https://www.google.com 302

[URL Rewrite] 可以对 URL 进行修改和策略操作,举个例子大家使用国内某些浏览器的 Google 搜索前会先跳到 g.cn 域名再点按一下跳转至 google.com.hk,这个步骤非常多余,那么如上示例,使用正则表达式检测到 g.cn 或 google.cn 时直接跳转到 google.com 就可以直接显示结果了。

MitM

可以说 MitM 是配合 Rewrite 使用的,以前面知乎的例子,因为知乎目前使用了「HTTPS」加密是没办法像「HTTP」链接可以直接修改,所以使用 MitM 功能生成一个证书并且加入需要解密的地址(域名或 IP)

在 Surge 「首页」的「MitM」面板中开启开关,先进入「配置根证书」选项

 

选择「生成新的 CA 证书」

选择「安装证书」接着会自动跳到 Safari 浏览器一路确认下一步

可开启「跳过服务端证书验证」,安装完了证书还需要对其信任设置,这是很多人忽略的

打开「设置」选择「通用」

选择「关于本机」

在最下方选择「证书信任设置」

将刚才安装的证书打开即可。(你可能会发现图上的 ca-passphrase 和生成的图中不一致,这是因为我偷懒用了以前的图)

接着在 Surge 「首页 > MitM」面板中进入「主机名选项」在此处加入你需要解密的 IP 地址或者域名,理论上在此你可以使用通配符默认把所有流量都解密,但是如 Instagram 是有严格的安全策略仅信任某特定证书会导致应用本身不能正常使用。

最后,来看一份完整的配置

[General]
loglevel = notify
skip-proxy = 192.168.0.0/16, 193.168.0.0/24, 10.0.0.0/8, 172.16.0.0/12, 100.64.0.0/10, 17.0.0.0/8, 127.0.0.1, localhost, *.local
dns-server = system,119.29.29.29,223.5.5.5
allow-wifi-access = false
ipv6 = false

[Proxy]
1 = ss, 1.2.3.4, 443, encrypt-method=aes-128-gcm, password=password
2 = ss, 1.2.3.4, 443, encrypt-method=aes-128-gcm, password=password
3 = ss, 1.2.3.4, 443, encrypt-method=chacha20-ietf-poly1305, password=password, obfs=tls, obfs-host=yunjiasu-cdn.net
4 = ss, 1.2.3.4, 443, encrypt-method=chacha20-ietf-poly1305, password=password, obfs=http, obfs-host=bing.com

[Proxy Group]
PROXY = select, AUTO, 1, 2, 3, 4
AUTO = url-test, 1, 2, 3, 4, url = http://www.gstatic.com/generate_204

[Rule]
DOMAIN-KEYWORD,google,PROXY
FINAL,DIRECT

[Host]

[URL Rewrite]
^https?:\/\/(www.)?(g|google)\.cn https://www.google.com 302

[Header Rewrite]
^https?:\/\/www\.zhihu\.com header-replace User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1 Safari/605.1.15

[MITM]
skip-server-cert-verify = true
hostname = www.zhihu.com
ca-passphrase = 00297B51
ca-p12 = MIIKPAIBAzCCCgYGCSqGSIb3DQEHAaCCCfcEggnzMIIJ7zCCBF8GCSqGSIb3DQEHBqCCBFAwggRMAgEAMIIERQYJKoZIhvcNAQcBMBwGCiqGSIb3DQEMAQYwDgQIR5unoajcy4ECAggAgIIEGEJMJmv7TXskjMp3/R473eZFnR+9zi2XWXW3d5vC/aVe1IJQhQNmLh/tSjLmdN82jXIF/VKZj3i2LZXWAT+ntgrRvgn8Tl+SxERXT1NXPtPIamXhrOFGt709vmyTd+XULF5yXLnn3gPuCLQYsR0m6CWSPNgbB85f1m/AORy+B+urSh/Ocdz1hFUXpAOgAYkZGbZoUZJNVlayPascA4lJ7E+vreqKyxl6nYchXoMh3l2W0k+paYa4/mubqwlLm6gKyVEQVjrDWnF1qieqauHX2FWgddLyIzFHe4LjWdLt41nwNc8Pjl3/p7gQ80fECrDjIhgDiiSy3Q+ZpjDaCvJhF3SMM0eS+nOwlnrvJMJu1u1J37km+Op/MhANFpKvA+cGYQRtGA3PSQpqA7138+iLvgH2PdRsDVXJ0XV+RdteoI4Xd6lyUq1E3cd0VSspKvnkiMWT86o6Xwksm/WfGvm9RlJ6CkeQUob4/xmScYS2D3sks6E/T3k9GrSthNPeXY0PxmVWCBdG8oScNz0qZefiTND+dcdUkbeVoc3fb6ette4ldsZCzjh3udFk1zjZulUUPvXviZkqdggMHb+C4MWaArQ78t2RZZ13BzzapxiVyeiI3Sf5ro2tcqtHJs0dKA86xKVCL44h7s+pj6orXONS/iicFt1n+PmEsGPJ4gAdpQG4Zh1YOvbNZq9qufRkABeNMiUu/GeUFHgsI/Cfb2nuEpm2TVwy04IrYmEn2RNTZkJ09H2pKNpMc+wsGyNfdBkHPi9gssBgwuf7nnE2JNgrPdkQflq/TjXp/oAKq6IpiocbzboqaK/l3UCe2/J2/AIyQA+TW+lZpHBIZb4q7FRIZzYi3Wl0Ua/N7XooGyMx8HoGS0vU/1hWT07kYvZ3pxzVjCEWZ54nmv/d2DOV7X0FwBun5cZJRkWmmR6KU3zWFDi4o0wlRCk0otKl88SncUUWf/0YRGbwUdcWxVG+rWjHxnuyjoWXvpN/rMgqsYXX+WjhZJy5ii/k0K+Dv+PoRJrR5ec9dbnNjjmRinYjUKJ5nXyTIUMN97dcDyLH+h6D2EH3z9OkjQpvKiF3QWaiQpzNg62T0iDDJnu8n4Zi9VGIShDjM3VhNxBuBQQsSETfgCjh9/UmzsH7/DZLlzRV/0/Jml2d7CC4/Na2AaUw3d+kzxVQbDXkH2kij4VVC9g62ghyHTL2ZCZlBigWD6XfrNXvW3XaWR0tPuqRcL4x4qPKG/QDV4hkMn25pFXeYKtvm3MFr7cHSsTadsMxkJOAwRkjwDXN2LXLpG1U3Y/TqOQ1tt52+NoUZGjooi1lTJWDXWBVoykGCJhS/ZCRVt6OGsF4luE2DhyC5Bl55tU1wPBFqao5y9pZz+GJQ9MbSV8azVqNnQCmhUbdK/owggWIBgkqhkiG9w0BBwGgggV5BIIFdTCCBXEwggVtBgsqhkiG9w0BDAoBAqCCBO4wggTqMBwGCiqGSIb3DQEMAQMwDgQIRh410OHaEvYCAggABIIEyBeAsJocZCngW9eqzIDZhW99OKL3og+uU5OlYIJjeqA64r8MD6z2wVUceTgb6CXrU2+zlRErUMePKkWDsGjWEbHPebz87HT5lHaO3b/38JL1bbpcXyUkFNejgnP0N8sz43sjSPBapwkm0SbURrdHtutWUUh145TFlXP/GMhFpn8K6LHYRkZD/0vb5E4F9dPYZKsQC5nd4TtlD+j4Z7wn7w2PLZDxw1u1M9Z8T3amm4mWFW6jm6BHP6Iy4I03hUEdcLpqRCt3TfB0jyH51nL8yheQ5oWwZ/Yn5Z75MIptoyC68MqcTYpMDSJCJ5D40k1v91W63TwgXMnx4LbGlbEghYi9APbAAX+U6yDRZ/vG56xdrTqr/so6ozl3GfA5r8012l0s2Um8GOyX47u5lBz2XR56r441XUG1+0ZovcpEN4dhodYKNCS/O8lKxQLiUFnCNj9QtcIHzKq9lIFAXxFJNJ4yagwLJwyTEnMt3g5/bTvh94E8zK0vuCeeL+93dp1X1TDZ5emIZSmotwitk+pIXMlrvwiZ/k+Aq4xheLpDMrIYl+J6gIU1x5UcdvkXAb9JI9817fJ7C9aKv+D8ir4Mnjexb8jxJ4hzWjCVWzbaXlNijmPW73yTY4pNPnxPrCdSN/QQZ3kV1vVM0EkWj4RE6096Z28NR2jzLXmuJC8sS32rL/9wQAWy1M72mnnFUEkFmOdqHmsKhojYfaNIS3jF2NqnoIF9QixAmb8wQNv4eb3FqWg3c5KlvozYfW6XPNSFZOdwOFR7qEQQo86Y5mjDoSZ8Y0GKoXNtLwgC+M5qIvYqk7de1hYxSP3YmS4FvkwgQ0NsaHMuShuoam+GU/GAMSIWqr60ISRMLnEM/6w3Ft8c4aw2mee/TfM7DNATHCJnrfoL/Soqy9f7W7uMZaKb+p+zFyDLSBJ3wTCGE4nodcBeZ0FNPOka9Hs4ymb+7reD9CeTTZ1ezQxcE6SvT0PxTc5hUvhdZI0JRfWlE8MWXmoKIbqmnYcKJBrNJKPiXNjayN61alkx/vJVZRirCPJBpGp2U1Jegx2dfAQANt/WA/WBr1GKhFr6RbDqcBs8nvzmDsLA7hTsC8ZUxUoM+CJpxB0/qtoLKhA1LMeYoGRO97xs2YIYJGjorusuDvYGhw62njBPHbwRiXuSoxHUl880PbvDKIoRw/+305yJXeWUAkTA2OKW02rdxEm+rUU1xw9xF0RISZWsZqczOgIwJ/F5PUc7qEnrB1WjNtllZjB/hHAK/q68dnbGBZhZzXSLulhJSYZuSoRbRYRRU7DCpulGismZUOwTK/sNWmjNhcS7R5tZwzT2xiCEvScJn+o3GlAwIn4g5EMkITvhKeJ98JVm8KuU0oCqBHGeqejnhigX8luj1+vTdbEAlmlftXc2E7BkSiji2oA2t4Xb7LSdJIozHFFuzNI/bJ7TvYhFBhz5L5Cma7wAMe2JREJ5tyYjYw2qoOJer1ASVRoT38smQyfcFP3CHtuHJtoyQCYrxdLnZCE7HE3PglrODDx/uXJ4uzwjyVcCva5wpF05M3A8OzrTDgmOJbEqj6k0SlplTUJ0k2aLl05Zi99jn7ViTRaF+SAKuhHotcJMJ5taO9LseRRrN1LFUlE2Xzlx8DFsMCMGCSqGSIb3DQEJFTEWBBTNVR7wcKlbsd7PQEoL0Lu++VXDPzBFBgkqhkiG9w0BCRQxOB42AFMAdQByAGcAZQAgAEcAZQBuAGUAcgBhAHQAZQBkACAAQwBBACAAMAAwADIAOQA3AEIANQAxMC0wITAJBgUrDgMCGgUABBTJiD1hSNAwGLs6Jv4bP+nKe9EikwQI8QEvat2hssE=

如上进行配置后现在使用浏览器打开 g.cn 和知乎看看效果吧。

实践详解

最后,再给大家捋一捋,首先是细心的朋友会发现如上配置中 Google 的部分没有将相关域名加入 MitM,是因为操作 Google 域名时不需要修改到域名之后的部分,如 xxx.com/changeThis,只是将 http 修改成 https 的 google.com 域名上。

然后,针对知乎、百度知道的规则部分是这样

...
[Header Rewrite]
^https?://www\.zhihu\.com header-replace User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.2 Safari/605.1.15
^https?://zhidao\.baidu\.com header-replace User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.2 Safari/605.1.15

[MITM]
skip-server-cert-verify = true
hostname = www.zhihu.com,zhidao.baidu.com
...

先说 MitM,因为是对 HTTPS 网站(知乎和百度基本是全站 HTTPS 了)所以需要针对域名对加密做解密,推荐的做法是对具体域名做解密,比如百度知道的域名是 zhidao.baidu.com 那么 MitM 中也是如此设置,或者是使用通配符如 *.baidu.com 那么所有对百度二级以上域名都会解密,这样对做法确实是省事但如上所述个别网站有存在严格安全策略,那么如果使用了通配符解密,假设 www.baidu.com 进行了严格安全策略就会造成 www.baidu.com 打不开等问题。

接着细说 Rewrite 规则部分

正则表达式基本学习和实践网站:

  • http://www.runoob.com/regexp/regexp-syntax.html
  • https://c.runoob.com/front-end/854
# ^ 代表从什么开始
# ? 表示零次或一次
# 特殊符号需要使用 \ 进行转义
^https?:\/\/www\.zhihu\.com

以上规则意思结果为:

从 http 开始,匹配带或者不带 s 也就是 http 或者 https,之后的反斜杠 \ 用于转义特殊字符(常见的有斜杠 /、英文句号 .、问号 ? 等等)从严谨的角度来说建议加上,当然你也会发现不加规则也是能使用的。

Conners Hua

这个家伙很懒,什么都没有留下。

您可能还喜欢...

发表评论

电子邮件地址不会被公开。 必填项已用*标注