Surge多配置文件聚合配置方法
摘要
Surge 是一个在 macOS 和iOS 平台上的网络工具,可以实现网络流量的接管、处理、转发和截获。本文介绍Surge的多配置文件聚合方法,讲解如何通过编写Surge配置文件实现多个配置文件中规则、服务器资源等配置内容的聚合使用。
1. Surge配置原理
Surge 核心的功能由配置文件(Profile)所控制,当遇到一些特殊需求时,需要通过手动编辑配置文件方可实现。
Surge的配置以格式化文本的方式保存在配置文件中,Surge图形界面的策略和策略组、规则、DNS等内容都是配置文件中内容的直观呈现,要想自定义Surge配置,最简洁的方式就是直接编辑Surge配置文件。
2. Surge托管配置
Surge的配置文件分为三类:
- 普通配置:即手动创建或默认使用的一般配置文件。
- 托管配置:通常由企业管理员或服务商提供。托管配置由于可以被远程更新,所以不可以在本地进行修改。如需要进行修改应先创建副本变为普通配置。
- 企业配置:仅限企业版本,不可修改和查看,也不可建立副本。
有些机场提供的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多配置文件聚合配置方法的更多相关文章
- shell 环境变量的相关配置文件和配置方法
shell 环境变量的相关配置文件和配置方法: bash 的配置文件: 全局配置: /etc/profile, /etc/profile.d/*.sh, /etc/bashrc 个人配置 ~/.bas ...
- MySql互为主从配置文件及配置方法
# Example MySQL config file for medium systems. # # This is for a system with little memory (32M - 6 ...
- postcss.config.js配置文件的配置方法
module.exports = { plugins: { 'autoprefixer': {}, } }
- log4net 配置文件配置方法
转自:http://www.dozer.cc/2013/06/log4net-config-file-order/ 最近把项目中所有的日志都改成了 log4net ,同事也蠢蠢欲动,用起了 log4n ...
- CentOS 6.3下Samba服务器的安装与配置方法(图文详解)
这篇文章主要介绍了CentOS 6.3下Samba服务器的安装与配置方法(图文详解),需要的朋友可以参考下 一.简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件, ...
- CentOS防火墙iptables的配置方法详解
CentOS系统也是基于linux中的它的防火墙其实就是iptables了,下面我来介绍在CentOS防火墙iptables的配置教程,希望此教程对各位朋友会有所帮助. iptables是与Linux ...
- 使用配置文件来配置JDBC连接数据库
1.管理数据库连接的Class 代码如下: package jdbcTest;import java.sql.Connection;import java.sql.DriverManager;impo ...
- Wampserver 2.5 多站点配置方法
写在开头:本文适用于wampserver2.5版本,和wamp的老版本配置有语法上的区别,笔者正是因为被老版本的配置办法给整迷糊了所以才总结了一篇针对2.5版本的配置方法,如果您还停留在1.x或着已经 ...
- XAMPP中proftpd的简明配置方法
XAMPP中proftpd的简明配置方法 用LAMPP的安装方法可以开一个默认的nobody用户,用lampp security就可以初始设置相应的默认用户密码.如果要有多用户,又怎样管理.目录怎 ...
- Spring AOP基于配置文件的面向方法的切面
Spring AOP基于配置文件的面向方法的切面 Spring AOP根据执行的时间点可以分为around.before和after几种方式. around为方法前后均执行 before为方法前执行 ...
随机推荐
- KingbaseES 数据插入更新操作
数据库使用过程中,经常会遇到一种场景:业务系统对数据进行dml操作,当数据库中数据不存在时,将数据做为新记录插入到表中,当数据库中数据存在时,对现有数据进行更新操作. 下面介绍KingbaseES中对 ...
- IDEA MyBatis Log 插件,打印SQL语句
打开Settings->plugins 搜索插件 MyBatis Log点击安装,完成后重启IDEA即可. 点击Tools,选择 MyBatis Log Plugin ,会在下方打开一个窗口,这 ...
- (1,3,4,2,5)小和问题【Java】
01[1,3,4,2,5]求小和 从右往左看:左边比右边小的加和到一起! 1 左边没有数 0 3 1 4 1+3 2 1 5 1+3+4+2 从左往右看:有几个数右边比左边大 1 4个数: 3 4 2 ...
- 批量拉取/git pull 指定文件夹下面所有 Git 项目的最新代码
背景 因为工作需要,当前所负责的项目较多:但是人力紧缺,其中绝大部分项目平时也不会去跟进迭代.所以经常需要批量拉取最新的代码查看最新的改动. 解决方案 一键批量拉取指定文件夹下所有 Git 项目的最新 ...
- 【中秋国庆不断更】OpenHarmony定义可动画属性:@AnimatableExtend装饰器
[中秋国庆不断更]OpenHarmony定义可动画属性:@AnimatableExtend装饰器 @AnimatableExtend装饰器用于自定义可动画的属性方法,在这个属性方法中修改组件不可动画的 ...
- Java 包和 API 深度解析:组织代码,避免命名冲突
Java 包和 API Java 中的包 用于将相关的类分组在一起.可以将其视为文件目录中的一个文件夹.我们使用包来避免名称冲突,并编写更易于维护的代码. 包分为两类: 内置包(来自 Java API ...
- 三七互娱《斗罗大陆:魂师对决》上线,Network Kit助力玩家即刻畅玩
三七游戏旗下的年度旗舰大作<斗罗大陆:魂师对决>现已开启全平台公测.8月1日,三七互娱技术副总监出席了HMS Core.Sparkle游戏应用创新沙龙,展示了在HMS Core Netwo ...
- std::thread 二:互斥量(lock_guard())
*:使用 lock_guard 后,就不可以使用 lock() 和 unlock() *:lock_guard 和智能指针一样,会自动解锁 #include <iostream> #i ...
- HarmonyOS 设备管理开发:USB 服务开发指导
基本概念 USB服务是应用访问底层的一种设备抽象概念.开发者根据提供的USB API,可以获取设备列表.控制设备访问权限.以及与连接的设备进行数据传输.控制命令传输等. 运作机制 USB服务系统包 ...
- spark 计算前后两条记录之间的差(diff),时间差等
有时候会遇到这样的场景:有一个datafram,我们需要计算同一组对象中,前后两条记录之间的差值,此处并不仅限于时间,还可以是其他的数据类型 需要用到两个工具:spark窗口函数Window对对象分组 ...