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生成动态SQL
1. 动态SQL 动态SQL在程序启动时会根据输入参数替换相应变量.使用动态SQL可以创建更强大和灵活的应用程序,但在编译时SQL语句的全文不确定,因此运行时编译会牺牲一些性能.动态SQL可以是代码或 ...
- 如何使用Java代码混淆技术保护您的应用程序
摘要 本文探讨了代码混淆在保护Java代码安全性和知识产权方面的重要意义.通过混淆技术,可以有效防止代码被反编译.逆向工程或恶意篡改,提高代码的安全性.常见的Java代码混淆工具如IPAGuard.A ...
- HTTP报文结构
HTTP报文结构 HTTP报文头 HTTP相应报文 请求方法 状态码
- Python 中的数字类型与转换技巧
Python中有三种数字类型: int(整数) float(浮点数) complex(复数) 当您将值分配给变量时,将创建数字类型的变量: 示例:获取您自己的Python服务器 x = 1 # int ...
- Viu联合华为HMS生态,共创影音娱乐新体验
华为HMS生态携手流媒体平台Viu,为海外消费者打造精品移动娱乐应用体验,并助力提升流量变现能力.Viu在中东非.东南亚等16个国家及地区提供广告合作和付费会员服务,支持优质视频内容高清点播和直播.自 ...
- Excel分析师的工资能一直飙升,原因其实是...
世界上的数据分析师分为使用Excel的分析师和其他分析师两类. 即使在互联网数据分析界,java遍街头,Python不如狗,Excel也是不可替代的. 上班前以为自己是西装笔挺的Excel数据分析师, ...
- IntelliJ IDEA Community 无法启动 Spring Boot 项目的解决方案
菜单中依次选择 Run >Edit Configuration 在弹出窗口中,点击左上角的 +,选择 Maven 在 Name 中自定义一个名称,一般与项目名称相同 在 Run 下方的文本框中输 ...
- c# MVC BundleConfig详解
前言 因为有很多库在.net core还没有实现迁移,所以呢,我们有时候还是需要的. 这些事什么意思呢? 举一个例子: bundles.Add(new StyleBundle("~/Cont ...
- 重新点亮linux 命令树————用户和用户组的配置文件[八]
前言 简单整理一下 正文 首先看下vim /etc/passwd 这个东西. 可以看到这些就是我们的用户表. 刚才我们创建的user1就在末尾了. 那么下面有这个x:1001:1001 这个是什么意思 ...
- 嘉楠k210 多线程 点亮流水灯
from Maix import GPIO from fpioa_manager import fm import _thread import time fm.register(24, fm.fpi ...