This commit is contained in:
snltty
2025-02-18 10:38:07 +08:00
parent e2d6be0d7a
commit 764d3f125a
12 changed files with 14 additions and 16 deletions

View File

@@ -7,6 +7,5 @@ Source: https://github.com/snltty/linker
License: GPL-2.0
Priority: optional
Depends: libc
Recommends: zlib, bash, iptables, kmod-tun, ip-full, libopenssl, libopenssl-legacy
Suggests: libstdcpp
Recommends: zlib, bash, iptables, kmod-tun, ip-full, kmod-ipt-nat, libstdcpp, libopenssl, libopenssl-legacy
Description: A NAT transfer, Virtual Private Network, P2P Tunnel

View File

@@ -83,7 +83,7 @@ namespace linker.messenger.tunnel
Desc = c.Description,
Mac = Regex.Replace(c.GetPhysicalAddress().ToString(), @"(.{2})", $"$1-").Trim('-'),
Ips = c.GetIPProperties().UnicastAddresses.Select(c => c.Address).Where(c => c.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork || (c.AddressFamily == System.Net.Sockets.AddressFamily.InterNetworkV6 && c.GetAddressBytes().AsSpan(0, 8).SequenceEqual(ipv6LocalBytes) == false)).ToArray()
}).Where(c => c.Ips.Any(d => d.Equals(IPAddress.Loopback)) == false).ToArray();
}).Where(c => c.Ips.Length > 0 && c.Ips.Any(d => d.Equals(IPAddress.Loopback)) == false).ToArray();
}
}
}

View File

@@ -29,7 +29,6 @@ namespace linker.messenger.updater
{
return;
}
UpdaterStatus status = updateInfo.Status;
try
{
@@ -86,10 +85,10 @@ namespace linker.messenger.updater
StringBuilder sb = new StringBuilder("linker-");
sb.Append($"{(OperatingSystem.IsWindows() ? "win" : OperatingSystem.IsLinux() ? "linux" : "osx")}-");
if(OperatingSystem.IsLinux() && Directory.GetFiles("/lib", "*musl*").Length > 0)
if (OperatingSystem.IsLinux() && Directory.GetFiles("/lib", "*musl*").Length > 0)
{
sb.Append($"musl-");
}
}
sb.Append(RuntimeInformation.ProcessArchitecture.ToString().ToLower());
string url = $"{updaterCommonTransfer.UpdateUrl}/{version}/{sb.ToString()}.zip";
@@ -266,5 +265,5 @@ namespace linker.messenger.updater
}
}
}

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<project ver="10" name="linker.tray.win" libEmbed="true" icon="..\linker\favicon.ico" ui="win" output="linker.tray.win.exe" CompanyName="snltty" FileDescription="linker.tray.win" LegalCopyright="Copyright (C) snltty 2024" ProductName="linker.tray.win" InternalName="linker.install.win" FileVersion="0.0.0.201" ProductVersion="0.0.0.201" publishDir="/dist/" dstrip="false" local="false" ignored="false">
<project ver="10" name="linker.tray.win" libEmbed="true" icon="..\linker\favicon.ico" ui="win" output="linker.tray.win.exe" CompanyName="snltty" FileDescription="linker.tray.win" LegalCopyright="Copyright (C) snltty 2024" ProductName="linker.tray.win" InternalName="linker.install.win" FileVersion="0.0.0.202" ProductVersion="0.0.0.202" publishDir="/dist/" dstrip="false" local="false" ignored="false">
<file name="main.aardio" path="main.aardio" comment="main.aardio"/>
<folder name="资源文件" path="res" embed="true" local="false" ignored="false">
<file name="favicon.ico" path="res\favicon.ico" comment="res\favicon.ico"/>

Binary file not shown.

View File

@@ -1 +1 @@
.table-sort th[data-v-4b2df38c]{border-bottom:0}.dropdown[data-v-6e34f330]{border:1px solid #ddd;padding:.4rem;font-size:1.3rem;border-radius:.4rem;position:relative}.dropdown .el-icon[data-v-6e34f330]{vertical-align:middle}.dropdown .badge[data-v-6e34f330]{position:absolute;right:-1rem;top:-50%;border-radius:10px;background-color:#f1ae05;color:#fff;padding:.2rem .6rem;font-size:1.2rem}a[data-v-6653ef00]{color:#666;text-decoration:underline}a.green[data-v-6653ef00]{color:green;font-weight:700}a.download[data-v-6653ef00]{margin-left:.6rem}a.download .el-icon[data-v-6653ef00]{vertical-align:middle;font-weight:700;margin-left:.3rem}a.download .el-icon.loading[data-v-6653ef00]{animation:loading-6653ef00 1s linear infinite}a.download+a.download[data-v-6653ef00]{margin-left:.2rem}@keyframes loading-6653ef00{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}img.system[data-v-ffd0d512]{height:1.6rem;vertical-align:middle;margin-right:.4rem}.self[data-v-ffd0d512]{color:#d400ff}.self .el-icon[data-v-ffd0d512]{vertical-align:text-bottom}.ipaddress span[data-v-5db71b03]{vertical-align:middle}.el-input[data-v-5db71b03]{width:12rem;margin-right:.6rem}.el-col[data-v-7a697708]{text-align:left}span.point[data-v-39aee530]{width:.8rem;height:.8rem;border-radius:50%;display:inline-block;vertical-align:middle;margin:-.2rem .3rem 0 -1.3rem;background-color:#eee;border:1px solid #ddd}span.point.p2p[data-v-39aee530]{background-color:#01c901;border:1px solid #049538}span.point.relay[data-v-39aee530]{background-color:#e3e811;border:1px solid #b3c410}span.point.node[data-v-39aee530]{background-color:#09dda9;border:1px solid #0cac90}.el-icon.loading[data-v-7aff655c],a.loading[data-v-7aff655c]{vertical-align:middle;font-weight:700;animation:loading-7aff655c 1s linear infinite}.el-switch.is-disabled[data-v-7aff655c]{opacity:1}.el-input[data-v-7aff655c]{width:8rem}.delay[data-v-7aff655c]{position:absolute;right:0;bottom:0;line-height:normal}.switch-btn[data-v-7aff655c]{font-size:1.5rem}.any[data-v-7aff655c]{position:absolute;left:-7px;top:-2px;line-height:normal}.any.green[data-v-7aff655c]{background:linear-gradient(270deg,#caff00,green,#0d6d23,#e38a00,green);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:hsla(0,0%,100%,0)}@keyframes loading-7aff655c{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.wrap[data-v-786fe646]{padding-right:1rem}.remark[data-v-786fe646]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wrap[data-v-286c7cac]{padding-right:1rem}.el-switch.is-disabled[data-v-078917af]{opacity:1}.upgrade-wrap[data-v-078917af]{border:1px solid #ddd;margin-bottom:2rem;padding:0 0 1rem 0}.el-switch.is-disabled[data-v-67ed3552]{opacity:1}.calc span[data-v-67ed3552]{display:inline-block}.calc span.label[data-v-67ed3552]{width:6rem}.el-icon.loading[data-v-d37c5992],a.loading[data-v-d37c5992]{vertical-align:middle;font-weight:700;animation:loading-d37c5992 1s linear infinite}.el-switch.is-disabled[data-v-d37c5992]{opacity:1}.el-input[data-v-d37c5992]{width:8rem}.switch-btn[data-v-d37c5992]{font-size:1.5rem}@keyframes loading-d37c5992{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.el-switch.is-disabled[data-v-022e3781]{opacity:1}.upgrade-wrap[data-v-022e3781]{border:1px solid #ddd;margin-bottom:2rem;padding:1rem 0 1rem 0}.lan-item[data-v-022e3781]{margin-bottom:0}.el-switch.is-disabled[data-v-2081d4a4]{opacity:1}.green[data-v-2081d4a4]{font-weight:700}.el-switch.is-disabled[data-v-01580ed0]{opacity:1}ul li[data-v-01580ed0]{padding-left:2rem}a[data-v-6e9936ec]{text-decoration:underline}a+a[data-v-6e9936ec]{margin-left:1rem}a.green[data-v-6e9936ec]{font-weight:700}.head[data-v-bb70309e]{padding-bottom:1rem}.green[data-v-bb70309e]{color:green;font-weight:700}.error[data-v-bb70309e]{font-weight:700}.error .el-icon[data-v-bb70309e]{vertical-align:text-bottom}.head[data-v-9f4ae946]{padding-bottom:1rem}.error[data-v-9f4ae946]{font-weight:700}.error .el-icon[data-v-9f4ae946]{vertical-align:text-bottom}.head[data-v-32318a6a]{padding-bottom:1rem}.table-sort.el-table th.el-table__cell.is-leaf{border-bottom:0}.table-sort.el-table .el-table__inner-wrapper:before{height:0}.home-list-wrap[data-v-3d1c480c]{padding:1rem}.home-list-wrap .page[data-v-3d1c480c]{padding-top:1rem}.home-list-wrap .page-wrap[data-v-3d1c480c]{display:inline-block}
.table-sort th[data-v-4b2df38c]{border-bottom:0}.dropdown[data-v-6e34f330]{border:1px solid #ddd;padding:.4rem;font-size:1.3rem;border-radius:.4rem;position:relative}.dropdown .el-icon[data-v-6e34f330]{vertical-align:middle}.dropdown .badge[data-v-6e34f330]{position:absolute;right:-1rem;top:-50%;border-radius:10px;background-color:#f1ae05;color:#fff;padding:.2rem .6rem;font-size:1.2rem}a[data-v-6653ef00]{color:#666;text-decoration:underline}a.green[data-v-6653ef00]{color:green;font-weight:700}a.download[data-v-6653ef00]{margin-left:.6rem}a.download .el-icon[data-v-6653ef00]{vertical-align:middle;font-weight:700;margin-left:.3rem}a.download .el-icon.loading[data-v-6653ef00]{animation:loading-6653ef00 1s linear infinite}a.download+a.download[data-v-6653ef00]{margin-left:.2rem}@keyframes loading-6653ef00{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}img.system[data-v-ffd0d512]{height:1.6rem;vertical-align:middle;margin-right:.4rem}.self[data-v-ffd0d512]{color:#d400ff}.self .el-icon[data-v-ffd0d512]{vertical-align:text-bottom}.ipaddress span[data-v-5db71b03]{vertical-align:middle}.el-input[data-v-5db71b03]{width:12rem;margin-right:.6rem}.el-col[data-v-7a697708]{text-align:left}span.point[data-v-39aee530]{width:.8rem;height:.8rem;border-radius:50%;display:inline-block;vertical-align:middle;margin:-.2rem .3rem 0 -1.3rem;background-color:#eee;border:1px solid #ddd}span.point.p2p[data-v-39aee530]{background-color:#01c901;border:1px solid #049538}span.point.relay[data-v-39aee530]{background-color:#e3e811;border:1px solid #b3c410}span.point.node[data-v-39aee530]{background-color:#09dda9;border:1px solid #0cac90}.el-icon.loading[data-v-7aff655c],a.loading[data-v-7aff655c]{vertical-align:middle;font-weight:700;animation:loading-7aff655c 1s linear infinite}.el-switch.is-disabled[data-v-7aff655c]{opacity:1}.el-input[data-v-7aff655c]{width:8rem}.delay[data-v-7aff655c]{position:absolute;right:0;bottom:0;line-height:normal}.switch-btn[data-v-7aff655c]{font-size:1.5rem}.any[data-v-7aff655c]{position:absolute;left:-7px;top:-2px;line-height:normal}.any.green[data-v-7aff655c]{background:linear-gradient(270deg,#caff00,green,#0d6d23,#e38a00,green);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:hsla(0,0%,100%,0)}@keyframes loading-7aff655c{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.wrap[data-v-786fe646]{padding-right:1rem}.remark[data-v-786fe646]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wrap[data-v-286c7cac]{padding-right:1rem}.el-switch.is-disabled[data-v-078917af]{opacity:1}.upgrade-wrap[data-v-078917af]{border:1px solid #ddd;margin-bottom:2rem;padding:0 0 1rem 0}.el-switch.is-disabled[data-v-67ed3552]{opacity:1}.calc span[data-v-67ed3552]{display:inline-block}.calc span.label[data-v-67ed3552]{width:6rem}.el-icon.loading[data-v-d37c5992],a.loading[data-v-d37c5992]{vertical-align:middle;font-weight:700;animation:loading-d37c5992 1s linear infinite}.el-switch.is-disabled[data-v-d37c5992]{opacity:1}.el-input[data-v-d37c5992]{width:8rem}.switch-btn[data-v-d37c5992]{font-size:1.5rem}@keyframes loading-d37c5992{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.el-switch.is-disabled[data-v-022e3781]{opacity:1}.upgrade-wrap[data-v-022e3781]{border:1px solid #ddd;margin-bottom:2rem;padding:1rem 0 1rem 0}.lan-item[data-v-022e3781]{margin-bottom:0}.el-switch.is-disabled[data-v-3c85bbf3]{opacity:1}.green[data-v-3c85bbf3]{font-weight:700}.el-switch.is-disabled[data-v-74ef14ca]{opacity:1}ul li[data-v-74ef14ca]{padding-left:2rem}a[data-v-6e9936ec]{text-decoration:underline}a+a[data-v-6e9936ec]{margin-left:1rem}a.green[data-v-6e9936ec]{font-weight:700}.head[data-v-bb70309e]{padding-bottom:1rem}.green[data-v-bb70309e]{color:green;font-weight:700}.error[data-v-bb70309e]{font-weight:700}.error .el-icon[data-v-bb70309e]{vertical-align:text-bottom}.head[data-v-9f4ae946]{padding-bottom:1rem}.error[data-v-9f4ae946]{font-weight:700}.error .el-icon[data-v-9f4ae946]{vertical-align:text-bottom}.head[data-v-32318a6a]{padding-bottom:1rem}.table-sort.el-table th.el-table__cell.is-leaf{border-bottom:0}.table-sort.el-table .el-table__inner-wrapper:before{height:0}.home-list-wrap[data-v-3d1c480c]{padding:1rem}.home-list-wrap .page[data-v-3d1c480c]{padding-top:1rem}.home-list-wrap .page-wrap[data-v-3d1c480c]{display:inline-block}

View File

@@ -1 +1 @@
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>linker.web</title><script defer="defer" src="js/chunk-vendors.1a70ad89.js"></script><script defer="defer" src="js/app.b6c9efb2.js"></script><link href="css/chunk-vendors.d8267b33.css" rel="stylesheet"><link href="css/app.9573ab92.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but linker.web doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>linker.web</title><script defer="defer" src="js/chunk-vendors.1a70ad89.js"></script><script defer="defer" src="js/app.8694390b.js"></script><link href="css/chunk-vendors.d8267b33.css" rel="stylesheet"><link href="css/app.9573ab92.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but linker.web doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>

View File

@@ -43,7 +43,7 @@ export default {
let texts = [
'调整网关层级有助于打洞成功',
`${item.HostName}`,
item.Lans.map(c=>`\t【${c.Mac}${c.Desc}\r\n\t\t${c.Ips.join('\r\n\t\t')}`).join('\r\n'),
item.Lans.filter(c=>c.Ips.length > 0).map(c=>`\t【${c.Mac||'00-00-00-00-00-00'}${c.Name}\r\n\t\t${c.Ips.join('\r\n\t\t')}`).join('\r\n'),
`跳跃点\r\n\t${item.Routes.join('\r\n\t')}`
]

View File

@@ -37,9 +37,9 @@
<div>
<h3>{{ tunnel.current.HostName }}</h3>
<ul>
<template v-for="(item,index) in tunnel.current.Lans">
<template v-for="(item,index) in tunnel.current.Lans.filter(c=>c.Ips.length > 0)">
<li>
<div>{{ item.Mac }}{{ item.Desc }}</div>
<div>{{ item.Mac||'00-00-00-00-00-00' }}{{ item.Desc }}</div>
<div>
<ul>
<template v-for="(item2,index2) in item.Ips">

View File

@@ -1,5 +1,5 @@
v1.6.7
2025-02-17 17:03:32
2025-02-18 10:38:06
1. 修复首次启动网卡未启动bug
2. 自定义网卡名
3. 可禁用NAT