摘要

Surge 是一个在 macOS 和iOS 平台上的网络工具,可以实现网络流量的接管、处理、转发和截获。本文介绍Surge的多配置文件聚合方法,讲解如何通过编写Surge配置文件实现多个配置文件中规则、服务器资源等配置内容的聚合使用。

1. Surge配置原理

Surge 核心的功能由配置文件(Profile)所控制,当遇到一些特殊需求时,需要通过手动编辑配置文件方可实现。

Surge的配置以格式化文本的方式保存在配置文件中,Surge图形界面的策略和策略组、规则、DNS等内容都是配置文件中内容的直观呈现,要想自定义Surge配置,最简洁的方式就是直接编辑Surge配置文件。

2. Surge托管配置

Surge的配置文件分为三类:

  1. 普通配置:即手动创建或默认使用的一般配置文件。
  2. 托管配置:通常由企业管理员或服务商提供。托管配置由于可以被远程更新,所以不可以在本地进行修改。如需要进行修改应先创建副本变为普通配置。
  3. 企业配置:仅限企业版本,不可修改和查看,也不可建立副本。

有些机场提供的URL链接的配置文件是托管配置类型,但还有一些提供的是普通配置类型,普通配置类型不会自动更新,我们可以通过手动修改普通配置的配置文件,实现将普通配置文件转换为托管配置文件而获得自动更新功能。

根据官方文档:

如果配置文件以#!MANAGED-CONFIG http://test.com/surge.conf interval=60 strict=true开始,则 Surge 会自动的从 URL 更新配置文件,配置文件仅在 Surge 主程序运行时更新。

由此可知,在普通配置文件的开头加入以下信息即可将其转换为托管配置类型,这样即可以自动更新配置内容了。

#!MANAGED-CONFIG (此处替换为机场提供的配置文件URL) interval=60 strict=true

3. Surge多配置文件聚合配置

当使用超过一个机场的时候,我会希望可以将多个机场的服务器配置聚合到同一个配置文件中。本文以聚合两个托管配置源为例讲解多配置文件聚合配置方法。

(1)找到配置文件

通过“更多” -> ”配置“ 可以打开如图1所示的配置窗口,在配置窗口中可以查看和修改配置文件。图中有两个托管配置文件“Source1”和“Source2”分别来自两个不同的订阅源;SumUpcomfig配置文件是为了对“Source1”和“Source2”进行聚合操作而手动建立的普通配置文件。图中的SumUpcomfig为typo,实际应为SumUpconfig;配置文件命名对配置没有实际影响。如果没有可以更改的普通配置文件,则需要手动新建一个配置文件。

(2)编辑配置文件

右键点选配置文件可以看到操作选项,如图2所示。选择在“文本编辑器中编辑”可以使用本机默认的文本编辑器打开配置文件;选择“在访达中显示”可以查看文件位置并手动打开配置文件。

Surge的配置文件的格式部分沿用了 INI 文件的格式,以 [Section] 进行分段,用于划分不同的段落,对设置内容进行区隔。

在每个分段,如果想引用某个文件配置的某个部分,则需要在相应的地方输入”#!include 配置文件名“。比如,以本文的SumUpConfig配置文件为例,以下内容就代表引用source1.conf配置文件的[General]部分。

[General]
#!include source1.conf

再比如,以下内容代表引用source1.conf和source2.confg两个配置文件的Proxy部分。Proxy部分包括了代理服务器的配置信息,是在实际应用中主要需要聚合的内容。

[Proxy]
#!include source1.conf,source2.conf

依此类推,聚合配置的整体文件内容如下。通过这种方式,聚合了source1.conf和source2.confg两个配置文件的代理服务器资源,在其余配置部分则只使用了source1.conf的配置内容。

[General]
#!include source1.conf [Replica]
#!include source1.conf [Proxy]
#!include source1.conf,source2.conf [Proxy Group]
#!include source1.conf [Rule]
#!include source1.conf [URL Rewrite]
#!include source1.conf

参考

Surge 配置文件指引 - Surge Tech Community

Surge多配置文件聚合配置方法的更多相关文章

  1. shell 环境变量的相关配置文件和配置方法

    shell 环境变量的相关配置文件和配置方法: bash 的配置文件: 全局配置: /etc/profile, /etc/profile.d/*.sh, /etc/bashrc 个人配置 ~/.bas ...

  2. MySql互为主从配置文件及配置方法

    # Example MySQL config file for medium systems. # # This is for a system with little memory (32M - 6 ...

  3. postcss.config.js配置文件的配置方法

    module.exports = { plugins: { 'autoprefixer': {}, } }

  4. log4net 配置文件配置方法

    转自:http://www.dozer.cc/2013/06/log4net-config-file-order/ 最近把项目中所有的日志都改成了 log4net ,同事也蠢蠢欲动,用起了 log4n ...

  5. CentOS 6.3下Samba服务器的安装与配置方法(图文详解)

    这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下   一.简介  Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...

  6. CentOS防火墙iptables的配置方法详解

    CentOS系统也是基于linux中的它的防火墙其实就是iptables了,下面我来介绍在CentOS防火墙iptables的配置教程,希望此教程对各位朋友会有所帮助. iptables是与Linux ...

  7. 使用配置文件来配置JDBC连接数据库

    1.管理数据库连接的Class 代码如下: package jdbcTest;import java.sql.Connection;import java.sql.DriverManager;impo ...

  8. Wampserver 2.5 多站点配置方法

    写在开头:本文适用于wampserver2.5版本,和wamp的老版本配置有语法上的区别,笔者正是因为被老版本的配置办法给整迷糊了所以才总结了一篇针对2.5版本的配置方法,如果您还停留在1.x或着已经 ...

  9. XAMPP中proftpd的简明配置方法

    XAMPP中proftpd的简明配置方法   用LAMPP的安装方法可以开一个默认的nobody用户,用lampp security就可以初始设置相应的默认用户密码.如果要有多用户,又怎样管理.目录怎 ...

  10. Spring AOP基于配置文件的面向方法的切面

    Spring AOP基于配置文件的面向方法的切面 Spring AOP根据执行的时间点可以分为around.before和after几种方式. around为方法前后均执行 before为方法前执行 ...

随机推荐

  1. 2 JavaScript的基础类型

    2 JavaScript的基础类型 JS虽然是一个脚本语言. 麻雀虽小, 五脏俱全. 在js中也是可以像其他编程语言一样. 声明变量, 条件判断, 流程控制等等. 我们先看一下JS中的数据类型 在js ...

  2. #特殊判断#牛客练习赛71 A 回文数

    题目 分析 首先出现奇数次的数超过1显然无解 并且只有多个0或者只有一个非0数字并且其它都是0也无解 然后由于没有前导0所以先要找到最小的非0数,先占据首尾 最后按照常规方法前一半从左到右依次递增 注 ...

  3. 小师妹学JavaIO之:文件写入那些事

    目录 简介 字符输出和字节输出 格式化输出 输出其他对象 在特定的位置写入 给文件加锁 总结 简介 小师妹又对F师兄提了一大堆奇奇怪怪的需求,要格式化输出,要特定的编码输出,要自己定位输出,什么?还要 ...

  4. 带你玩转OpenHarmony AI:基于Seetaface2的人脸识别

    简介 随着时代的进步,全民刷脸已经成为一种新型的生活方式,这也是全球科技进步的又一阶梯,人脸识别技术已经成为一种大趋势,无论在智慧出行.智能家居.智慧办公等场景均有较广泛的应用场景,本文介绍了基于Se ...

  5. Spring内存马分析

    环境搭建 踩了很多坑....,不过还好最后还是成功了 IDEA直接新建javaEE项目,然后记得把index.jsp删了,不然DispatcherServlet会失效 导入依赖: <depend ...

  6. pprof - 在现网场景怎么用

    如何使用 pprof 来定位现网 Golang 问题,已经是一名 Gopher 所需要掌握的必备技能了.我们在实际工作中也经常使用它来定位现网问题.网上有很多文章来描述 pprof 的使用,但是实际的 ...

  7. XML文档节点导航与选择指南

    XPath(XML Path Language)是XSLT标准的主要组成部分.它用于在XML文档中浏览元素和属性,提供了一种强大的定位和选择节点的方式. XPath的基本特点 代表XML路径语言: X ...

  8. keycloak~对架构提供的provider总结

    提供者目录 Provider Authenticator BaseDirectGrantAuthenticator AbstractFormAuthenticator AbstractUsername ...

  9. go切片和指针切片

    转载请注明出处: 在Go语言中,切片(Slice)和指针的切片(即切片中每个元素都是指向某种数据类型的指针)是两个不同的概念,它们各自具有特定的用途和优势. 切片(Slice) 切片是对数组的一个连续 ...

  10. centos 6.4更新163源

    centos 6.4更新163源   1. 备份现在的源文件    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base. ...