Add ProxiFyre firewall rule management and bump version to 1.1.0

This commit is contained in:
2026-07-22 16:17:00 +03:00
parent 67792f245f
commit 90ec4ca086
17 changed files with 289 additions and 22 deletions
+4
View File
@@ -270,6 +270,10 @@ export function installProxiFyre(): Promise<ComponentStatus> {
return invoke<ComponentStatus>("install_proxifyre");
}
export function configureProxiFyreFirewallRules(): Promise<void> {
return invoke<void>("configure_proxifyre_firewall_rules");
}
export function uninstallProxiFyre(): Promise<ComponentStatus> {
return invoke<ComponentStatus>("uninstall_proxifyre");
}
+30 -1
View File
@@ -18,6 +18,7 @@ import {
} from "lucide-react";
import {
applyConfiguration,
configureProxiFyreFirewallRules,
fetchSingBoxSubscription,
forgetSingBoxSubscription,
generateSingBoxConfig,
@@ -591,7 +592,7 @@ export function App() {
async function installProxiFyrePackage() {
const confirmed = window.confirm(
"Установить ProxiFyre? ProxyWarden запросит права администратора, скачает ProxiFyre, Windows Packet Filter и при необходимости Visual C++ Runtime, затем создаст и запустит Windows-службу.",
"Установить ProxiFyre? ProxyWarden запросит права администратора, установит ProxiFyre, Windows Packet Filter и при необходимости Visual C++ Runtime, затем создаст и запустит Windows-службу. После установки приложение отдельно предложит добавить правила Windows Firewall.",
);
if (!confirmed) return;
@@ -621,6 +622,34 @@ export function App() {
title: "ProxiFyre установлен",
text: proxyfierDetails(component, false),
});
const firewallConfirmed = window.confirm(
"Добавить разрешающие правила Windows Firewall для установленного ProxiFyre.exe? Будут созданы отдельные входящее и исходящее правила только для подтвержденного пути программы. Windows снова запросит права администратора.",
);
if (firewallConfirmed) {
try {
await configureProxiFyreFirewallRules();
const firewallProgress = await getProxiFyreSetupProgress();
setSetupProgress(firewallProgress);
showNotice({
kind: "success",
title: "Windows Firewall настроен",
text: "Входящее и исходящее правила добавлены для установленного ProxiFyre.exe.",
});
} catch (error) {
showNotice({
kind: "error",
title: "Windows Firewall не настроен",
text: `ProxiFyre установлен, но правила не добавлены. ${errorMessage(error)}`,
});
}
} else {
showNotice({
kind: "info",
title: "Правила Firewall пропущены",
text: "ProxiFyre установлен без правил Windows Firewall. Их можно будет добавить повторной установкой компонента.",
});
}
} catch (error) {
void getProxiFyreSetupProgress()
.then(setSetupProgress)