mirror of
https://github.com/kenzok8/small-package
synced 2025-01-08 13:27:36 +08:00
update 2024-10-26 16:23:41
This commit is contained in:
parent
c63d2f26c1
commit
f972b8f273
@ -1,6 +1,6 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_VERSION:=1.9.0
|
||||
PKG_VERSION:=1.9.1
|
||||
|
||||
LUCI_TITLE:=LuCI Support for mihomo
|
||||
LUCI_DEPENDS:=+luci-base +mihomo
|
||||
|
Binary file not shown.
@ -41,6 +41,22 @@ function getSingboxVersion() {
|
||||
|
||||
$singBoxVersion = getSingboxVersion();
|
||||
?>
|
||||
|
||||
<?php
|
||||
|
||||
function getUiVersion() {
|
||||
$versionFile = '/etc/neko/ui/metacubexd/version.txt';
|
||||
|
||||
if (file_exists($versionFile)) {
|
||||
return trim(file_get_contents($versionFile));
|
||||
} else {
|
||||
return "版本文件不存在";
|
||||
}
|
||||
}
|
||||
|
||||
$uiVersion = getUiVersion();
|
||||
?>
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en" data-bs-theme="<?php echo substr($neko_theme,0,-4) ?>">
|
||||
<head>
|
||||
@ -53,6 +69,7 @@ $singBoxVersion = getSingboxVersion();
|
||||
<link href="./assets/css/custom.css" rel="stylesheet">
|
||||
<script type="text/javascript" src="./assets/js/bootstrap.min.js"></script>
|
||||
<script type="text/javascript" src="./assets/js/feather.min.js"></script>
|
||||
<script type="text/javascript" src="./assets/bootstrap/bootstrap.bundle.min.js"></script>
|
||||
<script type="text/javascript" src="./assets/js/jquery-2.1.3.min.js"></script>
|
||||
<script type="text/javascript" src="./assets/js/neko.js"></script>
|
||||
</head>
|
||||
@ -99,42 +116,55 @@ $singBoxVersion = getSingboxVersion();
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div class="row">
|
||||
<div class="col-md-4 mb-3">
|
||||
<div class="col-md-6 mb-3">
|
||||
<div class="text-center">
|
||||
<h3>客户端版本</h3>
|
||||
<div class="form-control text-center" style="font-family: monospace; text-align: center;">
|
||||
<span id="cliver"></span> <span id="NewCliver"> </span>
|
||||
</div>
|
||||
<div class="text-center mt-2">
|
||||
<button class="btn btn-cyan" id="checkCliverButton">🔍 检测</button>
|
||||
<button class="btn btn-info" id="updateButton" title="更新到最新版本">🔄 更新</button>
|
||||
<button class="btn btn-pink" id="checkCliverButton">🔍 检测版本</button>
|
||||
<button class="btn btn-info" id="updateButton" title="更新到最新版本">🔄 更新版本</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 mb-3">
|
||||
<div class="col-md-6 mb-3">
|
||||
<div class="text-center">
|
||||
<h3>Sing-box核心版本</h3>
|
||||
<h3>Metacubexd 面板</h3>
|
||||
<div class="form-control text-center">
|
||||
<?php echo htmlspecialchars($uiVersion); ?> <span id="NewUi"> </span>
|
||||
</div>
|
||||
<div class="text-center mt-2">
|
||||
<button class="btn btn-pink" id="checkUiButton">🔍 检测版本</button>
|
||||
<button class="btn btn-info" id="updateUiButton" title="更新 Metacubexd 面板">🔄 更新版本</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<div class="text-center">
|
||||
<h3>Sing-box 核心版本</h3>
|
||||
<div class="form-control text-center">
|
||||
<div id="singBoxCorever">
|
||||
<?php echo htmlspecialchars($singBoxVersion); ?> <span id="NewSingbox"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="text-center mt-2">
|
||||
<button class="btn btn-cyan" id="checkSingboxButton">🔍 检测</button>
|
||||
<button class="btn btn-pink" id="updateSingboxButton" title="更新 Singbox 内核">🔄 更新</button>
|
||||
<button class="btn btn-info" id="updatePuernyaButton" title="切换 Puernya 内核">🔄 切换</button>
|
||||
<button class="btn btn-pink" id="checkSingboxButton">🔍 检测版本</button>
|
||||
<button class="btn btn-success" id="updatePuernyaButton" title="切换 Puernya 内核">🔄 切换内核</button>
|
||||
<button class="btn btn-info" id="updateSingboxButton" title="更新 Singbox 内核">🔄 更新版本</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 mb-3">
|
||||
<div class="col-md-6 mb-3">
|
||||
<div class="text-center">
|
||||
<h3>Mihomo核心版本</h3>
|
||||
<h3>Mihomo 核心版本</h3>
|
||||
<div class="form-control text-center">
|
||||
<span id="corever"></span> <span id="NewMihomo"> </span>
|
||||
</div>
|
||||
<div class="text-center mt-2">
|
||||
<button class="btn btn-cyan" id="checkMihomoButton">🔍 检测</button>
|
||||
<button class="btn btn-success" id="updateCoreButton" title="更新 Mihomo 内核">🔄 更新</button>
|
||||
<button class="btn btn-pink" id="checkMihomoButton">🔍 检测版本</button>
|
||||
<button id="updateConfigButton" class="btn btn-primary" title="更新 Mihomo 配置文件">🔄 更新配置</button>
|
||||
<button class="btn btn-info" id="updateCoreButton" title="更新 Mihomo 内核">🔄 更新版本</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -143,267 +173,235 @@ $singBoxVersion = getSingboxVersion();
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="modal fade" id="updateModal" tabindex="-1" role="dialog" aria-labelledby="updateModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="updateModalLabel">更新状态</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<pre id="logOutput">开始下载更新...</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="logOutput" class="mt-3"></div>
|
||||
|
||||
<div id="logOutput" class="mt-3"></div>
|
||||
<style>
|
||||
.table-container {
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
<style>
|
||||
.table-container {
|
||||
overflow-x: auto;
|
||||
}
|
||||
.table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
.table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
.table td {
|
||||
padding: 10px;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.table td {
|
||||
padding: 10px;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.form-control {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
width: 100%;
|
||||
}
|
||||
.btn {
|
||||
white-space: nowrap;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.btn {
|
||||
white-space: nowrap;
|
||||
flex: 1;
|
||||
}
|
||||
@media (max-width: 767px) {
|
||||
.table td {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@media (max-width: 767px) {
|
||||
.table td {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
.form-control {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.btn-group {
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
|
||||
.btn-group {
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
#updateButton:hover {
|
||||
background-color: #20B2AA;
|
||||
}
|
||||
|
||||
#updateButton:hover {
|
||||
background-color: #20B2AA;
|
||||
}
|
||||
#updateSingboxButton:hover {
|
||||
background-color: #FF69B4;
|
||||
}
|
||||
|
||||
#updateSingboxButton:hover {
|
||||
background-color: #FF69B4;
|
||||
}
|
||||
#updateCoreButton:hover {
|
||||
background-color: #90EE90;
|
||||
}
|
||||
|
||||
#updateCoreButton:hover {
|
||||
background-color: #90EE90;
|
||||
}
|
||||
|
||||
#updatePuernyaButton:hover {
|
||||
background-color: #87CEFA;
|
||||
}
|
||||
|
||||
</style>
|
||||
#updatePuernyaButton:hover {
|
||||
background-color: #87CEFA;
|
||||
}
|
||||
</style>
|
||||
|
||||
<script>
|
||||
document.getElementById('updateButton').addEventListener('click', function() {
|
||||
function initiateUpdate(url, logMessage) {
|
||||
const xhr = new XMLHttpRequest();
|
||||
xhr.open('POST', 'update_script.php', true);
|
||||
xhr.open('POST', url, true);
|
||||
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||
|
||||
document.getElementById('logOutput').innerHTML = '开始下载更新...';
|
||||
$('#updateModal').modal('show');
|
||||
document.getElementById('logOutput').textContent = logMessage;
|
||||
|
||||
xhr.onload = function() {
|
||||
if (xhr.status === 200) {
|
||||
document.getElementById('logOutput').innerHTML += '\n更新完成!';
|
||||
document.getElementById('logOutput').innerHTML += '\n' + xhr.responseText;
|
||||
document.getElementById('logOutput').textContent += '\n更新完成!';
|
||||
document.getElementById('logOutput').textContent += '\n' + xhr.responseText;
|
||||
|
||||
setTimeout(function() {
|
||||
location.reload();
|
||||
}, 3000);
|
||||
$('#updateModal').modal('hide');
|
||||
setTimeout(function() {
|
||||
location.reload();
|
||||
}, 500);
|
||||
}, 10000);
|
||||
} else {
|
||||
document.getElementById('logOutput').innerHTML += '\n发生错误:' + xhr.statusText;
|
||||
document.getElementById('logOutput').textContent += '\n发生错误:' + xhr.statusText;
|
||||
}
|
||||
};
|
||||
|
||||
xhr.onerror = function() {
|
||||
document.getElementById('logOutput').textContent += '\n网络错误,请稍后再试。';
|
||||
};
|
||||
|
||||
xhr.send();
|
||||
}
|
||||
|
||||
document.getElementById('updateButton').addEventListener('click', function() {
|
||||
initiateUpdate('update_script.php', '开始下载更新...');
|
||||
});
|
||||
|
||||
document.getElementById('updateSingboxButton').addEventListener('click', function() {
|
||||
const xhr = new XMLHttpRequest();
|
||||
xhr.open('POST', 'singbox.php', true);
|
||||
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||
|
||||
document.getElementById('logOutput').innerHTML = '开始下载核心更新...';
|
||||
|
||||
xhr.onload = function() {
|
||||
if (xhr.status === 200) {
|
||||
document.getElementById('logOutput').innerHTML += '\n核心更新完成!';
|
||||
document.getElementById('logOutput').innerHTML += '\n' + xhr.responseText;
|
||||
setTimeout(function() {
|
||||
location.reload();
|
||||
}, 3000);
|
||||
} else {
|
||||
document.getElementById('logOutput').innerHTML += '\n发生错误:' + xhr.statusText;
|
||||
}
|
||||
};
|
||||
|
||||
xhr.send();
|
||||
initiateUpdate('singbox.php', '开始下载 Singbox 核心更新...');
|
||||
});
|
||||
|
||||
document.getElementById('updatePuernyaButton').addEventListener('click', function() {
|
||||
const xhr = new XMLHttpRequest();
|
||||
xhr.open('POST', 'puernya.php', true);
|
||||
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||
|
||||
document.getElementById('logOutput').innerHTML = '开始下载核心更新...';
|
||||
|
||||
xhr.onload = function() {
|
||||
if (xhr.status === 200) {
|
||||
document.getElementById('logOutput').innerHTML += '\n核心更新完成!';
|
||||
document.getElementById('logOutput').innerHTML += '\n' + xhr.responseText;
|
||||
setTimeout(function() {
|
||||
location.reload();
|
||||
}, 3000);
|
||||
} else {
|
||||
document.getElementById('logOutput').innerHTML += '\n发生错误:' + xhr.statusText;
|
||||
}
|
||||
};
|
||||
|
||||
xhr.send();
|
||||
initiateUpdate('puernya.php', '开始下载 Puernya 核心更新...');
|
||||
});
|
||||
|
||||
document.getElementById('updateCoreButton').addEventListener('click', function() {
|
||||
initiateUpdate('core.php', '开始下载 Mihomo 核心更新...');
|
||||
});
|
||||
|
||||
document.getElementById('updateUiButton').addEventListener('click', function() {
|
||||
initiateUpdate('ui.php', '开始下载 UI 面板更新...');
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
document.getElementById('updateConfigButton').addEventListener('click', function() {
|
||||
const xhr = new XMLHttpRequest();
|
||||
xhr.open('POST', 'core.php', true);
|
||||
xhr.open('POST', 'update_config.php', true);
|
||||
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
||||
|
||||
document.getElementById('logOutput').innerHTML = '开始下载核心更新...';
|
||||
|
||||
xhr.onload = function() {
|
||||
if (xhr.status === 200) {
|
||||
document.getElementById('logOutput').innerHTML += '\n核心更新完成!';
|
||||
document.getElementById('logOutput').innerHTML += '\n' + xhr.responseText;
|
||||
setTimeout(function() {
|
||||
location.reload();
|
||||
}, 3000);
|
||||
alert(xhr.responseText);
|
||||
} else {
|
||||
document.getElementById('logOutput').innerHTML += '\n发生错误:' + xhr.statusText;
|
||||
alert('更新失败,请稍后重试。');
|
||||
}
|
||||
};
|
||||
|
||||
xhr.send();
|
||||
xhr.send('action=update_config');
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
function checkVersion(buttonId, outputId, url) {
|
||||
document.getElementById(outputId).innerHTML = '正在检查新版本...';
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open('GET', url + '?check_version=true', true);
|
||||
xhr.onload = function() {
|
||||
if (xhr.status === 200) {
|
||||
document.getElementById(outputId).innerHTML = xhr.responseText;
|
||||
} else {
|
||||
document.getElementById(outputId).innerHTML = '版本检测失败,请稍后重试。';
|
||||
}
|
||||
};
|
||||
xhr.onerror = function() {
|
||||
document.getElementById(outputId).innerHTML = '网络错误,请稍后重试';
|
||||
};
|
||||
xhr.send();
|
||||
}
|
||||
|
||||
document.getElementById('checkCliverButton').addEventListener('click', function() {
|
||||
document.getElementById('NewCliver').innerHTML = '正在检查新版本...';
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open('GET', 'update_script.php?check_version=true', true);
|
||||
xhr.onload = function() {
|
||||
if (xhr.status === 200) {
|
||||
document.getElementById('NewCliver').innerHTML = xhr.responseText;
|
||||
} else {
|
||||
document.getElementById('NewCliver').innerHTML = '版本检测失败,请稍后重试。';
|
||||
}
|
||||
};
|
||||
xhr.onerror = function() {
|
||||
document.getElementById('NewCliver').innerHTML = '网络错误,请稍后重试';
|
||||
};
|
||||
xhr.send();
|
||||
checkVersion('checkCliverButton', 'NewCliver', 'update_script.php');
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
document.getElementById('checkMihomoButton').addEventListener('click', function() {
|
||||
document.getElementById('NewMihomo').innerHTML = '正在检查新版本...';
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open('GET', 'core.php?check_version=true', true);
|
||||
xhr.onload = function() {
|
||||
if (xhr.status === 200) {
|
||||
document.getElementById('NewMihomo').innerHTML = xhr.responseText;
|
||||
} else {
|
||||
document.getElementById('NewMihomo').innerHTML = '版本检测失败,请稍后重试。';
|
||||
}
|
||||
};
|
||||
xhr.onerror = function() {
|
||||
document.getElementById('NewMihomo').innerHTML = '网络错误,请稍后重试';
|
||||
};
|
||||
xhr.send();
|
||||
checkVersion('checkMihomoButton', 'NewMihomo', 'core.php');
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
document.getElementById('checkSingboxButton').addEventListener('click', function() {
|
||||
document.getElementById('NewSingbox').innerHTML = '正在检查新版本...';
|
||||
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open('GET', 'singbox.php?check_version=true', true);
|
||||
xhr.onload = function() {
|
||||
if (xhr.status === 200) {
|
||||
document.getElementById('NewSingbox').innerHTML = xhr.responseText;
|
||||
} else {
|
||||
document.getElementById('NewSingbox').innerHTML = '版本检测失败,请稍后重试。';
|
||||
}
|
||||
};
|
||||
xhr.onerror = function() {
|
||||
document.getElementById('NewSingbox').innerHTML = '网络错误,请稍后重试';
|
||||
};
|
||||
xhr.send();
|
||||
checkVersion('checkSingboxButton', 'NewSingbox', 'singbox.php');
|
||||
});
|
||||
|
||||
document.getElementById('checkUiButton').addEventListener('click', function() {
|
||||
checkVersion('checkUiButton', 'NewUi', 'ui.php');
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
function compareVersions(v1, v2) {
|
||||
const v1parts = v1.split(/[-.]/).filter(x => x !== 'alpha' && x !== 'beta');
|
||||
const v2parts = v2.split(/[-.]/).filter(x => x !== 'alpha' && x !== 'beta');
|
||||
|
||||
for (let i = 0; i < Math.max(v1parts.length, v2parts.length); ++i) {
|
||||
const v1part = parseInt(v1parts[i]) || 0;
|
||||
const v2part = parseInt(v2parts[i]) || 0;
|
||||
function compareVersions(v1, v2) {
|
||||
const v1parts = v1.split(/[-.]/).filter(x => x !== 'alpha' && x !== 'beta');
|
||||
const v2parts = v2.split(/[-.]/).filter(x => x !== 'alpha' && x !== 'beta');
|
||||
|
||||
if (v1part > v2part) return 1;
|
||||
if (v1part < v2part) return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
function checkSingboxVersion() {
|
||||
var currentVersion = '<?php echo getSingboxVersion(); ?>';
|
||||
var minVersion = '1.10.0';
|
||||
|
||||
if (compareVersions(currentVersion, minVersion) >= 0) {
|
||||
return;
|
||||
for (let i = 0; i < Math.max(v1parts.length, v2parts.length); ++i) {
|
||||
const v1part = parseInt(v1parts[i]) || 0;
|
||||
const v2part = parseInt(v2parts[i]) || 0;
|
||||
|
||||
if (v1part > v2part) return 1;
|
||||
if (v1part < v2part) return -1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
var modalHtml = `
|
||||
<div class="modal fade" id="versionWarningModal" tabindex="-1" aria-labelledby="versionWarningModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="versionWarningModalLabel">版本警告</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>您的 Sing-box 版本 (${currentVersion}) 低于推荐的最低版本 (v1.10.0)。</p>
|
||||
<p>请考虑升级到更高版本以获得最佳性能。</p>
|
||||
function checkSingboxVersion() {
|
||||
var currentVersion = '<?php echo getSingboxVersion(); ?>';
|
||||
var minVersion = '1.10.0';
|
||||
|
||||
if (compareVersions(currentVersion, minVersion) >= 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
var modalHtml = `
|
||||
<div class="modal fade" id="versionWarningModal" tabindex="-1" aria-labelledby="versionWarningModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="versionWarningModalLabel">版本警告</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>您的 Sing-box 版本 (${currentVersion}) 低于推荐的最低版本 (v1.10.0)。</p>
|
||||
<p>请考虑升级到更高版本以获得最佳性能。</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
`;
|
||||
document.body.insertAdjacentHTML('beforeend', modalHtml);
|
||||
var modal = new bootstrap.Modal(document.getElementById('versionWarningModal'));
|
||||
modal.show();
|
||||
|
||||
setTimeout(function() {
|
||||
modal.hide();
|
||||
}, 5000);
|
||||
}
|
||||
`;
|
||||
document.body.insertAdjacentHTML('beforeend', modalHtml);
|
||||
var modal = new bootstrap.Modal(document.getElementById('versionWarningModal'));
|
||||
modal.show();
|
||||
|
||||
setTimeout(function() {
|
||||
modal.hide();
|
||||
}, 5000);
|
||||
}
|
||||
|
||||
document.addEventListener('DOMContentLoaded', checkSingboxVersion);
|
||||
document.addEventListener('DOMContentLoaded', checkSingboxVersion);
|
||||
</script>
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
@ -195,14 +195,16 @@ if (!file_exists($subscriptionFile)) {
|
||||
file_put_contents($subscriptionFile, json_encode([]));
|
||||
}
|
||||
$subscriptions = json_decode(file_get_contents($subscriptionFile), true);
|
||||
if (!$subscriptions) {
|
||||
for ($i = 0; $i < 3; $i++) {
|
||||
$subscriptions[$i] = [
|
||||
if (!$subscriptions || !is_array($subscriptions)) {
|
||||
$subscriptions = [];
|
||||
for ($i = 1; $i <= 3; $i++) {
|
||||
$subscriptions[$i - 1] = [
|
||||
'url' => '',
|
||||
'file_name' => "subscription_{$i}.yaml",
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($_POST['saveSubscription'])) {
|
||||
$index = intval($_POST['index']);
|
||||
if ($index >= 0 && $index < 3) {
|
||||
|
84
luci-app-nekobox/htdocs/nekobox/ui.php
Normal file
84
luci-app-nekobox/htdocs/nekobox/ui.php
Normal file
@ -0,0 +1,84 @@
|
||||
<?php
|
||||
|
||||
ini_set('memory_limit', '128M');
|
||||
|
||||
function logMessage($message) {
|
||||
$logFile = '/var/log/sing-box_update.log';
|
||||
$timestamp = date('Y-m-d H:i:s');
|
||||
file_put_contents($logFile, "[$timestamp] $message\n", FILE_APPEND);
|
||||
}
|
||||
|
||||
function getUiVersion() {
|
||||
$versionFile = '/etc/neko/ui/metacubexd/version.txt';
|
||||
|
||||
if (file_exists($versionFile)) {
|
||||
return trim(file_get_contents($versionFile));
|
||||
} else {
|
||||
return "版本文件不存在";
|
||||
}
|
||||
}
|
||||
|
||||
function writeVersionToFile($version) {
|
||||
$versionFile = '/etc/neko/ui/metacubexd/version.txt';
|
||||
file_put_contents($versionFile, $version);
|
||||
}
|
||||
|
||||
$repo_owner = "MetaCubeX";
|
||||
$repo_name = "metacubexd";
|
||||
$api_url = "https://api.github.com/repos/$repo_owner/$repo_name/releases/latest";
|
||||
|
||||
$curl_command = "curl -s -H 'User-Agent: PHP' --connect-timeout 10 " . escapeshellarg($api_url);
|
||||
$response = shell_exec($curl_command);
|
||||
|
||||
if ($response === false || empty($response)) {
|
||||
logMessage("GitHub API 请求失败,可能是网络问题或 GitHub API 限制。");
|
||||
die("GitHub API 请求失败。请检查网络连接或稍后重试。");
|
||||
}
|
||||
|
||||
$data = json_decode($response, true);
|
||||
|
||||
if (json_last_error() !== JSON_ERROR_NONE) {
|
||||
logMessage("解析 GitHub API 响应时出错: " . json_last_error_msg());
|
||||
die("解析 GitHub API 响应时出错: " . json_last_error_msg());
|
||||
}
|
||||
|
||||
$latest_version = $data['tag_name'] ?? '';
|
||||
$install_path = '/etc/neko/ui/metacubexd';
|
||||
$temp_file = '/tmp/compressed-dist.tgz';
|
||||
|
||||
if (!is_dir($install_path)) {
|
||||
mkdir($install_path, 0755, true);
|
||||
}
|
||||
|
||||
$current_version = getUiVersion();
|
||||
|
||||
if (isset($_GET['check_version'])) {
|
||||
if (trim($current_version) === trim($latest_version)) {
|
||||
echo "当前版本已是最新: $current_version";
|
||||
} else {
|
||||
echo "最新版本: $latest_version";
|
||||
}
|
||||
exit;
|
||||
}
|
||||
|
||||
$download_url = $data['assets'][0]['browser_download_url'] ?? '';
|
||||
|
||||
if (empty($download_url)) {
|
||||
die("未找到下载链接,请检查发布版本的资源。");
|
||||
}
|
||||
|
||||
exec("wget -O '$temp_file' '$download_url'", $output, $return_var);
|
||||
if ($return_var !== 0) {
|
||||
die("下载失败!");
|
||||
}
|
||||
|
||||
exec("tar -xzf '$temp_file' -C '$install_path'", $output, $return_var);
|
||||
if ($return_var !== 0) {
|
||||
die("解压失败!");
|
||||
}
|
||||
|
||||
writeVersionToFile($latest_version);
|
||||
echo "更新完成!当前版本: $latest_version";
|
||||
|
||||
unlink($temp_file);
|
||||
?>
|
24
luci-app-nekobox/htdocs/nekobox/update_config.php
Normal file
24
luci-app-nekobox/htdocs/nekobox/update_config.php
Normal file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
if (isset($_POST['action']) && $_POST['action'] === 'update_config') {
|
||||
$configFilePath = '/etc/neko/config/mihomo.yaml';
|
||||
$url = 'https://raw.githubusercontent.com/Thaolga/openwrt-nekobox/nekobox/luci-app-nekobox/root/etc/neko/config/mihomo.yaml';
|
||||
|
||||
$ch = curl_init($url);
|
||||
$fp = fopen($configFilePath, 'w');
|
||||
|
||||
curl_setopt($ch, CURLOPT_FILE, $fp);
|
||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
|
||||
|
||||
$success = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
fclose($fp);
|
||||
|
||||
if ($success) {
|
||||
echo "<script>alert('Mihomo 配置文件已更新成功!');</script>";
|
||||
error_log("Mihomo 配置文件已更新成功!");
|
||||
} else {
|
||||
echo "<script>alert('配置文件更新失败!');</script>";
|
||||
error_log("配置文件更新失败!");
|
||||
}
|
||||
}
|
||||
?>
|
@ -520,7 +520,7 @@
|
||||
"tag": "🛫 ",
|
||||
"type": "remote",
|
||||
"download_url": "https://example.com/xxx/xxx&flag=clash",
|
||||
"path": "./proxy/subscription_0.yaml",
|
||||
"path": "./proxy/subscription_1.yaml",
|
||||
"download_interval": "24h",
|
||||
"download_ua": "clash.meta",
|
||||
"includes": [
|
||||
@ -534,7 +534,7 @@
|
||||
"tag": "🛫. ",
|
||||
"type": "remote",
|
||||
"download_url": "https://example.com/xxx/xxx&flag=clash",
|
||||
"path": "./proxy/subscription_1.yaml",
|
||||
"path": "./proxy/subscription_2.yaml",
|
||||
"download_interval": "24h",
|
||||
"download_ua": "clash.meta",
|
||||
"includes": [
|
||||
@ -548,7 +548,7 @@
|
||||
"tag": "🛫.. ",
|
||||
"type": "remote",
|
||||
"download_url": "https://example.com/xxx/xxx&flag=clash",
|
||||
"path": "./proxy/subscription_2.yaml",
|
||||
"path": "./proxy/subscription_3.yaml",
|
||||
"download_interval": "24h",
|
||||
"download_ua": "clash.meta",
|
||||
"includes": [
|
||||
|
@ -1,367 +0,0 @@
|
||||
######### 锚点 start #######
|
||||
# 策略组相关
|
||||
pr: &pr
|
||||
type: select
|
||||
proxies: [⚡️ 全局规则,🇭🇰 香港手动,🇹🇼 台湾手动,🇸🇬 新加坡手动,🇯🇵 日本手动,🇰🇷 韩国手动,🇺🇲 美国手动,🇩🇪 德国手动,🇭🇰 香港自动,🇹🇼 台湾自动,🇸🇬 新加坡自动,🇯🇵 日本自动,🇰🇷 韩国自动,🇺🇲 美国自动,🇩🇪 德国自动,其它地区,全部节点,DIRECT]
|
||||
exclude-filter-list: &exclude-filter "网站|地址|剩余|过期|时间|有效|套餐|到期|tg|邀请|官网"
|
||||
#这里是订阅更新和延迟测试相关的
|
||||
p: &p
|
||||
type: http
|
||||
interval: 3600
|
||||
health-check: {enable: true, url: https://1.1.1.1/generate_204, interval: 300}
|
||||
|
||||
#规则集相关
|
||||
c: &c {type: http, interval: 86400, behavior: classical, format: text}
|
||||
|
||||
#延迟测试
|
||||
t: &t {type: url-test, url: https://1.1.1.1/generate_204, interval: 300, tolerance: 50}
|
||||
|
||||
######### 锚点 end #######
|
||||
|
||||
# url 里填写自己的订阅,名称不能重复
|
||||
proxy-providers:
|
||||
provider1:
|
||||
<<: *p
|
||||
url: ""
|
||||
path: ./proxy_provider/subscription_1.yaml
|
||||
exclude-filter: *exclude-filter
|
||||
override:
|
||||
skip-cert-verify: true
|
||||
provider2:
|
||||
<<: *p
|
||||
url: ""
|
||||
path: ./proxy_provider/subscription_2.yaml
|
||||
exclude-filter: *exclude-filter
|
||||
override:
|
||||
skip-cert-verify: true
|
||||
provider3:
|
||||
<<: *p
|
||||
url: ""
|
||||
path: ./proxy_provider/subscription_3.yaml
|
||||
exclude-filter: *exclude-filter
|
||||
override:
|
||||
skip-cert-verify: true
|
||||
provider4:
|
||||
<<: *p
|
||||
url: ""
|
||||
path: ./proxy_provider/subscription_4.yaml
|
||||
exclude-filter: *exclude-filter
|
||||
override:
|
||||
skip-cert-verify: true
|
||||
|
||||
redir-port: 7892
|
||||
port: 7890
|
||||
socks-port: 7891
|
||||
mixed-port: 7893
|
||||
mode: rule
|
||||
log-level: info
|
||||
allow-lan: true
|
||||
unified-delay: true
|
||||
external-controller: 0.0.0.0:9090
|
||||
secret: Akun
|
||||
bind-address: 0.0.0.0
|
||||
external-ui: ui
|
||||
tproxy-port: 7895
|
||||
tcp-concurrent: true
|
||||
enable-process: true
|
||||
find-process-mode: always
|
||||
ipv6: true
|
||||
|
||||
experimental:
|
||||
ignore-resolve-fail: true
|
||||
sniff-tls-sni: true
|
||||
tracing: true
|
||||
hosts:
|
||||
"localhost": 127.0.0.1
|
||||
profile:
|
||||
store-selected: true
|
||||
store-fake-ip: true
|
||||
|
||||
sniffer:
|
||||
enable: true
|
||||
sniff:
|
||||
http: { ports: [1-442, 444-8442, 8444-65535], override-destination: true }
|
||||
tls: { ports: [1-79, 81-8079, 8081-65535], override-destination: true }
|
||||
force-domain:
|
||||
- "+.v2ex.com"
|
||||
- www.google.com
|
||||
- google.com
|
||||
skip-domain:
|
||||
- Mijia Cloud
|
||||
- dlg.io.mi.com
|
||||
sniffing:
|
||||
- tls
|
||||
- http
|
||||
port-whitelist:
|
||||
- "80"
|
||||
- "443"
|
||||
|
||||
tun:
|
||||
enable: true
|
||||
prefer-h3: true
|
||||
listen: 0.0.0.0:53
|
||||
stack: gvisor
|
||||
dns-hijack:
|
||||
- "any:53"
|
||||
- "tcp://any:53"
|
||||
auto-redir: true
|
||||
auto-route: true
|
||||
auto-detect-interface: true
|
||||
|
||||
dns:
|
||||
enable: true
|
||||
ipv6: true
|
||||
default-nameserver:
|
||||
- '1.1.1.1'
|
||||
- '8.8.8.8'
|
||||
enhanced-mode: fake-ip
|
||||
fake-ip-range: 198.18.0.1/16
|
||||
fake-ip-filter:
|
||||
- 'stun.*.*'
|
||||
- 'stun.*.*.*'
|
||||
- '+.stun.*.*'
|
||||
- '+.stun.*.*.*'
|
||||
- '+.stun.*.*.*.*'
|
||||
- '+.stun.*.*.*.*.*'
|
||||
- '*.lan'
|
||||
- '+.msftncsi.com'
|
||||
- msftconnecttest.com
|
||||
- 'time?.*.com'
|
||||
- 'time.*.com'
|
||||
- 'time.*.gov'
|
||||
- 'time.*.apple.com'
|
||||
- time-ios.apple.com
|
||||
- 'time1.*.com'
|
||||
- 'time2.*.com'
|
||||
- 'time3.*.com'
|
||||
- 'time4.*.com'
|
||||
- 'time5.*.com'
|
||||
- 'time6.*.com'
|
||||
- 'time7.*.com'
|
||||
- 'ntp?.*.com'
|
||||
- 'ntp.*.com'
|
||||
- 'ntp1.*.com'
|
||||
- 'ntp2.*.com'
|
||||
- 'ntp3.*.com'
|
||||
- 'ntp4.*.com'
|
||||
- 'ntp5.*.com'
|
||||
- 'ntp6.*.com'
|
||||
- 'ntp7.*.com'
|
||||
- '+.pool.ntp.org'
|
||||
- '+.ipv6.microsoft.com'
|
||||
- speedtest.cros.wr.pvp.net
|
||||
- network-test.debian.org
|
||||
- detectportal.firefox.com
|
||||
- cable.auth.com
|
||||
- miwifi.com
|
||||
- routerlogin.com
|
||||
- routerlogin.net
|
||||
- tendawifi.com
|
||||
- tendawifi.net
|
||||
- tplinklogin.net
|
||||
- tplinkwifi.net
|
||||
- '*.xiami.com'
|
||||
- tplinkrepeater.net
|
||||
- router.asus.com
|
||||
- '*.*.*.srv.nintendo.net'
|
||||
- '*.*.stun.playstation.net'
|
||||
- '*.openwrt.pool.ntp.org'
|
||||
- resolver1.opendns.com
|
||||
- 'GC._msDCS.*.*'
|
||||
- 'DC._msDCS.*.*'
|
||||
- 'PDC._msDCS.*.*'
|
||||
use-hosts: true
|
||||
|
||||
nameserver:
|
||||
- '8.8.4.4'
|
||||
- '1.0.0.1'
|
||||
- "https://1.0.0.1/dns-query"
|
||||
- "https://8.8.4.4/dns-query"
|
||||
proxy-groups:
|
||||
- name: ⚡️ 全局规则
|
||||
type: select
|
||||
proxies: [ 🇭🇰 香港手动,🇹🇼 台湾手动,🇸🇬 新加坡手动,🇯🇵 日本手动,🇰🇷 韩国手动,🇺🇲 美国手动,🇩🇪 德国手动,🇭🇰 香港自动,🇹🇼 台湾自动,🇸🇬 新加坡自动,🇯🇵 日本自动,🇰🇷 韩国自动,🇺🇲 美国自动,🇩🇪 德国自动,其它地区,全部节点,DIRECT]
|
||||
|
||||
- name: 🎥 Emby服务
|
||||
<<: *pr
|
||||
|
||||
- name: 📲 电报信息
|
||||
<<: *pr
|
||||
|
||||
- name: ✈️ 测速服务
|
||||
<<: *pr
|
||||
|
||||
- name: 🇬 谷歌服务
|
||||
<<: *pr
|
||||
|
||||
- name: 💎 Instagram
|
||||
<<: *pr
|
||||
|
||||
- name: 📹 油管视频
|
||||
<<: *pr
|
||||
|
||||
- name: Ⓜ️ 微软服务
|
||||
<<: *pr
|
||||
|
||||
- name: 🤖 OpenAI
|
||||
<<: *pr
|
||||
|
||||
- name: ▶️ 奈飞服务
|
||||
<<: *pr
|
||||
|
||||
- name: 🎵 Spotify
|
||||
<<: *pr
|
||||
|
||||
- name: 🐟 漏网之鱼
|
||||
<<: *pr
|
||||
|
||||
#地区分组
|
||||
- name: 🇭🇰 香港手动
|
||||
type: select
|
||||
include-all-providers: true
|
||||
filter: "(?i)港|hk|hongkong|hong kong"
|
||||
|
||||
- name: 🇹🇼 台湾手动
|
||||
type: select
|
||||
include-all-providers: true
|
||||
filter: "(?i)台|新北|彰化|TW|Taiwan"
|
||||
|
||||
- name: 🇸🇬 新加坡手动
|
||||
type: select
|
||||
include-all-providers: true
|
||||
filter: "(?i)(新|sg|singapore)"
|
||||
|
||||
- name: 🇯🇵 日本手动
|
||||
type: select
|
||||
include-all-providers: true
|
||||
filter: "(?i)日本|川日|东京|大阪|泉日|埼玉|沪日|深日|[^-]日|JP|Japan"
|
||||
|
||||
- name: 🇰🇷 韩国手动
|
||||
type: select
|
||||
include-all-providers: true
|
||||
filter: "(?i)(KR|Korea|KOR|首尔|韩|韓|春川)"
|
||||
|
||||
- name: 🇺🇲 美国手动
|
||||
type: select
|
||||
include-all-providers: true
|
||||
filter: "(?i)美|波特兰|达拉斯|俄勒冈|凤凰城|费利蒙|硅谷|拉斯维加斯|洛杉矶|圣何塞|圣克拉拉|西雅图|芝加哥|US|United States"
|
||||
|
||||
- name: 🇩🇪 德国手动
|
||||
type: select
|
||||
include-all-providers: true
|
||||
filter: "(?i)(德|DE|DEU|Germany)"
|
||||
|
||||
- name: 🇭🇰 香港自动
|
||||
<<: *t
|
||||
include-all-providers: true
|
||||
filter: "(?i)港|hk|hongkong|hong kong"
|
||||
|
||||
- name: 🇹🇼 台湾自动
|
||||
<<: *t
|
||||
include-all-providers: true
|
||||
filter: "(?i)台|新北|彰化|TW|Taiwan"
|
||||
|
||||
- name: 🇸🇬 新加坡自动
|
||||
<<: *t
|
||||
include-all-providers: true
|
||||
filter: "(?i)(新|sg|singapore)"
|
||||
|
||||
- name: 🇯🇵 日本自动
|
||||
<<: *t
|
||||
include-all-providers: true
|
||||
filter: "(?i)日本|川日|东京|大阪|泉日|埼玉|沪日|深日|[^-]日|JP|Japan"
|
||||
|
||||
- name: 🇰🇷 韩国自动
|
||||
<<: *t
|
||||
include-all-providers: true
|
||||
filter: "(?i)(KR|Korea|KOR|首尔|韩|韓|春川)"
|
||||
|
||||
- name: 🇺🇲 美国自动
|
||||
<<: *t
|
||||
include-all-providers: true
|
||||
filter: "(?i)美|波特兰|达拉斯|俄勒冈|凤凰城|费利蒙|硅谷|拉斯维加斯|洛杉矶|圣何塞|圣克拉拉|西雅图|芝加哥|US|United States"
|
||||
|
||||
- name: 🇩🇪 德国自动
|
||||
<<: *t
|
||||
include-all-providers: true
|
||||
filter: "(?i)(德|DE|DEU|Germany)"
|
||||
|
||||
- name: 其它地区
|
||||
type: select
|
||||
include-all-providers: true
|
||||
filter: "(?i)^(?!.*(?:🇭🇰|🇯🇵|🇺🇸|🇸🇬|🇹🇼|港|hk|hongkong|台|tw|taiwan|日本|川日|东京|大阪|泉日|埼玉|沪日|深日|[^-]日|JP|Japan|德|DE|DEU|Germany|新|sg|KR|Korea|KOR|首尔|韩|韓|春川|singapore|美|波特兰|达拉斯|俄勒冈|凤凰城|费利蒙|硅谷|拉斯维加斯|洛杉矶|圣何塞|圣克拉拉|西雅图|芝加哥|US|United States)).*"
|
||||
|
||||
- name: 全部节点
|
||||
type: select
|
||||
include-all-providers: true
|
||||
|
||||
rules:
|
||||
- RULE-SET,lan,DIRECT
|
||||
- RULE-SET,ChinaASN,DIRECT
|
||||
- DST-PORT,8080,✈️ 测速服务
|
||||
- RULE-SET,speedtest,✈️ 测速服务
|
||||
- RULE-SET,emby,🎥 Emby服务
|
||||
- RULE-SET,telegram,📲 电报信息
|
||||
- RULE-SET,Instagram,💎 Instagram
|
||||
- RULE-SET,openai,🤖 OpenAI
|
||||
- RULE-SET,youtube,📹 油管视频
|
||||
- RULE-SET,google,🇬 谷歌服务
|
||||
- RULE-SET,microsoft,Ⓜ️ 微软服务
|
||||
- RULE-SET,netflix,▶️ 奈飞服务
|
||||
- RULE-SET,spotify,🎵 Spotify
|
||||
- RULE-SET,geolocation-!cn,🐟 漏网之鱼
|
||||
- MATCH,🐟 漏网之鱼
|
||||
|
||||
rule-providers:
|
||||
lan:
|
||||
<<: *c
|
||||
url: "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Lan/Lan.list"
|
||||
path: ./rules/Lan.list
|
||||
ChinaASN:
|
||||
<<: *c
|
||||
url: "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Surge/ChinaASN/ChinaASN.list"
|
||||
path: ./rules/ChinaASN.list
|
||||
emby:
|
||||
<<: *c
|
||||
url: "https://cf-workers-text2kv-eh7.pages.dev/emby.list?token=071496"
|
||||
path: ./rules/emby.list
|
||||
telegram:
|
||||
<<: *c
|
||||
url: "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Telegram/Telegram.list"
|
||||
path: ./rules/telegram.list
|
||||
speedtest:
|
||||
<<: *c
|
||||
url: "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Speedtest/Speedtest.list"
|
||||
path: ./rules/speedtest.list
|
||||
microsoft:
|
||||
<<: *c
|
||||
url: "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Microsoft/Microsoft.list"
|
||||
path: ./rules/microsoft.list
|
||||
openai:
|
||||
<<: *c
|
||||
url: "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/OpenAI/OpenAI.list"
|
||||
path: ./rules/OpenAI.list
|
||||
Instagram:
|
||||
<<: *c
|
||||
url: "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Instagram/Instagram.list"
|
||||
path: ./rules/Instagram.list
|
||||
youtube:
|
||||
<<: *c
|
||||
url: "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/YouTube/YouTube.list"
|
||||
path: ./rules/youtube.list
|
||||
google:
|
||||
<<: *c
|
||||
url: "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Google/Google.list"
|
||||
path: ./rules/google.list
|
||||
netflix:
|
||||
<<: *c
|
||||
url: "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Netflix/Netflix.list"
|
||||
path: ./rules/netflix.list
|
||||
spotify:
|
||||
<<: *c
|
||||
url: "https://raw.githubusercontent.com/blackmatrix7/ios_rule_script/master/rule/Clash/Spotify/Spotify.list"
|
||||
path: ./rules/Spotify.list
|
||||
geolocation-!cn:
|
||||
<<: *c
|
||||
url: "https://raw.githubusercontent.com/MetaCubeX/meta-rules-dat/meta/geo/geosite/classical/geolocation-!cn.list"
|
||||
path: ./rules/geolocation-!cn.list
|
@ -137,26 +137,8 @@ filtered_lines: &filtered_lines # 处理重复节点
|
||||
- *all
|
||||
final_lines: *filtered_lines
|
||||
|
||||
# 备用应急
|
||||
backup: &backup {type: select, url: "http://www.google.com/generate_204", interval: 300, tolerance: 50, lazy: true, use: [订阅 1, 订阅 2, 订阅 3, 订阅 4, 订阅 5, 订阅 6, 订阅 7, 订阅 8], filter: "(?i)津巴布韦|🇿🇼|ZW|Zimbabwe|越南|🇻🇳|VNVietnam|乌克兰|🇺🇦|UA|Ukraine|土耳其|🇹🇷|Turkey|法国|都柏林|🇫🇷|FR|France|阿根廷|🇦🇷|AR|Argentina|印度|🇮🇳|IN|India|加拿大|🇨🇦|CA|Canada|马来西亚|🇲🇾|MY|Malaysia|德国|🇩🇪|DE|Germany|荷兰|🇳🇱|NL|Netherlands|泰国|🇹🇭|TH|Thailand|澳大利亚|🇦🇺|AU|Australia|西班牙|🇪🇸|ES|Spain|爱沙尼亚|🇪🇪|EE|Estonia|英国|🇬🇧|United Kingdom|巴西|🇧🇷|BR|Brazil|印度|🇮🇳|IN|India|阿联酋迪拜|🇦🇪|AE|United Arab Emirates|南非|🇿🇦|ZA|South Africa|奥地利|🇦🇹|AT|Austria|哈萨克斯坦|🇰🇿|KZ|Kazakhstan|立陶宛|🇱🇹|LT|Lithuania|瑞士|🇨🇭|CH|Switzerland|瑞典|🇸🇪|SE|Sweden"}
|
||||
|
||||
# 亚洲地区
|
||||
Asia: &Asia {type: selectk, url: "http://www.google.com/generate_204", interval: 300, tolerance: 50, lazy: true, use: [订阅 1, 订阅 2, 订阅 3, 订阅 4, 订阅 5, 订阅 6, 订阅 7, 订阅 8], filter: "(?i)阿富汗|🇦🇫|AF|Afghanistan|亚美尼亚|🇦🇲|AM|Armenia|阿塞拜疆|🇦🇿|AZ|Azerbaijan|孟加拉国|🇧🇩|BD|Bangladesh|不丹|🇧🇹|BT|Bhutan|文莱|🇧🇳|BN|Brunei|柬埔寨|🇰🇭|KH|Cambodia|中国|🇨🇳|CN|China|塞浦路斯|🇨🇾|CY|Cyprus|东帝汶|🇹🇱|TL|Timor-Leste|格鲁吉亚|🇬🇪|GE|Georgia|印度尼西亚|🇮🇩|ID|Indonesia|伊朗|🇮🇷|IR|Iran|伊拉克|🇮🇶|IQ|Iraq|以色列|🇮🇱|IL|Israel|约旦|🇯🇴|JO|Jordan|哈萨克斯坦|🇰🇿|KZ|Kazakhstan|科威特|🇰🇼|KW|Kuwait|吉尔吉斯斯坦|🇰🇬|KG|Kyrgyzstan|老挝|🇱🇦|LA|Laos|黎巴嫩|🇱🇧|LB|Lebanon|马来西亚|🇲🇾|MY|Malaysia|马尔代夫|🇲🇻|MV|Maldives|蒙古|🇲🇳|MN|Mongolia|缅甸|🇲🇲|MM|Myanmar|尼泊尔|🇳🇵|NP|Nepal|朝鲜|🇰🇵|KP|North Korea|阿曼|🇴🇲|OM|Oman|巴基斯坦|🇵🇰|PK|Pakistan|巴勒斯坦|🇵🇸|PS|Palestine|菲律宾|🇵🇭|PH|Philippines|卡塔尔|🇶🇦|QA|Qatar|沙特阿拉伯|🇸🇦|SA|Saudi Arabia|斯里兰卡|🇱🇰|LK|Sri Lanka|叙利亚|🇸🇾|SY|Syria|塔吉克斯坦|🇹🇯|TJ|Tajikistan|泰国|🇹🇭|TH|Thailand|土库曼斯坦|🇹🇲|TM|Turkmenistan|阿联酋|🇦🇪|AE|United Arab Emirates|乌兹别克斯坦|🇺🇿|UY|Uzbekistan|也门|🇾🇪|YE|Yemen|越南|🇻🇳|VNVietnam"}
|
||||
|
||||
# 欧洲地区
|
||||
Europe: &Europe {type: select, url: "http://www.google.com/generate_204", interval: 300, tolerance: 50, lazy: true, use: [订阅 1, 订阅 2, 订阅 3, 订阅 4, 订阅 5, 订阅 6, 订阅 7, 订阅 8],filter: "(?i)阿尔巴尼亚|🇦🇱|AL|Albania|安道尔|🇦🇩|AD|Andorra|亚美尼亚|🇦🇲|AM|Armenia|奥地利|🇦🇹|AT|Austria|阿塞拜疆|🇦🇿|AZ|Azerbaijan|白俄罗斯|🇧🇾|BY|Belarus|比利时|🇧🇪|BE|Belgium|波黑|🇧🇦|BA|Bosnia and Herzegovina|保加利亚|🇧🇬|BG|Bulgaria|克罗地亚|🇭🇷|HR|Croatia|塞浦路斯|🇨🇾|CY|Cyprus|捷克|🇨🇿|CZ|Czech Republic|丹麦|🇩🇰|DK|Denmark|爱沙尼亚|🇪🇪|EE|Estonia|芬兰|🇫🇮|FI|Finland|格鲁吉亚|🇬🇪|GE|Georgia|希腊|🇬🇷|GR|Greece|匈牙利|🇭🇺|HU|Hungary|冰岛|🇮🇸|IS|Iceland|爱尔兰|🇮🇪|IE|Ireland|意大利|🇮🇹|IT|Italy|拉脱维亚|🇱🇻|LV|Latvia|列支敦士登|🇱🇮|LI|Liechtenstein|立陶宛|🇱🇹|LT|Lithuania|卢森堡|🇱🇺|LU|Luxembourg|马其顿|🇲🇰|MK|Macedonia|马耳他|🇲🇹|MT|Malta|摩尔多瓦|🇲🇩|MD|Moldova|摩纳哥|🇲🇨|MC|Monaco|黑山|🇲🇪|ME|Montenegro|挪威|🇳🇴|NO|Norway|波兰|🇵🇱|PL|Poland|葡萄牙|🇵🇹|PT|Portugal|罗马尼亚|🇷🇴|RO|Romania|圣马力诺|🇸🇲|SM|San Marino|塞尔维亚|🇷🇸|RS|Serbia|斯洛伐克|🇸🇰|SK|Slovakia|斯洛文尼亚|🇸🇮|SI|Slovenia|西班牙|🇪🇸|ES|Spain|瑞典|🇸🇪|SE|Sweden|瑞士|🇨🇭|CH|Switzerland|土耳其|🇹🇷|TR|Turkey|乌克兰|🇺🇦|UA|Ukraine|梵蒂冈|🇻🇦|VA|Vatican City"}
|
||||
|
||||
# 北美洲地区
|
||||
America: &America {type: select, url: "http://www.google.com/generate_204", interval: 300, tolerance: 50, lazy: true, use: [订阅 1, 订阅 2, 订阅 3, 订阅 4, 订阅 5, 订阅 6, 订阅 7, 订阅 8],filter: "(?i)安提瓜和巴布达|🇦🇬|AG|Antigua and Barbuda|巴哈马|🇧🇸|BS|Bahamas|巴巴多斯|🇧🇧|BB|Barbados|伯利兹|🇧🇿|BZ|Belize|哥斯达黎加|🇨🇷|CR|Costa Rica|古巴|🇨🇺|CU|Cuba|多米尼克|🇩🇲|DM|Dominica|多米尼加|🇩🇴|DO|Dominican Republic|萨尔瓦多|🇸🇻|SV|El Salvador|格林纳达|🇬🇩|GD|Grenada|危地马拉|🇬🇹|GT|Guatemala|海地|🇭🇹|HT|Haiti|洪都拉斯|🇭🇳|HN|Honduras|牙买加|🇯🇲|JM|Jamaica|墨西哥|🇲🇽|MX|Mexico|尼加拉瓜|🇳🇮|NI|Nicaragua|巴拿马|🇵🇦|PA|Panama|圣基茨和尼维斯|🇰🇳|KN|Saint Kitts and Nevis|圣卢西亚|🇱🇨|LC|Saint Lucia|圣文森特和格林纳丁斯|🇻🇨|VC|Saint Vincent and the Grenadines|特立尼达和多巴哥|🇹🇹|TT|Trinidad and Tobago"}
|
||||
|
||||
# 南美洲地区
|
||||
Oceania: &Oceania {type: select, url: "http://www.google.com/generate_204", interval: 300, tolerance: 50, lazy: true, use: [订阅 1, 订阅 2, 订阅 3, 订阅 4, 订阅 5, 订阅 6, 订阅 7, 订阅 8],filter: "(?i)阿根廷|🇦🇷|AR|Argentina|玻利维亚|🇧🇴|BO|Bolivia|巴西|🇧🇷|BR|Brazil|智利|🇨🇱|CL|Chile|哥伦比亚|🇨🇴|CO|Colombia|厄瓜多尔|🇪🇨|EC|Ecuador|圭亚那|🇬🇾|GY|Guyana|巴拉圭|🇵🇾|PY|Paraguay|秘鲁|🇵🇪|PE|Peru|苏里南|🇸🇷|SR|Suriname|特立尼达和多巴哥|🇹🇹|TT|Trinidad and Tobago|乌拉圭|🇺🇾|UY|Uruguay|委内瑞拉|🇻🇪|VE|Venezuela"}
|
||||
|
||||
# 非洲地区
|
||||
Africa: &Africa {type: select, url: "http://www.google.com/generate_204", interval: 300, tolerance: 50, lazy: true, use: [订阅 1, 订阅 2, 订阅 3, 订阅 4, 订阅 5, 订阅 6, 订阅 7, 订阅 8],filter: "(?i)阿尔及利亚|🇩🇿|DZ|Algeria|安哥拉|🇦🇴|AO|Angola|贝宁|🇧🇯|BJ|Benin|博茨瓦纳|🇧🇼|BW|Botswana|布基纳法索|🇧🇫|BF|Burkina Faso|布隆迪|🇧🇮|BI|Burundi|佛得角|🇨🇻|CV|Cape Verde|喀麦隆|🇨🇲|CM|Cameroon|中非共和国|🇨🇫|CF|Central African Republic|乍得|🇹🇩|TD|Chad|科摩罗|🇰🇲|KM|Comoros|刚果(布)|🇨🇬|CG|Congo (Brazzaville)|刚果(金)|🇨🇩|CD|Congo (Kinshasa)|科特迪瓦|🇨🇮|CI|Ivory Coast|吉布提|🇩🇯|DJ|Djibouti|埃及|🇪🇬|EG|Egypt|赤道几内亚|🇬🇶|GQ|Equatorial Guinea|厄立特里亚|🇪🇷|ER|Eritrea|埃塞俄比亚|🇪🇹|ET|Ethiopia|加蓬|🇬🇦|GA|Gabon|冈比亚|🇬🇲|GM|Gambia|加纳|🇬🇭|GH|Ghana|几内亚|🇬🇳|GN|Guinea|几内亚比绍|🇬🇼|GW|Guinea-Bissau|肯尼亚|🇰🇪|KE|Kenya|莱索托|🇱🇸|LS|Lesotho|利比里亚|🇱🇷|LR|Liberia|利比亚|🇱🇾|LY|Libya|马达加斯加|🇲🇬|MG|Madagascar|马拉维|🇲🇼|MW|Malawi|马里|🇲🇱|ML|Mali|毛里塔尼亚|🇲🇷|MR|Mauritania|毛里求斯|🇲🇺|MU|Mauritius|摩洛哥|🇲🇦|MA|Morocco|莫桑比克|🇲🇿|MZ|Mozambique|纳米比亚|🇳🇦|NA|Namibia|尼日尔|🇳🇪|NE|Niger|尼日利亚|🇳🇬|NG|Nigeria|卢旺达|🇷🇼|RW|Rwanda|圣多美和普林西比|🇸🇹|ST|São Tomé and Príncipe|塞内加尔|🇸🇳|SN|Senegal|塞舌尔|🇸🇨|SC|Seychelles|塞拉利昂|🇸🇱|SL|Sierra Leone|索马里|🇸🇴|SO|Somalia|南非|🇿🇦|ZA|South Africa|南苏丹|🇸🇸|SS|South Sudan|苏丹|🇸🇩|SD|Sudan|坦桑尼亚|🇹🇿|TZ|Tanzania|多哥|🇹🇬|TG|Togo|突尼斯|🇹🇳|TN|Tunisia|乌干达|🇺🇬|UG|Uganda|赞比亚|🇿🇲|ZM|Zambia|津巴布韦|🇿🇼|ZW|Zimbabwe"}
|
||||
|
||||
# 精选节点
|
||||
best: &best {type: select, url: "http://www.google.com/generate_204", interval: 300, tolerance: 50, lazy: true, use: [订阅 1, 订阅 2, 订阅 3, 订阅 4, 订阅 5, 订阅 6, 订阅 7, 订阅 8],filter: "(?i)港|hk|hongkong|hong kong|台|tw|taiwan|日本|jp|japan|新|sg|singapore|🇺🇲|UM|U.S. Outlying Islands|🇺🇳|UN|United Nations|美国|洛杉矶|芝加哥|达拉斯|🇺🇸|US|United States|韩国|🇰🇷|KR|South Korea"}
|
||||
# 其他地区
|
||||
backup: &backup {type: select, url: "http://www.google.com/generate_204", interval: 300, tolerance: 50, lazy: true, use: [订阅 1, 订阅 2, 订阅 3, 订阅 4, 订阅 5, 订阅 6, 订阅 7, 订阅 8], exclude-filter: "(?i)港|🇭🇰|hk|hongkong|hong kong|台|🇹🇼|tw|taiwan|新|🇸🇬|sg|singapore|日本|🇯🇵|jp|japan|俄罗斯|🇷🇺|RU|Russia|美|纽约|🇺🇲|UM|U.S. Outlying Islands|🇺🇳|UN|United Nations|洛杉矶|芝加哥|达拉斯|🇺🇸|US|United States|德国|🇩🇪|DE|Germany|荷兰|🇳🇱|NL|Netherlands|印度|🇮🇳|IN|India|英国|🇬🇧|United Kingdom|法国|都柏林|🇫🇷|FR|France|加拿大|🇨🇦|CA|Canada|韩国|🇰🇷|KR|South Korea"}
|
||||
|
||||
# 自动筛选最快节点
|
||||
fly: &fly {type: url-test, url: "http://www.google.com/generate_204", interval: 300, tolerance: 50, lazy: true, use: [订阅 1, 订阅 2, 订阅 3, 订阅 4, 订阅 5, 订阅 6, 订阅 7, 订阅 8],filter: "(?i)港|hk|hongkong|hong kong|台|tw|taiwan|日本|jp|japan|新|sg|singapore|美|us|unitedstates|united states|韩国|🇰🇷|KR|South Korea"}
|
||||
@ -172,42 +154,42 @@ proxy-providers: # Meta支持机场通用订阅, 直接替换 url 后方链
|
||||
订阅 1:
|
||||
<<: *p
|
||||
url: "机场订阅"
|
||||
path: ./proxy_provider/subscription_0.yaml
|
||||
path: ./proxy_provider/subscription_1.yaml
|
||||
exclude-filter: *exclude-filter
|
||||
订阅 2:
|
||||
<<: *p
|
||||
url: "机场订阅"
|
||||
path: ./proxy_provider/subscription_1.yaml
|
||||
path: ./proxy_provider/subscription_2.yaml
|
||||
exclude-filter: *exclude-filter
|
||||
订阅 3:
|
||||
<<: *p
|
||||
url: "机场订阅"
|
||||
path: ./proxy_provider/subscription_2.yaml
|
||||
path: ./proxy_provider/subscription_3.yaml
|
||||
exclude-filter: *exclude-filter
|
||||
订阅 4:
|
||||
<<: *p
|
||||
url: "机场订阅"
|
||||
path: ./proxy_provider/subscription_3.yaml
|
||||
path: ./proxy_provider/subscription_4.yaml
|
||||
exclude-filter: *exclude-filter
|
||||
订阅 5: #
|
||||
<<: *p
|
||||
url: "机场订阅"
|
||||
path: ./proxy_provider/subscription_4.yaml
|
||||
path: ./proxy_provider/subscription_5.yaml
|
||||
exclude-filter: *exclude-filter
|
||||
订阅 6:
|
||||
<<: *p
|
||||
url: "机场订阅"
|
||||
path: ./proxy_provider/subscription_5.yaml
|
||||
path: ./proxy_provider/subscription_6.yaml
|
||||
exclude-filter: *exclude-filter
|
||||
订阅 7:
|
||||
<<: *p
|
||||
url: "机场订阅"
|
||||
path: ./proxy_provider/subscription_6.yaml
|
||||
path: ./proxy_provider/subscription_7.yaml
|
||||
exclude-filter: *exclude-filter
|
||||
订阅 8: # 手动添加节点使用
|
||||
<<: *p
|
||||
url: "机场订阅"
|
||||
path: ./proxy_provider/subscription_7.json
|
||||
path: ./proxy_provider/subscription_8.json
|
||||
exclude-filter: *exclude-filter
|
||||
proxy-groups:
|
||||
- name: "✈️ 国际代理"
|
||||
@ -216,47 +198,25 @@ proxy-groups:
|
||||
interval: 300
|
||||
tolerance: 50
|
||||
proxies:
|
||||
- 🌍️亚洲地区
|
||||
- 🌍欧洲地区
|
||||
- 🌍非洲地区
|
||||
- 🌍️南美洲地区
|
||||
- 🌍️北美洲地区
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- ♻️ 自动选择
|
||||
- 🔯 故障转移
|
||||
- 🔮 负载均衡
|
||||
- ⭕️ 直连
|
||||
- name: 🌍️亚洲地区
|
||||
type: select
|
||||
proxies:
|
||||
- 🇭🇰 香港节点
|
||||
- 🇹🇼 台湾节点
|
||||
- 🇸🇬 新加坡节点
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇺🇸 美国节点
|
||||
- 🇷🇺 俄罗斯节点
|
||||
- 🇨🇦 加拿大节点
|
||||
- 🇮🇳 印度节点
|
||||
<<: *Asia
|
||||
- name: 🌍欧洲地区
|
||||
type: select
|
||||
proxies:
|
||||
- 🇬🇧 英国节点
|
||||
- 🇫🇷 法国节点
|
||||
- 🇩🇪 德国节点
|
||||
- 🇳🇱 荷兰节点
|
||||
<<: *Europe
|
||||
- name: 🌍非洲地区
|
||||
type: select
|
||||
<<: *Africa
|
||||
- name: 🌍️北美洲地区
|
||||
type: select
|
||||
proxies:
|
||||
- 🇺🇸 美国节点
|
||||
- 🇨🇦 加拿大节点
|
||||
<<: *America
|
||||
- name: 🌍️南美洲地区
|
||||
type: select
|
||||
<<: *Oceania
|
||||
- 📌 全部节点
|
||||
- 🚀 其他地区
|
||||
- 🔯 故障转移
|
||||
- 🔮 负载均衡
|
||||
- ⭕️ 直连
|
||||
- name: "🇭🇰 香港节点"
|
||||
<<: *all
|
||||
filter: "(?i)港|🇭🇰|hk|hongkong|hong kong"
|
||||
@ -296,6 +256,9 @@ proxy-groups:
|
||||
- name: "🇨🇦 加拿大节点"
|
||||
<<: *all
|
||||
filter: "(?i)加拿大|🇨🇦|CA|Canada"
|
||||
- name: "🚀 其他地区"
|
||||
type: select
|
||||
<<: *backup
|
||||
- name: "🎥 国际媒体"
|
||||
type: select
|
||||
proxies:
|
||||
@ -306,8 +269,8 @@ proxy-groups:
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇺🇸 美国节点
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- 📌 全部节点
|
||||
- 🚀 其他地区
|
||||
- ♻️ 自动选择
|
||||
- 🔯 故障转移
|
||||
- 🔮 负载均衡
|
||||
@ -323,13 +286,8 @@ proxy-groups:
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇺🇸 美国节点
|
||||
- 🌍️亚洲地区
|
||||
- 🌍欧洲地区
|
||||
- 🌍非洲地区
|
||||
- 🌍️南美洲地区
|
||||
- 🌍️北美洲地区
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- 📌 全部节点
|
||||
- 🚀 其他地区
|
||||
- ⭕️ 直连
|
||||
- name: 📹 油管视频
|
||||
type: select
|
||||
@ -342,13 +300,8 @@ proxy-groups:
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇺🇸 美国节点
|
||||
- 🌍️亚洲地区
|
||||
- 🌍欧洲地区
|
||||
- 🌍非洲地区
|
||||
- 🌍️南美洲地区
|
||||
- 🌍️北美洲地区
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- 📌 全部节点
|
||||
- 🚀 其他地区
|
||||
- ⭕️ 直连
|
||||
- name: "📺 网飞视频"
|
||||
type: select
|
||||
@ -361,13 +314,8 @@ proxy-groups:
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇺🇸 美国节点
|
||||
- 🌍️亚洲地区
|
||||
- 🌍欧洲地区
|
||||
- 🌍非洲地区
|
||||
- 🌍️南美洲地区
|
||||
- 🌍️北美洲地区
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- 📌 全部节点
|
||||
- 🚀 其他地区
|
||||
- ⭕️ 直连
|
||||
- name: "🎬 迪士尼+"
|
||||
type: select
|
||||
@ -380,13 +328,8 @@ proxy-groups:
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇺🇸 美国节点
|
||||
- 🌍️亚洲地区
|
||||
- 🌍欧洲地区
|
||||
- 🌍非洲地区
|
||||
- 🌍️南美洲地区
|
||||
- 🌍️北美洲地区
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- 📌 全部节点
|
||||
- 🚀 其他地区
|
||||
- ⭕️ 直连
|
||||
- name: "🤖 OpenAI"
|
||||
type: select
|
||||
@ -399,13 +342,8 @@ proxy-groups:
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇺🇸 美国节点
|
||||
- 🌍️亚洲地区
|
||||
- 🌍欧洲地区
|
||||
- 🌍非洲地区
|
||||
- 🌍️南美洲地区
|
||||
- 🌍️北美洲地区
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- 📌 全部节点
|
||||
- 🚀 其他地区
|
||||
- ⭕️ 直连
|
||||
- name: "📡 电报服务"
|
||||
type: select
|
||||
@ -418,13 +356,8 @@ proxy-groups:
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇺🇸 美国节点
|
||||
- 🌍️亚洲地区
|
||||
- 🌍欧洲地区
|
||||
- 🌍非洲地区
|
||||
- 🌍️南美洲地区
|
||||
- 🌍️北美洲地区
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- 📌 全部节点
|
||||
- 🚀 其他地区
|
||||
- ⭕️ 直连
|
||||
- name: "🍎 苹果服务"
|
||||
type: select
|
||||
@ -437,13 +370,8 @@ proxy-groups:
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇺🇸 美国节点
|
||||
- 🌍️亚洲地区
|
||||
- 🌍欧洲地区
|
||||
- 🌍非洲地区
|
||||
- 🌍️南美洲地区
|
||||
- 🌍️北美洲地区
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- 📌 全部节点
|
||||
- 🚀 其他地区
|
||||
- name: "Ⓜ️ 微软服务"
|
||||
type: select
|
||||
proxies:
|
||||
@ -469,7 +397,6 @@ proxy-groups:
|
||||
proxies:
|
||||
- 📽 国内媒体
|
||||
- ⭕️ 直连
|
||||
|
||||
- name: "🌏 大陆网络"
|
||||
type: select
|
||||
proxies:
|
||||
@ -479,7 +406,12 @@ proxy-groups:
|
||||
type: select
|
||||
proxies:
|
||||
- 🌏 大陆网络
|
||||
- 🌍️亚洲地区
|
||||
- 🇭🇰 香港节点
|
||||
- 🇹🇼 台湾节点
|
||||
- 🇸🇬 新加坡节点
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇺🇸 美国节点
|
||||
- name: "🆎 广告拦截"
|
||||
type: select
|
||||
proxies:
|
||||
@ -499,12 +431,9 @@ proxy-groups:
|
||||
interval: 300
|
||||
proxies:
|
||||
<<: *all
|
||||
- name: "📌 精选节点"
|
||||
- name: "📌 全部节点"
|
||||
type: select
|
||||
<<: *best
|
||||
- name: "🚀 备用应急"
|
||||
type: select
|
||||
<<: *backup
|
||||
<<: *all
|
||||
- name: ♻️ 自动选择
|
||||
<<: *fly
|
||||
- name: 🔯 故障转移
|
||||
@ -525,13 +454,20 @@ proxy-groups:
|
||||
type: select
|
||||
proxies:
|
||||
- ✈️ 国际代理
|
||||
- 🌍️亚洲地区
|
||||
- 🌍欧洲地区
|
||||
- 🌍非洲地区
|
||||
- 🌍️南美洲地区
|
||||
- 🌍️北美洲地区
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- 🇭🇰 香港节点
|
||||
- 🇹🇼 台湾节点
|
||||
- 🇸🇬 新加坡节点
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇺🇸 美国节点
|
||||
- 🇨🇦 加拿大节点
|
||||
- 🇮🇳 印度节点
|
||||
- 🇬🇧 英国节点
|
||||
- 🇫🇷 法国节点
|
||||
- 🇩🇪 德国节点
|
||||
- 🇳🇱 荷兰节点
|
||||
- 📌 全部节点
|
||||
- 🚀 其他地区
|
||||
- ⭕️ 直连
|
||||
rule-providers:
|
||||
# 直连和广告拦截
|
||||
|
992
luci-app-nekobox/root/etc/neko/config/mihomo_1.yaml
Normal file
992
luci-app-nekobox/root/etc/neko/config/mihomo_1.yaml
Normal file
@ -0,0 +1,992 @@
|
||||
# 2024年09月13日 13:40 By:𝐓𝐮𝐚̂𝐧 𝐁𝐞́ UTC/GMT +8
|
||||
|
||||
redir-port: 7892
|
||||
port: 7890
|
||||
socks-port: 7891
|
||||
mixed-port: 7893
|
||||
mode: rule
|
||||
log-level: info
|
||||
allow-lan: true
|
||||
unified-delay: true
|
||||
external-controller: 0.0.0.0:9090
|
||||
secret: Akun
|
||||
bind-address: 0.0.0.0
|
||||
external-ui: ui
|
||||
tproxy-port: 7895
|
||||
tcp-concurrent: true
|
||||
enable-process: true
|
||||
find-process-mode: always
|
||||
ipv6: true
|
||||
|
||||
experimental:
|
||||
ignore-resolve-fail: true
|
||||
sniff-tls-sni: true
|
||||
tracing: true
|
||||
hosts:
|
||||
"localhost": 127.0.0.1
|
||||
profile:
|
||||
store-selected: true
|
||||
store-fake-ip: true
|
||||
|
||||
sniffer:
|
||||
enable: true
|
||||
sniff:
|
||||
http: { ports: [1-442, 444-8442, 8444-65535], override-destination: true }
|
||||
tls: { ports: [1-79, 81-8079, 8081-65535], override-destination: true }
|
||||
force-domain:
|
||||
- "+.v2ex.com"
|
||||
- www.google.com
|
||||
- google.com
|
||||
skip-domain:
|
||||
- Mijia Cloud
|
||||
- dlg.io.mi.com
|
||||
sniffing:
|
||||
- tls
|
||||
- http
|
||||
port-whitelist:
|
||||
- "80"
|
||||
- "443"
|
||||
|
||||
tun:
|
||||
enable: true
|
||||
prefer-h3: true
|
||||
listen: 0.0.0.0:53
|
||||
stack: gvisor
|
||||
dns-hijack:
|
||||
- "any:53"
|
||||
- "tcp://any:53"
|
||||
auto-redir: true
|
||||
auto-route: true
|
||||
auto-detect-interface: true
|
||||
|
||||
dns:
|
||||
enable: true
|
||||
ipv6: true
|
||||
default-nameserver:
|
||||
- '1.1.1.1'
|
||||
- '8.8.8.8'
|
||||
enhanced-mode: fake-ip
|
||||
fake-ip-range: 198.18.0.1/16
|
||||
fake-ip-filter:
|
||||
- 'stun.*.*'
|
||||
- 'stun.*.*.*'
|
||||
- '+.stun.*.*'
|
||||
- '+.stun.*.*.*'
|
||||
- '+.stun.*.*.*.*'
|
||||
- '+.stun.*.*.*.*.*'
|
||||
- '*.lan'
|
||||
- '+.msftncsi.com'
|
||||
- msftconnecttest.com
|
||||
- 'time?.*.com'
|
||||
- 'time.*.com'
|
||||
- 'time.*.gov'
|
||||
- 'time.*.apple.com'
|
||||
- time-ios.apple.com
|
||||
- 'time1.*.com'
|
||||
- 'time2.*.com'
|
||||
- 'time3.*.com'
|
||||
- 'time4.*.com'
|
||||
- 'time5.*.com'
|
||||
- 'time6.*.com'
|
||||
- 'time7.*.com'
|
||||
- 'ntp?.*.com'
|
||||
- 'ntp.*.com'
|
||||
- 'ntp1.*.com'
|
||||
- 'ntp2.*.com'
|
||||
- 'ntp3.*.com'
|
||||
- 'ntp4.*.com'
|
||||
- 'ntp5.*.com'
|
||||
- 'ntp6.*.com'
|
||||
- 'ntp7.*.com'
|
||||
- '+.pool.ntp.org'
|
||||
- '+.ipv6.microsoft.com'
|
||||
- speedtest.cros.wr.pvp.net
|
||||
- network-test.debian.org
|
||||
- detectportal.firefox.com
|
||||
- cable.auth.com
|
||||
- miwifi.com
|
||||
- routerlogin.com
|
||||
- routerlogin.net
|
||||
- tendawifi.com
|
||||
- tendawifi.net
|
||||
- tplinklogin.net
|
||||
- tplinkwifi.net
|
||||
- '*.xiami.com'
|
||||
- tplinkrepeater.net
|
||||
- router.asus.com
|
||||
- '*.*.*.srv.nintendo.net'
|
||||
- '*.*.stun.playstation.net'
|
||||
- '*.openwrt.pool.ntp.org'
|
||||
- resolver1.opendns.com
|
||||
- 'GC._msDCS.*.*'
|
||||
- 'DC._msDCS.*.*'
|
||||
- 'PDC._msDCS.*.*'
|
||||
use-hosts: true
|
||||
|
||||
nameserver:
|
||||
- '8.8.4.4'
|
||||
- '1.0.0.1'
|
||||
- "https://1.0.0.1/dns-query"
|
||||
- "https://8.8.4.4/dns-query"
|
||||
|
||||
###开始建立锚点
|
||||
|
||||
# 所有节点
|
||||
all: &all {type: select, use: [订阅 1, 订阅 2, 订阅 3, 订阅 4, 订阅 5, 订阅 6, 订阅 7, 订阅 8]}
|
||||
filtered_lines: &filtered_lines # 处理重复节点
|
||||
- *all
|
||||
final_lines: *filtered_lines
|
||||
|
||||
# 备用应急
|
||||
backup: &backup {type: select, url: "http://www.google.com/generate_204", interval: 300, tolerance: 50, lazy: true, use: [订阅 1, 订阅 2, 订阅 3, 订阅 4, 订阅 5, 订阅 6, 订阅 7, 订阅 8], filter: "(?i)津巴布韦|🇿🇼|ZW|Zimbabwe|越南|🇻🇳|VNVietnam|乌克兰|🇺🇦|UA|Ukraine|土耳其|🇹🇷|Turkey|法国|都柏林|🇫🇷|FR|France|阿根廷|🇦🇷|AR|Argentina|印度|🇮🇳|IN|India|加拿大|🇨🇦|CA|Canada|马来西亚|🇲🇾|MY|Malaysia|德国|🇩🇪|DE|Germany|荷兰|🇳🇱|NL|Netherlands|泰国|🇹🇭|TH|Thailand|澳大利亚|🇦🇺|AU|Australia|西班牙|🇪🇸|ES|Spain|爱沙尼亚|🇪🇪|EE|Estonia|英国|🇬🇧|United Kingdom|巴西|🇧🇷|BR|Brazil|印度|🇮🇳|IN|India|阿联酋迪拜|🇦🇪|AE|United Arab Emirates|南非|🇿🇦|ZA|South Africa|奥地利|🇦🇹|AT|Austria|哈萨克斯坦|🇰🇿|KZ|Kazakhstan|立陶宛|🇱🇹|LT|Lithuania|瑞士|🇨🇭|CH|Switzerland|瑞典|🇸🇪|SE|Sweden"}
|
||||
|
||||
# 亚洲地区
|
||||
Asia: &Asia {type: selectk, url: "http://www.google.com/generate_204", interval: 300, tolerance: 50, lazy: true, use: [订阅 1, 订阅 2, 订阅 3, 订阅 4, 订阅 5, 订阅 6, 订阅 7, 订阅 8], filter: "(?i)阿富汗|🇦🇫|AF|Afghanistan|亚美尼亚|🇦🇲|AM|Armenia|阿塞拜疆|🇦🇿|AZ|Azerbaijan|孟加拉国|🇧🇩|BD|Bangladesh|不丹|🇧🇹|BT|Bhutan|文莱|🇧🇳|BN|Brunei|柬埔寨|🇰🇭|KH|Cambodia|中国|🇨🇳|CN|China|塞浦路斯|🇨🇾|CY|Cyprus|东帝汶|🇹🇱|TL|Timor-Leste|格鲁吉亚|🇬🇪|GE|Georgia|印度尼西亚|🇮🇩|ID|Indonesia|伊朗|🇮🇷|IR|Iran|伊拉克|🇮🇶|IQ|Iraq|以色列|🇮🇱|IL|Israel|约旦|🇯🇴|JO|Jordan|哈萨克斯坦|🇰🇿|KZ|Kazakhstan|科威特|🇰🇼|KW|Kuwait|吉尔吉斯斯坦|🇰🇬|KG|Kyrgyzstan|老挝|🇱🇦|LA|Laos|黎巴嫩|🇱🇧|LB|Lebanon|马来西亚|🇲🇾|MY|Malaysia|马尔代夫|🇲🇻|MV|Maldives|蒙古|🇲🇳|MN|Mongolia|缅甸|🇲🇲|MM|Myanmar|尼泊尔|🇳🇵|NP|Nepal|朝鲜|🇰🇵|KP|North Korea|阿曼|🇴🇲|OM|Oman|巴基斯坦|🇵🇰|PK|Pakistan|巴勒斯坦|🇵🇸|PS|Palestine|菲律宾|🇵🇭|PH|Philippines|卡塔尔|🇶🇦|QA|Qatar|沙特阿拉伯|🇸🇦|SA|Saudi Arabia|斯里兰卡|🇱🇰|LK|Sri Lanka|叙利亚|🇸🇾|SY|Syria|塔吉克斯坦|🇹🇯|TJ|Tajikistan|泰国|🇹🇭|TH|Thailand|土库曼斯坦|🇹🇲|TM|Turkmenistan|阿联酋|🇦🇪|AE|United Arab Emirates|乌兹别克斯坦|🇺🇿|UY|Uzbekistan|也门|🇾🇪|YE|Yemen|越南|🇻🇳|VNVietnam"}
|
||||
|
||||
# 欧洲地区
|
||||
Europe: &Europe {type: select, url: "http://www.google.com/generate_204", interval: 300, tolerance: 50, lazy: true, use: [订阅 1, 订阅 2, 订阅 3, 订阅 4, 订阅 5, 订阅 6, 订阅 7, 订阅 8],filter: "(?i)阿尔巴尼亚|🇦🇱|AL|Albania|安道尔|🇦🇩|AD|Andorra|亚美尼亚|🇦🇲|AM|Armenia|奥地利|🇦🇹|AT|Austria|阿塞拜疆|🇦🇿|AZ|Azerbaijan|白俄罗斯|🇧🇾|BY|Belarus|比利时|🇧🇪|BE|Belgium|波黑|🇧🇦|BA|Bosnia and Herzegovina|保加利亚|🇧🇬|BG|Bulgaria|克罗地亚|🇭🇷|HR|Croatia|塞浦路斯|🇨🇾|CY|Cyprus|捷克|🇨🇿|CZ|Czech Republic|丹麦|🇩🇰|DK|Denmark|爱沙尼亚|🇪🇪|EE|Estonia|芬兰|🇫🇮|FI|Finland|格鲁吉亚|🇬🇪|GE|Georgia|希腊|🇬🇷|GR|Greece|匈牙利|🇭🇺|HU|Hungary|冰岛|🇮🇸|IS|Iceland|爱尔兰|🇮🇪|IE|Ireland|意大利|🇮🇹|IT|Italy|拉脱维亚|🇱🇻|LV|Latvia|列支敦士登|🇱🇮|LI|Liechtenstein|立陶宛|🇱🇹|LT|Lithuania|卢森堡|🇱🇺|LU|Luxembourg|马其顿|🇲🇰|MK|Macedonia|马耳他|🇲🇹|MT|Malta|摩尔多瓦|🇲🇩|MD|Moldova|摩纳哥|🇲🇨|MC|Monaco|黑山|🇲🇪|ME|Montenegro|挪威|🇳🇴|NO|Norway|波兰|🇵🇱|PL|Poland|葡萄牙|🇵🇹|PT|Portugal|罗马尼亚|🇷🇴|RO|Romania|圣马力诺|🇸🇲|SM|San Marino|塞尔维亚|🇷🇸|RS|Serbia|斯洛伐克|🇸🇰|SK|Slovakia|斯洛文尼亚|🇸🇮|SI|Slovenia|西班牙|🇪🇸|ES|Spain|瑞典|🇸🇪|SE|Sweden|瑞士|🇨🇭|CH|Switzerland|土耳其|🇹🇷|TR|Turkey|乌克兰|🇺🇦|UA|Ukraine|梵蒂冈|🇻🇦|VA|Vatican City"}
|
||||
|
||||
# 北美洲地区
|
||||
America: &America {type: select, url: "http://www.google.com/generate_204", interval: 300, tolerance: 50, lazy: true, use: [订阅 1, 订阅 2, 订阅 3, 订阅 4, 订阅 5, 订阅 6, 订阅 7, 订阅 8],filter: "(?i)安提瓜和巴布达|🇦🇬|AG|Antigua and Barbuda|巴哈马|🇧🇸|BS|Bahamas|巴巴多斯|🇧🇧|BB|Barbados|伯利兹|🇧🇿|BZ|Belize|哥斯达黎加|🇨🇷|CR|Costa Rica|古巴|🇨🇺|CU|Cuba|多米尼克|🇩🇲|DM|Dominica|多米尼加|🇩🇴|DO|Dominican Republic|萨尔瓦多|🇸🇻|SV|El Salvador|格林纳达|🇬🇩|GD|Grenada|危地马拉|🇬🇹|GT|Guatemala|海地|🇭🇹|HT|Haiti|洪都拉斯|🇭🇳|HN|Honduras|牙买加|🇯🇲|JM|Jamaica|墨西哥|🇲🇽|MX|Mexico|尼加拉瓜|🇳🇮|NI|Nicaragua|巴拿马|🇵🇦|PA|Panama|圣基茨和尼维斯|🇰🇳|KN|Saint Kitts and Nevis|圣卢西亚|🇱🇨|LC|Saint Lucia|圣文森特和格林纳丁斯|🇻🇨|VC|Saint Vincent and the Grenadines|特立尼达和多巴哥|🇹🇹|TT|Trinidad and Tobago"}
|
||||
|
||||
# 南美洲地区
|
||||
Oceania: &Oceania {type: select, url: "http://www.google.com/generate_204", interval: 300, tolerance: 50, lazy: true, use: [订阅 1, 订阅 2, 订阅 3, 订阅 4, 订阅 5, 订阅 6, 订阅 7, 订阅 8],filter: "(?i)阿根廷|🇦🇷|AR|Argentina|玻利维亚|🇧🇴|BO|Bolivia|巴西|🇧🇷|BR|Brazil|智利|🇨🇱|CL|Chile|哥伦比亚|🇨🇴|CO|Colombia|厄瓜多尔|🇪🇨|EC|Ecuador|圭亚那|🇬🇾|GY|Guyana|巴拉圭|🇵🇾|PY|Paraguay|秘鲁|🇵🇪|PE|Peru|苏里南|🇸🇷|SR|Suriname|特立尼达和多巴哥|🇹🇹|TT|Trinidad and Tobago|乌拉圭|🇺🇾|UY|Uruguay|委内瑞拉|🇻🇪|VE|Venezuela"}
|
||||
|
||||
# 非洲地区
|
||||
Africa: &Africa {type: select, url: "http://www.google.com/generate_204", interval: 300, tolerance: 50, lazy: true, use: [订阅 1, 订阅 2, 订阅 3, 订阅 4, 订阅 5, 订阅 6, 订阅 7, 订阅 8],filter: "(?i)阿尔及利亚|🇩🇿|DZ|Algeria|安哥拉|🇦🇴|AO|Angola|贝宁|🇧🇯|BJ|Benin|博茨瓦纳|🇧🇼|BW|Botswana|布基纳法索|🇧🇫|BF|Burkina Faso|布隆迪|🇧🇮|BI|Burundi|佛得角|🇨🇻|CV|Cape Verde|喀麦隆|🇨🇲|CM|Cameroon|中非共和国|🇨🇫|CF|Central African Republic|乍得|🇹🇩|TD|Chad|科摩罗|🇰🇲|KM|Comoros|刚果(布)|🇨🇬|CG|Congo (Brazzaville)|刚果(金)|🇨🇩|CD|Congo (Kinshasa)|科特迪瓦|🇨🇮|CI|Ivory Coast|吉布提|🇩🇯|DJ|Djibouti|埃及|🇪🇬|EG|Egypt|赤道几内亚|🇬🇶|GQ|Equatorial Guinea|厄立特里亚|🇪🇷|ER|Eritrea|埃塞俄比亚|🇪🇹|ET|Ethiopia|加蓬|🇬🇦|GA|Gabon|冈比亚|🇬🇲|GM|Gambia|加纳|🇬🇭|GH|Ghana|几内亚|🇬🇳|GN|Guinea|几内亚比绍|🇬🇼|GW|Guinea-Bissau|肯尼亚|🇰🇪|KE|Kenya|莱索托|🇱🇸|LS|Lesotho|利比里亚|🇱🇷|LR|Liberia|利比亚|🇱🇾|LY|Libya|马达加斯加|🇲🇬|MG|Madagascar|马拉维|🇲🇼|MW|Malawi|马里|🇲🇱|ML|Mali|毛里塔尼亚|🇲🇷|MR|Mauritania|毛里求斯|🇲🇺|MU|Mauritius|摩洛哥|🇲🇦|MA|Morocco|莫桑比克|🇲🇿|MZ|Mozambique|纳米比亚|🇳🇦|NA|Namibia|尼日尔|🇳🇪|NE|Niger|尼日利亚|🇳🇬|NG|Nigeria|卢旺达|🇷🇼|RW|Rwanda|圣多美和普林西比|🇸🇹|ST|São Tomé and Príncipe|塞内加尔|🇸🇳|SN|Senegal|塞舌尔|🇸🇨|SC|Seychelles|塞拉利昂|🇸🇱|SL|Sierra Leone|索马里|🇸🇴|SO|Somalia|南非|🇿🇦|ZA|South Africa|南苏丹|🇸🇸|SS|South Sudan|苏丹|🇸🇩|SD|Sudan|坦桑尼亚|🇹🇿|TZ|Tanzania|多哥|🇹🇬|TG|Togo|突尼斯|🇹🇳|TN|Tunisia|乌干达|🇺🇬|UG|Uganda|赞比亚|🇿🇲|ZM|Zambia|津巴布韦|🇿🇼|ZW|Zimbabwe"}
|
||||
|
||||
# 精选节点
|
||||
best: &best {type: select, url: "http://www.google.com/generate_204", interval: 300, tolerance: 50, lazy: true, use: [订阅 1, 订阅 2, 订阅 3, 订阅 4, 订阅 5, 订阅 6, 订阅 7, 订阅 8],filter: "(?i)港|hk|hongkong|hong kong|台|tw|taiwan|日本|jp|japan|新|sg|singapore|🇺🇲|UM|U.S. Outlying Islands|🇺🇳|UN|United Nations|美国|洛杉矶|芝加哥|达拉斯|🇺🇸|US|United States|韩国|🇰🇷|KR|South Korea"}
|
||||
|
||||
# 自动筛选最快节点
|
||||
fly: &fly {type: url-test, url: "http://www.google.com/generate_204", interval: 300, tolerance: 50, lazy: true, use: [订阅 1, 订阅 2, 订阅 3, 订阅 4, 订阅 5, 订阅 6, 订阅 7, 订阅 8],filter: "(?i)港|hk|hongkong|hong kong|台|tw|taiwan|日本|jp|japan|新|sg|singapore|美|us|unitedstates|united states|韩国|🇰🇷|KR|South Korea"}
|
||||
# 订阅更新和延迟测试相关
|
||||
p: &p {type: http, interval: 21600, health-check: {enable: true, url: "http://www.google.com/generate_204", interval: 1800, filter: "(?i)^(?!unavailable).*$"}}
|
||||
|
||||
# 订阅节点关键字过滤
|
||||
exclude-filter-list: &exclude-filter "剩余流量|距离下次重置剩余|套餐到期|跳转域名{请勿连接}|邀请好友|关注频道|收费就说明被骗了"
|
||||
|
||||
###结束建立锚点
|
||||
|
||||
proxy-providers: # Meta支持机场通用订阅, 直接替换 url 后方链接使用
|
||||
订阅 1:
|
||||
<<: *p
|
||||
url: "机场订阅"
|
||||
path: ./proxy_provider/subscription_1.yaml
|
||||
exclude-filter: *exclude-filter
|
||||
订阅 2:
|
||||
<<: *p
|
||||
url: "机场订阅"
|
||||
path: ./proxy_provider/subscription_2.yaml
|
||||
exclude-filter: *exclude-filter
|
||||
订阅 3:
|
||||
<<: *p
|
||||
url: "机场订阅"
|
||||
path: ./proxy_provider/subscription_3.yaml
|
||||
exclude-filter: *exclude-filter
|
||||
订阅 4:
|
||||
<<: *p
|
||||
url: "机场订阅"
|
||||
path: ./proxy_provider/subscription_4.yaml
|
||||
exclude-filter: *exclude-filter
|
||||
订阅 5: #
|
||||
<<: *p
|
||||
url: "机场订阅"
|
||||
path: ./proxy_provider/subscription_5.yaml
|
||||
exclude-filter: *exclude-filter
|
||||
订阅 6:
|
||||
<<: *p
|
||||
url: "机场订阅"
|
||||
path: ./proxy_provider/subscription_6.yaml
|
||||
exclude-filter: *exclude-filter
|
||||
订阅 7:
|
||||
<<: *p
|
||||
url: "机场订阅"
|
||||
path: ./proxy_provider/subscription_7.yaml
|
||||
exclude-filter: *exclude-filter
|
||||
订阅 8: # 手动添加节点使用
|
||||
<<: *p
|
||||
url: "机场订阅"
|
||||
path: ./proxy_provider/subscription_8.json
|
||||
exclude-filter: *exclude-filter
|
||||
proxy-groups:
|
||||
- name: "✈️ 国际代理"
|
||||
type: select
|
||||
url: http://www.gstatic.com/generate_204
|
||||
interval: 300
|
||||
tolerance: 50
|
||||
proxies:
|
||||
- 🌍️亚洲地区
|
||||
- 🌍欧洲地区
|
||||
- 🌍非洲地区
|
||||
- 🌍️南美洲地区
|
||||
- 🌍️北美洲地区
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- ♻️ 自动选择
|
||||
- 🔯 故障转移
|
||||
- 🔮 负载均衡
|
||||
- ⭕️ 直连
|
||||
- name: 🌍️亚洲地区
|
||||
type: select
|
||||
proxies:
|
||||
- 🇭🇰 香港节点
|
||||
- 🇹🇼 台湾节点
|
||||
- 🇸🇬 新加坡节点
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇮🇳 印度节点
|
||||
<<: *Asia
|
||||
- name: 🌍欧洲地区
|
||||
type: select
|
||||
proxies:
|
||||
- 🇬🇧 英国节点
|
||||
- 🇫🇷 法国节点
|
||||
- 🇩🇪 德国节点
|
||||
- 🇳🇱 荷兰节点
|
||||
<<: *Europe
|
||||
- name: 🌍非洲地区
|
||||
type: select
|
||||
<<: *Africa
|
||||
- name: 🌍️北美洲地区
|
||||
type: select
|
||||
proxies:
|
||||
- 🇺🇸 美国节点
|
||||
- 🇨🇦 加拿大节点
|
||||
<<: *America
|
||||
- name: 🌍️南美洲地区
|
||||
type: select
|
||||
<<: *Oceania
|
||||
- name: "🇭🇰 香港节点"
|
||||
<<: *all
|
||||
filter: "(?i)港|🇭🇰|hk|hongkong|hong kong"
|
||||
- name: "🇹🇼 台湾节点"
|
||||
<<: *all
|
||||
filter: "(?i)台|🇹🇼|tw|taiwan"
|
||||
- name: "🇸🇬 新加坡节点"
|
||||
<<: *all
|
||||
filter: "(?i)新|🇸🇬|sg|singapore"
|
||||
- name: "🇯🇵 日本节点"
|
||||
<<: *all
|
||||
filter: "(?i)日本|🇯🇵|jp|japan"
|
||||
- name: "🇷🇺 俄罗斯节点"
|
||||
<<: *all
|
||||
filter: "(?i)俄罗斯|🇷🇺|RU|Russia"
|
||||
- name: "🇰🇷 韩国节点"
|
||||
<<: *all
|
||||
filter: "(?i)韩国|🇰🇷|KR|South Korea"
|
||||
- name: "🇺🇸 美国节点"
|
||||
<<: *all
|
||||
filter: "(?i)美|纽约|🇺🇲|UM|U.S. Outlying Islands|🇺🇳|UN|United Nations|洛杉矶|芝加哥|达拉斯|🇺🇸|US|United States"
|
||||
- name: "🇩🇪 德国节点"
|
||||
<<: *all
|
||||
filter: "(?i)德国|🇩🇪|DE|Germany"
|
||||
- name: "🇳🇱 荷兰节点"
|
||||
<<: *all
|
||||
filter: "(?i)荷兰|🇳🇱|NL|Netherlands"
|
||||
- name: "🇮🇳 印度节点"
|
||||
<<: *all
|
||||
filter: "(?i)印度|🇮🇳|IN|India"
|
||||
- name: "🇬🇧 英国节点"
|
||||
<<: *all
|
||||
filter: "(?i)英国|🇬🇧|United Kingdom"
|
||||
- name: "🇫🇷 法国节点"
|
||||
<<: *all
|
||||
filter: "(?i)法国|都柏林|🇫🇷|FR|France"
|
||||
- name: "🇨🇦 加拿大节点"
|
||||
<<: *all
|
||||
filter: "(?i)加拿大|🇨🇦|CA|Canada"
|
||||
- name: "🎥 国际媒体"
|
||||
type: select
|
||||
proxies:
|
||||
- ✈️ 国际代理
|
||||
- 🇭🇰 香港节点
|
||||
- 🇹🇼 台湾节点
|
||||
- 🇸🇬 新加坡节点
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇺🇸 美国节点
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- ♻️ 自动选择
|
||||
- 🔯 故障转移
|
||||
- 🔮 负载均衡
|
||||
- ⭕️ 直连
|
||||
- name: "🎶 国际抖音"
|
||||
type: select
|
||||
proxies:
|
||||
- 🎥 国际媒体
|
||||
- ✈️ 国际代理
|
||||
- 🇭🇰 香港节点
|
||||
- 🇹🇼 台湾节点
|
||||
- 🇸🇬 新加坡节点
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇺🇸 美国节点
|
||||
- 🌍️亚洲地区
|
||||
- 🌍欧洲地区
|
||||
- 🌍非洲地区
|
||||
- 🌍️南美洲地区
|
||||
- 🌍️北美洲地区
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- ⭕️ 直连
|
||||
- name: 📹 油管视频
|
||||
type: select
|
||||
proxies:
|
||||
- 🎥 国际媒体
|
||||
- ✈️ 国际代理
|
||||
- 🇭🇰 香港节点
|
||||
- 🇹🇼 台湾节点
|
||||
- 🇸🇬 新加坡节点
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇺🇸 美国节点
|
||||
- 🌍️亚洲地区
|
||||
- 🌍欧洲地区
|
||||
- 🌍非洲地区
|
||||
- 🌍️南美洲地区
|
||||
- 🌍️北美洲地区
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- ⭕️ 直连
|
||||
- name: "📺 网飞视频"
|
||||
type: select
|
||||
proxies:
|
||||
- 🎥 国际媒体
|
||||
- ✈️ 国际代理
|
||||
- 🇭🇰 香港节点
|
||||
- 🇹🇼 台湾节点
|
||||
- 🇸🇬 新加坡节点
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇺🇸 美国节点
|
||||
- 🌍️亚洲地区
|
||||
- 🌍欧洲地区
|
||||
- 🌍非洲地区
|
||||
- 🌍️南美洲地区
|
||||
- 🌍️北美洲地区
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- ⭕️ 直连
|
||||
- name: "🎬 迪士尼+"
|
||||
type: select
|
||||
proxies:
|
||||
- 🎥 国际媒体
|
||||
- ✈️ 国际代理
|
||||
- 🇭🇰 香港节点
|
||||
- 🇹🇼 台湾节点
|
||||
- 🇸🇬 新加坡节点
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇺🇸 美国节点
|
||||
- 🌍️亚洲地区
|
||||
- 🌍欧洲地区
|
||||
- 🌍非洲地区
|
||||
- 🌍️南美洲地区
|
||||
- 🌍️北美洲地区
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- ⭕️ 直连
|
||||
- name: "🤖 OpenAI"
|
||||
type: select
|
||||
proxies:
|
||||
- 🎥 国际媒体
|
||||
- ✈️ 国际代理
|
||||
- 🇭🇰 香港节点
|
||||
- 🇹🇼 台湾节点
|
||||
- 🇸🇬 新加坡节点
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇺🇸 美国节点
|
||||
- 🌍️亚洲地区
|
||||
- 🌍欧洲地区
|
||||
- 🌍非洲地区
|
||||
- 🌍️南美洲地区
|
||||
- 🌍️北美洲地区
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- ⭕️ 直连
|
||||
- name: "📡 电报服务"
|
||||
type: select
|
||||
proxies:
|
||||
- 🎥 国际媒体
|
||||
- ✈️ 国际代理
|
||||
- 🇭🇰 香港节点
|
||||
- 🇹🇼 台湾节点
|
||||
- 🇸🇬 新加坡节点
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇺🇸 美国节点
|
||||
- 🌍️亚洲地区
|
||||
- 🌍欧洲地区
|
||||
- 🌍非洲地区
|
||||
- 🌍️南美洲地区
|
||||
- 🌍️北美洲地区
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- ⭕️ 直连
|
||||
- name: "🍎 苹果服务"
|
||||
type: select
|
||||
proxies:
|
||||
- ⭕️ 直连
|
||||
- ✈️ 国际代理
|
||||
- 🇭🇰 香港节点
|
||||
- 🇹🇼 台湾节点
|
||||
- 🇸🇬 新加坡节点
|
||||
- 🇯🇵 日本节点
|
||||
- 🇰🇷 韩国节点
|
||||
- 🇺🇸 美国节点
|
||||
- 🌍️亚洲地区
|
||||
- 🌍欧洲地区
|
||||
- 🌍非洲地区
|
||||
- 🌍️南美洲地区
|
||||
- 🌍️北美洲地区
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- name: "Ⓜ️ 微软服务"
|
||||
type: select
|
||||
proxies:
|
||||
- ⭕️ 直连
|
||||
- ✈️ 国际代理
|
||||
- name: "🎮 游戏平台"
|
||||
type: select
|
||||
proxies:
|
||||
- ✈️ 国际代理
|
||||
- ⭕️ 直连
|
||||
- name: "🎧 声田音乐"
|
||||
type: select
|
||||
proxies:
|
||||
- 🎥 国际媒体
|
||||
- ⭕️ 直连
|
||||
- name: "💳 贝宝服务"
|
||||
type: select
|
||||
proxies:
|
||||
- ✈️ 国际代理
|
||||
- ⭕️ 直连
|
||||
- name: "🎵 网易云音乐"
|
||||
type: select
|
||||
proxies:
|
||||
- 📽 国内媒体
|
||||
- ⭕️ 直连
|
||||
|
||||
- name: "🌏 大陆网络"
|
||||
type: select
|
||||
proxies:
|
||||
- ⭕️ 直连
|
||||
- ✈️ 国际代理
|
||||
- name: "📽 国内媒体"
|
||||
type: select
|
||||
proxies:
|
||||
- 🌏 大陆网络
|
||||
- 🌍️亚洲地区
|
||||
- name: "🆎 广告拦截"
|
||||
type: select
|
||||
proxies:
|
||||
- ❌ 拦截
|
||||
- ⭕️ 直连
|
||||
- name: "⭕️ 直连"
|
||||
type: select
|
||||
proxies:
|
||||
- DIRECT
|
||||
- name: "❌ 拦截"
|
||||
type: select
|
||||
proxies:
|
||||
- REJECT
|
||||
- name: "⏳ 网速测试"
|
||||
type: select
|
||||
url: http://www.google.com/generate_204
|
||||
interval: 300
|
||||
proxies:
|
||||
<<: *all
|
||||
- name: "📌 精选节点"
|
||||
type: select
|
||||
<<: *best
|
||||
- name: "🚀 备用应急"
|
||||
type: select
|
||||
<<: *backup
|
||||
- name: ♻️ 自动选择
|
||||
<<: *fly
|
||||
- name: 🔯 故障转移
|
||||
type: fallback
|
||||
url: http://www.gstatic.com/generate_204
|
||||
interval: 300
|
||||
tolerance: 50
|
||||
<<: *all
|
||||
- name: 🔮 负载均衡
|
||||
type: load-balance
|
||||
strategy: consistent-hashing
|
||||
url: http://www.gstatic.com/generate_204
|
||||
interval: 300
|
||||
tolerance: 50
|
||||
<<: *all
|
||||
filter: "(?i)港|hk|hongkong|hong kong|台|tw|taiwan|日本|jp|japan|新|sg|singapore|美|us|unitedstates|united states|韩国|🇰🇷|KR|South Korea"
|
||||
- name: "🐟 漏网之鱼"
|
||||
type: select
|
||||
proxies:
|
||||
- ✈️ 国际代理
|
||||
- 🌍️亚洲地区
|
||||
- 🌍欧洲地区
|
||||
- 🌍非洲地区
|
||||
- 🌍️南美洲地区
|
||||
- 🌍️北美洲地区
|
||||
- 📌 精选节点
|
||||
- 🚀 备用应急
|
||||
- ⭕️ 直连
|
||||
rule-providers:
|
||||
# 直连和广告拦截
|
||||
Special:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Special.yaml
|
||||
path: ./rule_provider/Special.yaml
|
||||
interval: 86400
|
||||
Reject:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Reject.yaml
|
||||
path: ./rule_provider/Reject.yaml
|
||||
interval: 86400
|
||||
AD:
|
||||
type: http
|
||||
behavior: domain
|
||||
url: "https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/AD.yaml"
|
||||
path: ./rule_provider/AD.yaml
|
||||
interval: 86400
|
||||
|
||||
EasyList:
|
||||
type: http
|
||||
behavior: domain
|
||||
url: "https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/EasyList.yaml"
|
||||
path: ./rule_provider/EasyList.yaml
|
||||
interval: 86400
|
||||
|
||||
EasyListChina:
|
||||
type: http
|
||||
behavior: domain
|
||||
url: "https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/EasyListChina.yaml"
|
||||
path: ./rule_provider/EasyListChina.yaml
|
||||
interval: 86400
|
||||
|
||||
EasyPrivacy:
|
||||
type: http
|
||||
behavior: domain
|
||||
url: "https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/EasyPrivacy.yaml"
|
||||
path: ./rule_provider/EasyPrivacy.yaml
|
||||
interval: 86400
|
||||
|
||||
ProgramAD:
|
||||
type: http
|
||||
behavior: domain
|
||||
url: "https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/ProgramAD.yaml"
|
||||
path: ./rule_provider/ProgramAD.yaml
|
||||
interval: 86400
|
||||
# 国内媒体分组
|
||||
Bilibili:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Bilibili.yaml
|
||||
path: ./rule_provider/Bilibili.yaml
|
||||
interval: 86400
|
||||
IQ:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/IQ.yaml
|
||||
path: ./rule_provider/IQI.yaml
|
||||
interval: 86400
|
||||
IQIYI:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/IQIYI.yaml
|
||||
path: ./rule_provider/IQYI.yaml
|
||||
interval: 86400
|
||||
Letv:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Letv.yaml
|
||||
path: ./rule_provider/Letv.yaml
|
||||
interval: 86400
|
||||
Netease Music:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Netease%20Music.yaml
|
||||
path: ./rule_provider/Netease_Music.yaml
|
||||
interval: 86400
|
||||
Tencent Video:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Tencent%20Video.yaml
|
||||
path: ./rule_provider/Tencent_Video.yaml
|
||||
interval: 86400
|
||||
Youku:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Youku.yaml
|
||||
path: ./rule_provider/Youku.yaml
|
||||
interval: 86400
|
||||
WeTV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/WeTV.yaml
|
||||
path: ./rule_provider/WeTV.yaml
|
||||
interval: 86400
|
||||
# 国际媒体分组
|
||||
ABC:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/ABC.yaml
|
||||
path: ./rule_provider/ABC.yaml
|
||||
interval: 86400
|
||||
Abema TV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Abema%20TV.yaml
|
||||
path: ./rule_provider/Abema_TV.yaml
|
||||
interval: 86400
|
||||
Amazon:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Amazon.yaml
|
||||
path: ./rule_provider/Amazon.yaml
|
||||
interval: 86400
|
||||
Apple Music:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Apple%20Music.yaml
|
||||
path: ./rule_provider/Apple_Music.yaml
|
||||
interval: 86400
|
||||
Apple News:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Apple%20News.yaml
|
||||
path: ./rule_provider/Apple_News.yaml
|
||||
interval: 86400
|
||||
Apple TV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Apple%20TV.yaml
|
||||
path: ./rule_provider/Apple_TV.yaml
|
||||
interval: 86400
|
||||
Bahamut:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Bahamut.yaml
|
||||
path: ./rule_provider/Bahamut.yaml
|
||||
interval: 86400
|
||||
BBC iPlayer:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/BBC%20iPlayer.yaml
|
||||
path: ./rule_provider/BBC_iPlayer.yaml
|
||||
interval: 86400
|
||||
DAZN:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/DAZN.yaml
|
||||
path: ./rule_provider/DAZN.yaml
|
||||
interval: 86400
|
||||
Discovery Plus:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Discovery%20Plus.yaml
|
||||
path: ./rule_provider/Discovery_Plus.yaml
|
||||
interval: 86400
|
||||
Disney Plus:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Disney%20Plus.yaml
|
||||
path: ./rule_provider/Disney_Plus.yaml
|
||||
interval: 86400
|
||||
encoreTVB:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/encoreTVB.yaml
|
||||
path: ./rule_provider/encoreTVB.yaml
|
||||
interval: 86400
|
||||
F1 TV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/F1%20TV.yaml
|
||||
path: ./rule_provider/F1_TV.yaml
|
||||
interval: 86400
|
||||
Fox Now:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Fox%20Now.yaml
|
||||
path: ./rule_provider/Fox_Now.yaml
|
||||
interval: 86400
|
||||
Fox+:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Fox%2B.yaml
|
||||
path: ./rule_provider/Fox+.yaml
|
||||
interval: 86400
|
||||
HBO Go:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/HBO%20Go.yaml
|
||||
path: ./rule_provider/HBO_Go.yaml
|
||||
interval: 86400
|
||||
HBO Max:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/HBO%20Max.yaml
|
||||
path: ./rule_provider/HBO_Max.yaml
|
||||
interval: 86400
|
||||
Hulu Japan:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Hulu%20Japan.yaml
|
||||
path: ./rule_provider/Hulu_Japan.yaml
|
||||
interval: 86400
|
||||
Hulu:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Hulu.yaml
|
||||
path: ./rule_provider/Hulu.yaml
|
||||
interval: 86400
|
||||
Japonx:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Japonx.yaml
|
||||
path: ./rule_provider/Japonx.yaml
|
||||
interval: 86400
|
||||
JOOX:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/JOOX.yaml
|
||||
path: ./rule_provider/JOOX.yaml
|
||||
interval: 86400
|
||||
KKBOX:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/KKBOX.yaml
|
||||
path: ./rule_provider/KKBOX.yaml
|
||||
interval: 86400
|
||||
KKTV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/KKTV.yaml
|
||||
path: ./rule_provider/KKTV.yaml
|
||||
interval: 86400
|
||||
Line TV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Line%20TV.yaml
|
||||
path: ./rule_provider/Line_TV.yaml
|
||||
interval: 86400
|
||||
myTV SUPER:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/myTV%20SUPER.yaml
|
||||
path: ./rule_provider/myTV_SUPER.yaml
|
||||
interval: 86400
|
||||
Netflix:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Netflix.yaml
|
||||
path: ./rule_provider/Netflix.yaml
|
||||
interval: 86400
|
||||
Pandora:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Pandora.yaml
|
||||
path: ./rule_provider/Pandora.yaml
|
||||
interval: 86400
|
||||
PBS:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/PBS.yaml
|
||||
path: ./rule_provider/PBS.yaml
|
||||
interval: 86400
|
||||
Pornhub:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Pornhub.yaml
|
||||
path: ./rule_provider/Pornhub.yaml
|
||||
interval: 86400
|
||||
Soundcloud:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Soundcloud.yaml
|
||||
path: ./rule_provider/Soundcloud.yaml
|
||||
interval: 86400
|
||||
Spotify:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/Spotify.yaml
|
||||
path: ./rule_provider/Spotify.yaml
|
||||
interval: 86400
|
||||
ViuTV:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/ViuTV.yaml
|
||||
path: ./rule_provider/ViuTV.yaml
|
||||
interval: 86400
|
||||
YouTube:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/YouTube.yaml
|
||||
path: ./rule_provider/YouTube.yaml
|
||||
interval: 86400
|
||||
YouTube Music:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Media/YouTube%20Music.yaml
|
||||
path: ./rule_provider/YouTube_Music.yaml
|
||||
interval: 86400
|
||||
# 苹果服务规则列表
|
||||
Apple:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Apple.yaml
|
||||
path: ./rule_provider/Apple.yaml
|
||||
interval: 86400
|
||||
# 电报、微软、OpenAI、Steam、PayPal 及 TikTok 可选规则列表
|
||||
Telegram:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Telegram.yaml
|
||||
path: ./rule_provider/Telegram.yaml
|
||||
interval: 86400
|
||||
Microsoft:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Microsoft.yaml
|
||||
path: ./rule_provider/Microsoft.yaml
|
||||
interval: 86400
|
||||
OpenAI:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/OpenAI.yaml
|
||||
path: ./rule_provider/OpenAI.yaml
|
||||
interval: 86400
|
||||
Steam:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Steam.yaml
|
||||
path: ./rule_provider/Steam.yaml
|
||||
interval: 86400
|
||||
PayPal:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/PayPal.yaml
|
||||
path: ./rule_provider/PayPal.yaml
|
||||
interval: 86400
|
||||
TikTok:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/ios_rule_script/master/rule/Clash/TikTok/TikTok.yaml
|
||||
path: ./rule_provider/TikTok.yaml
|
||||
interval: 86400
|
||||
# 必须规则列表
|
||||
Speedtest:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Speedtest.yaml
|
||||
path: ./rule_provider/Speedtest.yaml
|
||||
interval: 86400
|
||||
Proxy:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Proxy.yaml
|
||||
path: ./rule_provider/Proxy.yaml
|
||||
interval: 86400
|
||||
Domestic:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/Domestic.yaml
|
||||
path: ./rule_provider/Domestic.yaml
|
||||
interval: 86400
|
||||
LAN:
|
||||
type: http
|
||||
behavior: classical
|
||||
url: https://raw.githubusercontent.com/Thaolga/Rules/main/Clash/Provider/LAN.yaml
|
||||
path: ./rule_provider/LAN.yaml
|
||||
interval: 86400
|
||||
|
||||
rules:
|
||||
- IP-CIDR,10.0.0.0/8,DIRECT
|
||||
- IP-CIDR,100.64.0.0/10,DIRECT
|
||||
- IP-CIDR,127.0.0.0/8,DIRECT
|
||||
- IP-CIDR,169.254.0.0/8,DIRECT
|
||||
- IP-CIDR,172.16.0.0/12,DIRECT
|
||||
- IP-CIDR,192.168.0.0/16,DIRECT
|
||||
- IP-CIDR,224.0.0.0/3,DIRECT
|
||||
- IP-CIDR6,::1/128,DIRECT
|
||||
- IP-CIDR6,fc00::/7,DIRECT
|
||||
- IP-CIDR6,fe80::/10,DIRECT
|
||||
- IP-CIDR6,fd00::/8,DIRECT
|
||||
|
||||
# 直连和广告拦截
|
||||
- RULE-SET,AD,REJECT
|
||||
- RULE-SET,EasyList,REJECT
|
||||
- RULE-SET,EasyListChina,REJECT
|
||||
- RULE-SET,EasyPrivacy,REJECT
|
||||
- RULE-SET,ProgramAD,REJECT
|
||||
- RULE-SET,Special,DIRECT
|
||||
- RULE-SET,Reject,🆎 广告拦截
|
||||
# 国内媒体分组
|
||||
- RULE-SET,Bilibili,📽 国内媒体
|
||||
- RULE-SET,IQ,📽 国内媒体
|
||||
- RULE-SET,IQIYI,📽 国内媒体
|
||||
- RULE-SET,Letv,📽 国内媒体
|
||||
- RULE-SET,Netease Music,📽 国内媒体 #🎵 网易云音乐
|
||||
- RULE-SET,Tencent Video,📽 国内媒体
|
||||
- RULE-SET,Youku,📽 国内媒体
|
||||
- RULE-SET,WeTV,📽 国内媒体
|
||||
# 国际媒体分组
|
||||
- RULE-SET,Netflix,🎥 国际媒体 #📺 网飞视频
|
||||
- RULE-SET,Disney Plus,🎥 国际媒体 #🎬 迪士尼+
|
||||
- RULE-SET,Spotify,🎥 国际媒体 #🎧 声田音乐
|
||||
- RULE-SET,YouTube Music,🎥 国际媒体
|
||||
- RULE-SET,ABC,🎥 国际媒体
|
||||
- RULE-SET,Abema TV,🎥 国际媒体
|
||||
- RULE-SET,Amazon,🎥 国际媒体
|
||||
- RULE-SET,Apple News,🎥 国际媒体
|
||||
- RULE-SET,Apple TV,🎥 国际媒体
|
||||
- RULE-SET,Bahamut,🎥 国际媒体
|
||||
- RULE-SET,BBC iPlayer,🎥 国际媒体
|
||||
- RULE-SET,DAZN,🎥 国际媒体
|
||||
- RULE-SET,Discovery Plus,🎥 国际媒体
|
||||
- RULE-SET,encoreTVB,🎥 国际媒体
|
||||
- RULE-SET,F1 TV,🎥 国际媒体
|
||||
- RULE-SET,Fox Now,🎥 国际媒体
|
||||
- RULE-SET,Fox+,🎥 国际媒体
|
||||
- RULE-SET,HBO Go,🎥 国际媒体
|
||||
- RULE-SET,HBO Max,🎥 国际媒体
|
||||
- RULE-SET,Hulu Japan,🎥 国际媒体
|
||||
- RULE-SET,Hulu,🎥 国际媒体
|
||||
- RULE-SET,Japonx,🎥 国际媒体
|
||||
- RULE-SET,JOOX,🎥 国际媒体
|
||||
- RULE-SET,KKBOX,🎥 国际媒体
|
||||
- RULE-SET,KKTV,🎥 国际媒体
|
||||
- RULE-SET,Line TV,🎥 国际媒体
|
||||
- RULE-SET,myTV SUPER,🎥 国际媒体
|
||||
- RULE-SET,Pandora,🎥 国际媒体
|
||||
- RULE-SET,PBS,🎥 国际媒体
|
||||
- RULE-SET,Pornhub,🎥 国际媒体
|
||||
- RULE-SET,Soundcloud,🎥 国际媒体
|
||||
- RULE-SET,ViuTV,🎥 国际媒体
|
||||
|
||||
# 苹果服务
|
||||
- RULE-SET,Apple,🍎 苹果服务
|
||||
|
||||
# 电报、微软、贝宝及 Steam 可选规则,如需为某个规则列表单独设置策略,请直接修改策略名称与上方策略组名称保持一致
|
||||
- RULE-SET,Microsoft,🌏 大陆网络 #Ⓜ️ 微软服务
|
||||
- RULE-SET,OpenAI,✈️ 国际代理 #🤖 OpenAI
|
||||
- RULE-SET,YouTube,📹 油管视频
|
||||
- RULE-SET,Telegram,📡 电报服务
|
||||
- RULE-SET,PayPal,✈️ 国际代理 #💳 贝宝服务
|
||||
- RULE-SET,Steam,🎮 游戏平台
|
||||
- RULE-SET,TikTok,🎶 国际抖音
|
||||
|
||||
# 必须规则
|
||||
- RULE-SET,Speedtest,⏳ 网速测试
|
||||
- RULE-SET,Proxy,✈️ 国际代理
|
||||
- RULE-SET,Domestic,🌏 大陆网络
|
||||
- RULE-SET,LAN,DIRECT
|
||||
|
||||
# 最终规则
|
||||
- GEOIP,CN,🌏 大陆网络
|
||||
- MATCH,🐟 漏网之鱼
|
@ -1,7 +1,7 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=mihomo
|
||||
PKG_RELEASE:=1
|
||||
PKG_RELEASE:=2
|
||||
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/MetaCubeX/mihomo.git
|
||||
|
@ -302,6 +302,10 @@ start_service() {
|
||||
nft -f "$HIJACK_NFT" -D FW_MARK="$FW_MARK" -D FW_MARK_MASK="$FW_MARK_MASK" -D TUN_DEVICE="$TUN_DEVICE" -D DNS_PORT="$dns_port" -D REDIR_PORT="$redir_port" -D TPROXY_PORT="$tproxy_port"
|
||||
nft -f "$RESERVED_IP_NFT"
|
||||
nft -f "$RESERVED_IP6_NFT"
|
||||
if [ "$tcp_transparent_proxy_mode" != "redirect" ]; then
|
||||
nft flush chain inet "$FW_TABLE" nat_output
|
||||
nft flush chain inet "$FW_TABLE" dstnat
|
||||
fi
|
||||
nft add element inet "$FW_TABLE" bypass_group \{ "$MIHOMO_GROUP" \}
|
||||
nft add element inet "$FW_TABLE" fake_ip \{ "$fake_ip_range" \}
|
||||
# dns hijack
|
||||
|
Loading…
Reference in New Issue
Block a user