GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

JinnLynn

genpac – PAC / Dnsmasq / Wingyファイルジェネレータはgfwlistを使用してカスタムルールをサポート

投稿日:

PAC / Dnsmasq / Wingyファイルジェネレータはgfwlistを使用してカスタムルールをサポートします。

GenPAC

gfwlistは多種多様なソフトウェアを配置して、ファイルを生成し、サポートするように設計されています。

安眠

# 安装
$ pip install genpac
# 或从github安装开发版本
$ pip install https://github.com/JinnLynn/genpac/archive/master.zip

# 更新
$ pip install --upgrade genpac
# 或从github更新开发版本
$ pip install --upgrade https://github.com/JinnLynn/genpac/archive/master.zip

# 卸载
$ pip uninstall genpac

注意:インストールが完了すると、インストールが完了し、インストールが完了し、インストールが完了すると、インストールが完了します。インストールが完了すると、インストールが終了します。 ~/.local/bin 、遇到这种情报、将~/.local/bin追加系統路径、または卸ダウンロード重新使用sudo安装、都道府県。

使用方法

genpac [-v] [-h] [--init [PATH]] [--format {pac,dnsmasq,wingy}]
       [--gfwlist-url URL] [--gfwlist-proxy PROXY]
       [--gfwlist-local FILE] [--gfwlist-update-local]
       [--gfwlist-disabled] [--gfwlist-decoded-save FILE]
       [--user-rule RULE] [--user-rule-from FILE]
       [--template FILE] [-o FILE] [-c FILE]
       [--pac-proxy PROXY] [--pac-precise] [--pac-compress]
       [--dnsmasq-dns DNS] [--dnsmasq-ipset IPSET]
       [--wingy-adapter-opts OPTS] [--wingy-rule-adapter-id ID]

获取gfwlist生成多种格式的翻墙工具配置文件, 支持自定义规则

optional arguments:
  -v, --version         版本信息
  -h, --help            帮助信息
  --init [PATH]         初始化配置和用户规则文件

通用参数:
  --format {pac,dnsmasq,wingy}
                        生成格式, 只有指定了格式, 相应格式的参数才作用
  --gfwlist-url URL     gfwlist网址,无此参数或URL为空则使用默认地址, URL为-则不在线获取
  --gfwlist-proxy PROXY
                        获取gfwlist时的代理, 如果可正常访问gfwlist地址, 则无必要使用该选项
                        格式为 "代理类型 [用户名:密码]@地址:端口" 其中用户名和密码可选, 如:
                          SOCKS5 127.0.0.1:8080
                          SOCKS5 username:password@127.0.0.1:8080
  --gfwlist-local FILE  本地gfwlist文件地址, 当在线地址获取失败时使用
  --gfwlist-update-local
                        当在线gfwlist成功获取且--gfwlist-local参数存在时, 更新gfwlist-local内容
  --gfwlist-disabled    禁用gfwlist
  --gfwlist-decoded-save FILE
                        保存解码后的gfwlist, 仅用于测试
  --user-rule RULE      自定义规则, 允许重复使用或在单个参数中使用`,`分割多个规则,如:
                          --user-rule="@@sina.com" --user-rule="||youtube.com"
                          --user-rule="@@sina.com,||youtube.com"
  --user-rule-from FILE
                        从文件中读取自定义规则, 使用方法如--user-rule
  -o FILE, --output FILE
                        输出到文件, 无此参数或FILE为-, 则输出到stdout
  -c FILE, --config-from FILE
                        从文件中读取配置信息
  --template FILE       自定义模板文件

PAC:
  通过代理自动配置文件(PAC)系统或浏览器可自动选择合适的代理服务器

  --pac-proxy PROXY     代理地址, 如 SOCKS5 127.0.0.1:8080; SOCKS 127.0.0.1:8080
  --pac-precise         精确匹配模式
  --pac-compress        压缩输出
  -p PROXY, --proxy PROXY
                        已弃用参数, 等同于--pac-proxy, 后续版本将删除, 避免使用
  -P, --precise         已弃用参数, 等同于--pac-precise, 后续版本将删除, 避免使用
  -z, --compress        已弃用参数, 等同于--pac-compress, 后续版本将删除, 避免使用

DNSMASQ:
  Dnsmasq配合iptables ipset可实现基于域名的自动直连或代理

  --dnsmasq-dns DNS     生成规则域名查询使用的DNS服务器,格式: HOST#PORT
                        默认: 127.0.0.1#53
  --dnsmasq-ipset IPSET
                        转发使用的ipset名称, 默认: GFWLIST

WINGY:
  Wingy是iOS下基于NEKit的代理App

  --wingy-adapter-opts OPTS
                        adapter选项, 选项间使用`,`分割, 多个adapter使用`;`分割, 如:
                          id:ap1,type:http,host:127.0.0.1,port:8080;id:ap2,type:socks5,host:127.0.0.1,port:3128
  --wingy-rule-adapter-id ID
                        生成规则使用的adapter ID

ファイルの配置

サポートされているサンプル – config.ini

自定义规则

サポートされていない場合は、ユーザ名を使用し--user-rule-fromください。–user --user-rule-fromユーザ定義ルールを使用すると、ユーザ定義ルールを使用することができます。

独自の規則文法のリファレンスsample / user-rules.txt

自称规则的语法とgfwlistと同義、AdBlock Plusの使用法( http://adblockplus.org/en/filters )、简例:

  1. 通訳符支持、如*.example.com/*实际书写时可可省略* .example.com/
  2. 正式表式式支持、以来、 \[\w]+:\/\/example.com\\
  3. 例外规则@@ 、如@@*.example.com/* 。example.com/ @@*.example.com/*
  4. |匹配地址开始和结尾| 、何|http://example.com example.com|分別表示以来http://example.com开始和example.com結束的地址
  5. ||标记、如||example.comhttp://example.com https://example.com ftp://example.com等地方均杭州条件
  6. 注釈!どっ! ! Comment

設定する必要がありますか?

ユーザルール> user-rule-from> gfwlist

よくある質問

  1. PAC格式中、パラメータ – --pac-precise匹配--pac-precise的作用是什么?

    1.4.0より後に生成されたPACファイルは、 .ftchinese.com/channel/video下でftchinese.comに転送され、ftchinese.comに存在し、下位の繁體PACファイルサイズは、PACファイルのサイズが、一定のレベルをpac-precise=true即時。

  2. 出現fetch gfwlist fail.

    gfwlistを使用している人は、その人の情報が失われている可能性があります。

    • --gfwlist-proxy使用して--gfwlist-proxy通した
    • それ以外の方法では、再配布--gfwlist-local加载
    • 使用法パラメータ--gfwlist-url=-ユーザ定義ルールを使用して、
  3. gfwlist搜取代理使用失败

    • 检查–gfwlist-proxyパラメータまたは配置gfwlist-proxy値型格符合なしTYPE HOST:POST 、その他SOCKS5 127.0.0.1:1080、PROXY 127.0.0.1:8080
    • OSX Linuxの場合、http_proxy、https_proxy環境変数、代理有り法使用
  4. genpac命令未找到

    见前文安装章節注意事项。

# 从gfwlist生成代理信息为SOCKS5 127.0.0.1:1080的PAC文件
genpac --format=pac --pac-proxy="SOCKS5 127.0.0.1:1080"

# 从~/config.ini读取配置生成
genpac --config-from=~/config.ini

# PAC格式 压缩
genpac --format=pac --pac-proxy="SOCKS5 127.0.0.1:1080" --pac-compress

# PAC格式 精确匹配模式
genpac --format=pac --pac-proxy="SOCKS5 127.0.0.1:1080" --pac-precise

# PAC格式 自定义规则
genpac --format=pac --pac-proxy="SOCKS5 127.0.0.1:1080" "SOCKS5 127.0.0.1:1080" --user-rule="||example.com" --user-rule-from=~/user-rule.txt
genpac --config-from=~/config.ini --pac-proxy="SOCKS5 127.0.0.1:1080" --user-rule="||example.com" --user-rule-from=~/user-rule.txt

# PAC格式 多个自定义规则文件
genpac --format=pac --pac-proxy="SOCKS5 127.0.0.1:1080" --user-rule="||example.com" --user-rule="||example2.com" --user-rule-from=~/user-rule.txt,~/user-rule2.txt

# PAC格式 使用HTTP代理127.0.0.1:8080获取在线gfwlist文件
genpac --format=pac --pac-proxy="SOCKS5 127.0.0.1:1080" --gfwlist-proxy="PROXY 127.0.0.1:8080"

# PAC格式 如果在线gfwlist获取失败使用本地文件,如果在线gfwlist获取成功更新本地gfwlist文件
genpac --format=pac --pac-proxy="SOCKS5 127.0.0.1:1080" --gfwlist-local=~/gfwlist.txt --update-gfwlist-local

# PAC格式 忽略gfwlist,仅使用自定义规则
genpac --format=pac --pac-proxy="SOCKS5 127.0.0.1:1080" --gfwlist-disabled --user-rule-from=~/user-rule.txt
genpac --format=pac --pac-proxy="SOCKS5 127.0.0.1:1080" --gfwlist-url=- --user-rule-from=~/user-rule.txt

# DNSMASQ WINGY格式同样可以使用上述PAC格式中关于gfwlist和自定义规则的参数

# DNSMASQ格式
genpac --format=dnsmasq --dnsmasq-dns="127.0.0.1#53" --dnsmasq-ipset="ipset-name"

# WINGY格式 使用默认模板生成
genpac --format=wingy --wingy-opts="id:do-ss,type:ss,host:192.168.100.1,port:8888,method:bf-cfb,password:test" --wingy-rule-adapter-id=do-ss

# WINGY格式 使用自定义模板
genpac --format=wingy --template=/sample/wingy-tpl.yaml







-JinnLynn
-, , , , , , ,

執筆者: