ShadowsocksR Windows端 PAC模式&代理規則

4年前 (2019-05-22) Yosheng 科學上網, 資訊教學 2評論 已收錄 16958℃

在使用 ShadowsocksR 中有不外乎三種模式「直連模式」、「PAC模式」、「全局模式」,大部分情況建議使用PAC模式智能去分析中國境內不使用代理而國外網站才使用代理,本篇文章主要說明PAC模式底下需要注意和配置的細節。

代理模式說明


圖片引用﹔vimcaw的个人博客-Shadowsocks(R)设置:系统代理模式、PAC、代理规则

  • 直連模式﹔所有連線直接連接不經過代理,相當於你沒有翻牆
  • 全局模式﹔所有連線全部走代理,如果是自己架設的盡量不要長時間使用全局會造成服務器節點被封鎖
  • PAC模式﹔引述自 Shadowsocks 进阶之 PAC

代理自动配置(Proxy auto-config,简称PAC)是一种网页浏览器技术,用于定义浏览器该如何自动选择适当的代理服务器来访问一个网址。
一个PAC文件包含一个JavaScript形式的函数“FindProxyForURL(url, host)”。这个函数返回一个包含一个或多个访问规则的字符串。用户代理根据这些规则适用一个特定的代理其或者直接访问。当一个代理服务器无法响应的时候,多个访问规则提供了其他的后备访问方法。浏览器在访问其他页面以前,首先访问这个PAC文件。PAC文件中的URL可能是手工配置的,也可能是是通过网页的网络代理自发现协议(Web Proxy Autodiscovery Protocol)自动配置的。

細說PAC.txt與user-rule.txt關係

本文章以當前最新版的SSR-4.9.2為例子,下載回來後內容如附圖,是沒有待會文中要提及的 pac.txt 和 user-rule.txt,後續會說明該如何操作才能產生這兩個文檔。



解壓縮後有兩個執行檔案 ShadowsocksR-dotnet2.0 和 ShadowsocksR-dotnet4.0

  • WinXP 使用 ShadowsocksR-dotnet2.0
  • Win7 以上使用 ShadowsocksR-dotnet4.0

執行後點選Import SSR links from clipboard...匯入節點參數接著查看系統工具列右下角如附圖,有以下兩個重點

  1. 小飛機圖式會根據不同模式展示不同顏色
    • 全局模式 白色
    • 直連模式 紫色〔版本4.7為白色〕
    • PAC模式 黃色 〔版本4.7為綠色〕
  2. 預設打開為全局模式,請切換到PAC模式


節點資訊可以自行上網搜尋免費或者找朋友提供本文不多加贅述,我自己是買服務器自己搭建

目前的結構目錄如附圖,點選 【編輯本地PAC文件】 和 【編輯GFWList的用戶規則】文件夾就會出現 pac.txt 和 user-rule.txt


打開 pac.txt 和 user-rule.txt 會發現 pac.txt 只有javascript程式碼而 user-rule.txt 只是說明


中國境內是無法訪問 read01.com 該網站的,默認打開如附圖就拿這個做例子


打開 user-rule.txt 添加規則如附圖


user-rule文件的语法规则

注意末尾不要忘记 ^ 符号,意思是要么在这个符号的地方结束,要么后面跟着?,/等符号。

自定义代理规则的设置语法与GFWlist相同,语法规则如下:

  1. 通配符支持。比如*.example.com/*实际书写时可省略*, 如.example.com/, 和*.example.com/*效果一样
  2. 正则表达式支持。以\开始和结束, 如 \[\w]+:\/\/example.com\
  3. 例外规则 @@,如 @@*.example.com/* 满足@@后规则的地址不使用代理
  4. 匹配地址开始和结尾 |,如 |http://example.comexample.com|分别表示以http://example.com开始和以example.com结束的地址
  5. || 标记,如 ||example.com 则http://example.comhttps://example.comftp://example.com等地址均满足条件
  6. 注释 !。 如 !我是注释

更多user-rule.txt语法规则,可以参考AdBlockPlus过滤规则https://adblockplus.org/en/filter-cheatsheet

接下點選 【更新PAC為GFWList】


這個時候你會發現原本的 PAC.txt 從3K變成 176K而且裏頭多了很多規則,拉到底會看到 user-rule.txt  添加的規則 如附圖


此時再打開 read01.com 已經可以正常訪問


後記

會寫這篇文章主要是要弄清楚 PAC.txt 和 user-rule.txt 關係,網路上流傳更改代理兩種方式一種是直接改 PAC.txt 另一種則是改 user-rule.txt ,比如這篇文章當下我再看是不明白的,雖然直接改PAC.txt確實會生效,不過是因為 【更新PAC為GFWList】 因為SSR版本老舊不會更新導致,新版本會自動去獲取github上最新規則,如果你是直接修改PAC.txt那麼每次修改配置都會被覆蓋上去,因此建議還是將自己的規則寫入 user-rule.txt 才妥當。

博主

擅長使用 C# 和 Java 開發項目,全棧開發工程師,前端主要使用 Vue 其次 Angular ,目前正在學習分布式架構,運維研發兼具,平時愛好鑽研技術並應用於實務當中,常駐於上海。

相關推薦

2 條評論

  1. avatar
    -49#

    为什么我在user-rule.txt文件里面写好规则之后,点击【更新PAC為GFWList】,pac文件并不会变化呢?还是3k

    fsfsfsf 於2021-01-22 14:08:17 評論 回覆
    • avatar

      @fsfsfsf 你先確認下你的SSR版本是什麼 有可能是該版本無法到github地址獲取最新的url清單導致的

      Yosheng 於2021-01-22 14:11:51 評論 回覆