{"id":13775784,"url":"https://github.com/nidom/buff","last_synced_at":"2025-05-11T08:33:24.325Z","repository":{"id":147455938,"uuid":"52350558","full_name":"nidom/Buff","owner":"nidom","description":"A proxy tool for macOS.","archived":false,"fork":false,"pushed_at":"2017-03-27T12:17:26.000Z","size":5,"stargazers_count":52,"open_issues_count":5,"forks_count":5,"subscribers_count":6,"default_branch":"master","last_synced_at":"2024-08-03T17:12:14.650Z","etag":null,"topics":["country-ip","macos","proxy"],"latest_commit_sha":null,"homepage":"https://www.plutox.top/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nidom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2016-02-23T10:22:56.000Z","updated_at":"2024-07-09T20:07:51.000Z","dependencies_parsed_at":null,"dependency_job_id":"a78794a6-4b93-49b0-807b-d84d5d6ac950","html_url":"https://github.com/nidom/Buff","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nidom%2FBuff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nidom%2FBuff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nidom%2FBuff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nidom%2FBuff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nidom","download_url":"https://codeload.github.com/nidom/Buff/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225027561,"owners_count":17409460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["country-ip","macos","proxy"],"created_at":"2024-08-03T17:01:49.690Z","updated_at":"2024-11-17T10:32:03.680Z","avatar_url":"https://github.com/nidom.png","language":null,"funding_links":[],"categories":["\u003ca id=\"d03d494700077f6a65092985c06bf8e8\"\u003e\u003c/a\u003e工具"],"sub_categories":["\u003ca id=\"0ff94312f3ab4898f5996725133ea9d1\"\u003e\u003c/a\u003e未分类"],"readme":"# Buff\n\n### A proxy tool for macOS.\n\n\u003ca href=\"https://itunes.apple.com/cn/app/plutox/id1176077430?mt=12\"\u003e\u003cimg src=\"https://www.plutox.top/img/download.png\" width = \"210\" height = \"80\"/\u003e \u003c/a\u003e\n\n\n## 自定义规则\n[ss(r)内置规则模板](https://github.com/nidom/buff/blob/master/config.ss.general.yaml)\n\n##语法\n自定义配置使用YAML标准格式，通过 [YAML官网](http://www.yaml.org/) 或 [docs.ansible.com](http://docs.ansible.com/ansible/YAMLSyntax.html) 了解语法。\n\n\u003e Note：YAML对缩进非常严格，并且只能用空格。\n\n\n##基本概念\nrule 和 adapter 是自定义配置的两个核心概念：rule表示规则，用于匹配网络请求，网络请求匹配到某条规则之后，会被分配到相应的adapter上。示例是一条 Country rule，当请求对应的IP归属中国，那么请求将被分配到名为 adapterName 的 adapter 上。\n\n```\n - type: country\n   country: CN\n   match: true\n   adapter: adapterName\n```\n       \n一个自定义规则中可以包含多个 rule 和 adapter。除了 direct 这个内置的 adapter，每个 adapter 需要定义唯一的 id 。每条 rule 我们需要给它指定相应的 adapter 。\n\n一个自定义配置的框架如下：\n\n```\n\nadapter:\n - id: adapter1\n   ...\n - id: adapter2\n   ...\nrule:\n - type: iplist\n   adapter: adapter1\n   ...\n - type: country\n   adapter: adapter2\n   ...\n```\n\n##Adapter详解\nBuff支持以下几个类型的Adapter\n####HTTP(S)\nHTTP代理\n\n```\n - id: httpAdapterName\n   type: HTTP\n   host: http.host\n   port: 8080\n   auth: true #可选，是否需要身份验证\n   username: proxy_username #可选\n   password: proxy_password #可选\n```\nHTTPS代理\n\n```\n - id: httpAdapterName\n   type: SHTTP\n   host: http.proxy.connect.via.https\n   port: 8080\n   auth: true #可选，是否需要身份验证\n   username: proxy_username #可选\n   password: proxy_password #可选\n```\n\n####SOCK5\nsocks5代理\n\n```\n - id: socks5AdapterName\n   type: socks5\n   host: socks5.host\n   port: 3128\n```\n####SS\nSS代理\n\n```\n - id: ssAdapterName\n   type: ss\n   host: ss.host\n   port: 1024\n   method: AES-128-CFB   #可选   AES-128-CFB, AES-192-CFB, AES-256-CFB, chacha20, salsa20, rc4-md5\n   password: ss_password\n   protocol: origin   #可选 origin(无)、verify_sha1(OTA)\n   obfs: origin      #可选 origin(无)、http_simple、tls1.2_ticket_auth\n   obfs_param: \"\"\n```\n####Speed\nspeed用于选择最快连接成功的线路，\n\u003e每次网络请求， speed 都会连接所有线路，选择最快连接成功的线路。\n\n```\n - id: speedAdapterName\n   type: speed\n   adapters:\n    - id: adapter1\n      delay: 300 # 延时300毫秒\n    - id: adapter2\n      delay: 300\n    - id: adapter3\n      delay: 300\n    - id: direct\n      delay: 0\n```\n####Reject\nreject会抛弃网络请求\n\n```\n - id: reject\n   type: reject\n   delay: 300 #延时300毫秒\n```\n####Direct\n直连网络\n\n```\n内置 adapter ，不需要定义\n```\n##Rule详解\n\u003erule 自上而下匹配的，以第一次匹配为准，所以rule书写的前后顺序会影响结果\n\n####Country\n同个IP判断归属国家\n\n```\n - type: country\n   country: CN # ISO Country code,‘--’表示未知国家\n   match: true #是否匹配\n   adapter: adapterName\n```\n####Domain List\n匹配域名列表，criteria中的p,k,s,r分别表示 prefix (前缀)，keyword(关键词),suffix(后缀),regex(正则表达式)\n\n\n```\n - type: domainlist\n   criteria:\n    - p,ad\n    - k,google\n    - s,ad.com\n    - r,google+.\\.com\n   adapter: adapterName\n```\n\n####IP List\n匹配IP列表\n\n```\n - type: iplist\n   criteria:\n    - 127.0.0.0/8\n    - 192.168.0.0/16\n    - 10.0.0.0/8\n    - 224.0.0.0/8\n    - 169.254.0.0/16\n   adapter: adapterName\n```\n\n####List\nlist规则是一组doamin的正则表达式\n\n```\n  - type: list\n    criteria:\n      - \\.cn\n      - zhihu\\.com\n    adapter: adaterName\n```\n####DNSFail\nDNS解析错误的时候匹配\n\n```\n - type: dnsfail\n   adapter: adapterName\n```\n####All\n匹配所有网络请求\n\n```\n - type: all\n   adapter: adapterName\n```\n##示例\n####所有请求走SS代理\n这是最简单的一个自定义规则\n\n```\nadapter:\n - id: ss_proxy\n   type: ss\n   method: ss_method\n   host: ss_host\n   port: ss_port\n   password: ss_password\nrule:\n - type: all\n   adapter: ss_proxy\n```\n####稍微复杂一点的规则\n内网IP和中国IP不走代理，美国和日本的网站连接位于东京的SS代理，其他国外网站连接香港的HTTPS代理。\n\u003e注：不同的 rule 可以指向相同的 adapter\n\n\n```\n\nadapter:\n - id: tokyo_ss_proxy\n   type: ss\n   method: ss_method\n   host: ss_host\n   port: ss_port\n   password: ss_password\n - id: hk_https_proxy\n   type: http\n   host: http.host\n   port: 8080\n   secured: true\n   auth: true\n   username: proxy_username\n   password: proxy_password\nrule:\n - type: domainlist\n   criteria:\n    - 127.0.0.0/8\n    - 192.168.0.0/16\n    - 10.0.0.0/8\n    - 224.0.0.0/8\n    - 169.254.0.0/16\n   adapter: direct\n - type: country\n   country: US\n   match: true\n   adapter: tokyo_ss_proxy\n - type: country\n   country: JP\n   match: true\n   adapter: tokyo_ss_proxy\n - type: country\n   country: CN\n   match: true\n   adapter: direct\n - type: all\n   adapter: hk_https_proxy\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnidom%2Fbuff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnidom%2Fbuff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnidom%2Fbuff/lists"}