This commit is contained in:
snltty
2025-08-01 17:52:14 +08:00
parent 6aa2491fff
commit f029baf16a
213 changed files with 2592 additions and 749 deletions

View File

@@ -57,9 +57,9 @@ jobs:
docker tag snltty/linker-musl-x64:latest snltty/linker-musl:amd64 && \
docker push snltty/linker-musl:amd64 && \
docker manifest create snltty/linker-musl:latest snltty/linker-musl:amd64 snltty/linker-musl:arm64 snltty/linker-musl:arm && \
docker manifest create snltty/linker-musl:v1.8.9 snltty/linker-musl:amd64 snltty/linker-musl:arm64 snltty/linker-musl:arm && \
docker manifest create snltty/linker-musl:v1.9.0 snltty/linker-musl:amd64 snltty/linker-musl:arm64 snltty/linker-musl:arm && \
docker manifest push snltty/linker-musl:latest && \
docker manifest push snltty/linker-musl:v1.8.9 && \
docker manifest push snltty/linker-musl:v1.9.0 && \
docker pull --platform linux/arm/v7 snltty/linker-debian-arm:latest && \
docker tag snltty/linker-debian-arm:latest snltty/linker-debian:arm && \
docker push snltty/linker-debian:arm && \
@@ -70,9 +70,9 @@ jobs:
docker tag snltty/linker-debian-x64:latest snltty/linker-debian:amd64 && \
docker push snltty/linker-debian:amd64 && \
docker manifest create snltty/linker-debian:latest snltty/linker-debian:amd64 snltty/linker-debian:arm64 snltty/linker-debian:arm && \
docker manifest create snltty/linker-debian:v1.8.9 snltty/linker-debian:amd64 snltty/linker-debian:arm64 snltty/linker-debian:arm && \
docker manifest create snltty/linker-debian:v1.9.0 snltty/linker-debian:amd64 snltty/linker-debian:arm64 snltty/linker-debian:arm && \
docker manifest push snltty/linker-debian:latest && \
docker manifest push snltty/linker-debian:v1.8.9 && \
docker manifest push snltty/linker-debian:v1.9.0 && \
docker pull --platform linux/arm/v7 snltty/linker-kvm-arm:latest && \
docker tag snltty/linker-kvm-arm:latest snltty/linker-kvm:arm && \
docker push snltty/linker-kvm:arm && \
@@ -83,6 +83,6 @@ jobs:
docker tag snltty/linker-kvm-x64:latest snltty/linker-kvm:amd64 && \
docker push snltty/linker-kvm:amd64 && \
docker manifest create snltty/linker-kvm:latest snltty/linker-kvm:amd64 snltty/linker-kvm:arm64 snltty/linker-kvm:arm && \
docker manifest create snltty/linker-kvm:v1.8.9 snltty/linker-kvm:amd64 snltty/linker-kvm:arm64 snltty/linker-kvm:arm && \
docker manifest create snltty/linker-kvm:v1.9.0 snltty/linker-kvm:amd64 snltty/linker-kvm:arm64 snltty/linker-kvm:arm && \
docker manifest push snltty/linker-kvm:latest && \
docker manifest push snltty/linker-kvm:v1.8.9
docker manifest push snltty/linker-kvm:v1.9.0

View File

@@ -33,11 +33,11 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.ACTIONS_TOKEN }}
with:
tag_name: v1.8.9
release_name: v1.8.9.${{ steps.date.outputs.today }}
tag_name: v1.9.0
release_name: v1.9.0.${{ steps.date.outputs.today }}
draft: false
prerelease: false
body: "1. 一些累计更新\r\n2. 修复一些BUG过滤一些打洞成功的假象\r\n3. 修复socks5\r\n4. 其它一些代码优化"
body: "1. 一些累计更新\r\n2. 修复一些APP问题\r\n3. 增加一些数据统计\r\n4. 可选关闭信标服务"
- name: publish projects
run: ./publish.bat "C:\\Android\\android-sdk"
- name: upload-win-x86-oss
@@ -49,7 +49,7 @@ jobs:
key-secret: ${{ secrets.ALIYUN_OSS_SECRET }}
bucket: ide-qbcode
asset-path: ./public/publish-zip/linker-win-x86.zip
target-path: /downloads/linker/v1.8.9/linker-win-x86.zip
target-path: /downloads/linker/v1.9.0/linker-win-x86.zip
- name: upload-win-x86
id: upload-win-x86
uses: actions/upload-release-asset@master
@@ -69,7 +69,7 @@ jobs:
key-secret: ${{ secrets.ALIYUN_OSS_SECRET }}
bucket: ide-qbcode
asset-path: ./public/publish-zip/linker-win-x64.zip
target-path: /downloads/linker/v1.8.9/linker-win-x64.zip
target-path: /downloads/linker/v1.9.0/linker-win-x64.zip
- name: upload-win-x64
id: upload-win-x64
uses: actions/upload-release-asset@master
@@ -89,7 +89,7 @@ jobs:
key-secret: ${{ secrets.ALIYUN_OSS_SECRET }}
bucket: ide-qbcode
asset-path: ./public/publish-zip/linker-win-arm64.zip
target-path: /downloads/linker/v1.8.9/linker-win-arm64.zip
target-path: /downloads/linker/v1.9.0/linker-win-arm64.zip
- name: upload-win-arm64
id: upload-win-arm64
uses: actions/upload-release-asset@master
@@ -109,7 +109,7 @@ jobs:
key-secret: ${{ secrets.ALIYUN_OSS_SECRET }}
bucket: ide-qbcode
asset-path: ./public/publish-zip/linker-linux-x64.zip
target-path: /downloads/linker/v1.8.9/linker-linux-x64.zip
target-path: /downloads/linker/v1.9.0/linker-linux-x64.zip
- name: upload-linux-x64
id: upload-linux-x64
uses: actions/upload-release-asset@master
@@ -129,7 +129,7 @@ jobs:
key-secret: ${{ secrets.ALIYUN_OSS_SECRET }}
bucket: ide-qbcode
asset-path: ./public/publish-zip/linker-linux-arm.zip
target-path: /downloads/linker/v1.8.9/linker-linux-arm.zip
target-path: /downloads/linker/v1.9.0/linker-linux-arm.zip
- name: upload-linux-arm
id: upload-linux-arm
uses: actions/upload-release-asset@master
@@ -149,7 +149,7 @@ jobs:
key-secret: ${{ secrets.ALIYUN_OSS_SECRET }}
bucket: ide-qbcode
asset-path: ./public/publish-zip/linker-linux-arm64.zip
target-path: /downloads/linker/v1.8.9/linker-linux-arm64.zip
target-path: /downloads/linker/v1.9.0/linker-linux-arm64.zip
- name: upload-linux-arm64
id: upload-linux-arm64
uses: actions/upload-release-asset@master
@@ -169,7 +169,7 @@ jobs:
key-secret: ${{ secrets.ALIYUN_OSS_SECRET }}
bucket: ide-qbcode
asset-path: ./public/publish-zip/linker-linux-musl-x64.zip
target-path: /downloads/linker/v1.8.9/linker-linux-musl-x64.zip
target-path: /downloads/linker/v1.9.0/linker-linux-musl-x64.zip
- name: upload-linux-musl-x64
id: upload-linux-musl-x64
uses: actions/upload-release-asset@master
@@ -189,7 +189,7 @@ jobs:
key-secret: ${{ secrets.ALIYUN_OSS_SECRET }}
bucket: ide-qbcode
asset-path: ./public/publish-zip/linker-linux-musl-arm.zip
target-path: /downloads/linker/v1.8.9/linker-linux-musl-arm.zip
target-path: /downloads/linker/v1.9.0/linker-linux-musl-arm.zip
- name: upload-linux-musl-arm
id: upload-linux-musl-arm
uses: actions/upload-release-asset@master
@@ -209,7 +209,7 @@ jobs:
key-secret: ${{ secrets.ALIYUN_OSS_SECRET }}
bucket: ide-qbcode
asset-path: ./public/publish-zip/linker-linux-musl-arm64.zip
target-path: /downloads/linker/v1.8.9/linker-linux-musl-arm64.zip
target-path: /downloads/linker/v1.9.0/linker-linux-musl-arm64.zip
- name: upload-linux-musl-arm64
id: upload-linux-musl-arm64
uses: actions/upload-release-asset@master
@@ -259,7 +259,7 @@ jobs:
key-secret: ${{ secrets.ALIYUN_OSS_SECRET }}
bucket: ide-qbcode
asset-path: ./public/publish-zip/linker.apk
target-path: /downloads/linker/v1.8.9/linker.apk
target-path: /downloads/linker/v1.9.0/linker.apk
- name: upload-apk
id: upload-apk
uses: actions/upload-release-asset@master

View File

@@ -44,7 +44,7 @@ jobs:
key-secret: ${{ secrets.ALIYUN_OSS_SECRET }}
bucket: ide-qbcode
asset-path: ./public/publish-ipk/x64/linker-x64.ipk
target-path: /downloads/linker/v1.8.9/linker-x64.ipk
target-path: /downloads/linker/v1.9.0/linker-x64.ipk
- name: upload-x64
id: upload-x64
uses: actions/upload-release-asset@master
@@ -64,7 +64,7 @@ jobs:
key-secret: ${{ secrets.ALIYUN_OSS_SECRET }}
bucket: ide-qbcode
asset-path: ./public/publish-ipk/arm/linker-arm.ipk
target-path: /downloads/linker/v1.8.9/linker-arm.ipk
target-path: /downloads/linker/v1.9.0/linker-arm.ipk
- name: upload-arm
id: upload-arm
uses: actions/upload-release-asset@master
@@ -84,7 +84,7 @@ jobs:
key-secret: ${{ secrets.ALIYUN_OSS_SECRET }}
bucket: ide-qbcode
asset-path: ./public/publish-ipk/arm64/linker-arm64.ipk
target-path: /downloads/linker/v1.8.9/linker-arm64.ipk
target-path: /downloads/linker/v1.9.0/linker-arm64.ipk
- name: upload-arm64
id: upload-arm64
uses: actions/upload-release-asset@master

View File

@@ -90,35 +90,35 @@ jobs:
- name: Push
run: |
dotnet nuget push ./src/linker.libs/bin/release/linker.libs.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger/bin/release/linker.messenger.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.access/bin/release/linker.messenger.access.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.action/bin/release/linker.messenger.action.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.api/bin/release/linker.messenger.api.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.channel/bin/release/linker.messenger.channel.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.decenter/bin/release/linker.messenger.decenter.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.entry/bin/release/linker.messenger.entry.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.exroute/bin/release/linker.messenger.exroute.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.flow/bin/release/linker.messenger.flow.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.forward/bin/release/linker.messenger.forward.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.listen/bin/release/linker.messenger.listen.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.logger/bin/release/linker.messenger.logger.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.pcp/bin/release/linker.messenger.pcp.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.plan/bin/release/linker.messenger.plan.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.relay/bin/release/linker.messenger.relay.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.cdkey/bin/release/linker.messenger.cdkey.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.serializer.memorypack/bin/release/linker.messenger.serializer.memorypack.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.sforward/bin/release/linker.messenger.sforward.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.signin/bin/release/linker.messenger.signin.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.socks5/bin/release/linker.messenger.socks5.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.store.file/bin/release/linker.messenger.store.file.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.sync/bin/release/linker.messenger.sync.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.tunnel/bin/release/linker.messenger.tunnel.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.tuntap/bin/release/linker.messenger.tuntap.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.updater/bin/release/linker.messenger.updater.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.firewall/bin/release/linker.messenger.firewall.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.wakeup/bin/release/linker.messenger.wakeup.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.wlist/bin/release/linker.messenger.wlist.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.tun/bin/release/linker.tun.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.snat/bin/release/linker.snat.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.tunnel/bin/release/linker.tunnel.1.8.9.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.libs/bin/release/linker.libs.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger/bin/release/linker.messenger.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.access/bin/release/linker.messenger.access.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.action/bin/release/linker.messenger.action.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.api/bin/release/linker.messenger.api.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.channel/bin/release/linker.messenger.channel.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.decenter/bin/release/linker.messenger.decenter.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.entry/bin/release/linker.messenger.entry.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.exroute/bin/release/linker.messenger.exroute.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.flow/bin/release/linker.messenger.flow.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.forward/bin/release/linker.messenger.forward.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.listen/bin/release/linker.messenger.listen.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.logger/bin/release/linker.messenger.logger.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.pcp/bin/release/linker.messenger.pcp.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.plan/bin/release/linker.messenger.plan.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.relay/bin/release/linker.messenger.relay.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.cdkey/bin/release/linker.messenger.cdkey.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.serializer.memorypack/bin/release/linker.messenger.serializer.memorypack.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.sforward/bin/release/linker.messenger.sforward.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.signin/bin/release/linker.messenger.signin.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.socks5/bin/release/linker.messenger.socks5.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.store.file/bin/release/linker.messenger.store.file.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.sync/bin/release/linker.messenger.sync.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.tunnel/bin/release/linker.messenger.tunnel.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.tuntap/bin/release/linker.messenger.tuntap.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.updater/bin/release/linker.messenger.updater.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.firewall/bin/release/linker.messenger.firewall.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.wakeup/bin/release/linker.messenger.wakeup.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.messenger.wlist/bin/release/linker.messenger.wlist.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.tun/bin/release/linker.tun.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.snat/bin/release/linker.snat.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
dotnet nuget push ./src/linker.tunnel/bin/release/linker.tunnel.1.9.0.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols

View File

@@ -91,6 +91,7 @@
<div>
- 米多贝克&米多网络工程
- 旋律 * 3
- 阳阳
- 谢幕____(海那边的白月光)
- swayer.
@@ -98,7 +99,7 @@
- 仰望 * 2
- 李氏の天下
- 小猪
- 菜菜(木子) * 2
- 菜菜(木子) * 3
- 杰米儿
- Oasis
- 坦然

View File

@@ -41,16 +41,16 @@ do
fi
done
cd public/publish/docker/linux-${p}-x64/${f}
docker buildx build -f ${target}/public/publish/docker/linux-${p}-x64/${f}/Dockerfile-${p} --platform="linux/x86_64" --force-rm -t "${image}-${p}-x64:latest" -t "${image}-${p}-x64:v1.8.9" . --push
docker buildx build -f ${target}/public/publish/docker/linux-${p}-x64/${f}/Dockerfile-${p} --platform="linux/x86_64" --force-rm -t "${image}-${p}-x64:latest" -t "${image}-${p}-x64:v1.9.0" . --push
cd ../../../../../
cd public/publish/docker/linux-${p}-arm64/${f}
docker buildx build -f ${target}/public/publish/docker/linux-${p}-arm64/${f}/Dockerfile-${p} --platform="linux/arm64" --force-rm -t "${image}-${p}-arm64:latest" -t "${image}-${p}-arm64:v1.8.9" . --push
docker buildx build -f ${target}/public/publish/docker/linux-${p}-arm64/${f}/Dockerfile-${p} --platform="linux/arm64" --force-rm -t "${image}-${p}-arm64:latest" -t "${image}-${p}-arm64:v1.9.0" . --push
cd ../../../../../
cd public/publish/docker/linux-${p}-arm/${f}
docker buildx build -f ${target}/public/publish/docker/linux-${p}-arm/${f}/Dockerfile-${p} --platform="linux/arm/v7" --force-rm -t "${image}-${p}-arm:latest" -t "${image}-${p}-arm:v1.8.9" . --push
docker buildx build -f ${target}/public/publish/docker/linux-${p}-arm/${f}/Dockerfile-${p} --platform="linux/arm/v7" --force-rm -t "${image}-${p}-arm:latest" -t "${image}-${p}-arm:v1.9.0" . --push
cd ../../../../../
done
done

View File

@@ -22,7 +22,7 @@ do
mkdir -p public/publish-ipk/${r}/data/usr/bin/linker
cp -rf public/publish/${r}/* public/publish-ipk/${r}/data/usr/bin/linker/
sed -i "s|{version}|1.8.9|g" public/publish-ipk/${r}/control/control
sed -i "s|{version}|1.9.0|g" public/publish-ipk/${r}/control/control
sed -i 's/\r$//' public/publish-ipk/${r}/data/etc/init.d/linker
sed -i 's/\r$//' public/publish-ipk/${r}/control/control
sed -i 's/\r$//' public/publish-ipk/${r}/control/postinst

View File

@@ -28,7 +28,7 @@
<ApplicationId>com.snltty.linker.app</ApplicationId>
<Title>linker.app</Title>
<Version>1.8.9</Version>
<Version>1.9.0</Version>
<Authors>snltty</Authors>
<Company>snltty</Company>
<Copyright>snltty</Copyright>
@@ -38,7 +38,7 @@
<PackageReleaseNotes>linker</PackageReleaseNotes>
<!-- Versions -->
<ApplicationDisplayVersion>1.8.9</ApplicationDisplayVersion>
<ApplicationDisplayVersion>1.9.0</ApplicationDisplayVersion>
<ApplicationVersion>1</ApplicationVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">11.0</SupportedOSPlatformVersion>

View File

@@ -0,0 +1 @@
.el-form-item[data-v-9857fa74],.el-row[data-v-9857fa74]{width:100%}.el-form-item[data-v-9857fa74]:last-child{margin-bottom:0}@media screen and (max-width:768px){.el-col[data-v-9857fa74]{margin-top:.6rem}}.pages[data-v-280c6e06]{padding:1rem 0 0 1rem}.page-wrap[data-v-280c6e06]{display:inline-block}.logger-setting-wrap[data-v-280c6e06]{padding:1rem;box-sizing:border-box}.logger-setting-wrap .inner[data-v-280c6e06]{padding:1rem}.logger-setting-wrap .head[data-v-280c6e06]{margin-bottom:1rem}.logger-setting-wrap .el-table .type-0{color:#00f}.logger-setting-wrap .el-table .type-1{color:#333}.logger-setting-wrap .el-table .type-2{color:#cd9906}.logger-setting-wrap .el-table .type-3{color:red}.logger-setting-wrap .el-table .type-4{color:red;font-weight:700}

View File

@@ -0,0 +1 @@
.el-form-item[data-v-d15496e8]{margin-bottom:1rem}.el-transfer.src-tranfer .el-transfer__buttons .el-button{display:block}.el-transfer.src-tranfer .el-transfer__buttons .el-button:nth-child(2){margin:1rem 0 0 0}.head[data-v-039d8e9c]{margin-bottom:1rem;color:#555;border:1px solid #eee;padding:0 1rem 1rem 1rem}html.dark .head[data-v-039d8e9c]{border-color:#575c61}.firewall.el-table .action-1{color:green}.firewall.el-table .action-2{color:#c83f08}.firewall-setting-wrap[data-v-101dd60e]{padding:1rem;box-sizing:border-box;font-size:1.3rem}.firewall-setting-wrap .inner[data-v-101dd60e]{padding:1rem;width:100%;box-sizing:border-box}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.el-transfer.src-tranfer .el-transfer__buttons .el-button{display:block}.el-transfer.src-tranfer .el-transfer__buttons .el-button:nth-child(2){margin:1rem 0 0 0}.el-form-item[data-v-87f00112]{margin-bottom:1rem}html.dark .head[data-v-df5b0768]{border-color:#575c61}.head[data-v-df5b0768]{margin-bottom:1rem;color:#555;border:1px solid #eee;padding:0 1rem 1rem 1rem}.firewall.el-table .run-btn img{height:2rem;vertical-align:middle}.wakeup-setting-wrap[data-v-eaba7e5c]{padding:1rem;box-sizing:border-box;font-size:1.3rem}.wakeup-setting-wrap .inner[data-v-eaba7e5c]{padding:1rem;width:100%;box-sizing:border-box}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.el-transfer.src-tranfer .el-transfer__buttons .el-button{display:block}.el-transfer.src-tranfer .el-transfer__buttons .el-button:nth-child(2){margin:1rem 0 0 0}.action-wrap[data-v-08c763b2]{font-size:1.3rem;padding:1.5rem}

View File

@@ -0,0 +1 @@
.el-transfer.src-tranfer .el-transfer__buttons .el-button{display:block}.el-transfer.src-tranfer .el-transfer__buttons .el-button:nth-child(2){margin:1rem 0 0 0}.transport-wrap[data-v-ea1d1936]{padding:1rem}

View File

@@ -0,0 +1 @@
.el-radio-group[data-v-72593913]{margin-right:.6rem}.wrap[data-v-72593913]{padding-bottom:1rem}.el-form-item[data-v-0827bc1c]{margin-bottom:1rem}.el-input-number--small[data-v-0827bc1c]{width:10rem!important}.el-form-item[data-v-7ea96748]{margin-bottom:1rem}.el-input-number--small[data-v-7ea96748]{width:10rem!important}.head .search>div[data-v-f4c5184a]{margin-right:1rem}.page[data-v-f4c5184a]{padding:2rem 0;display:inline-block}.el-form-item[data-v-f4c5184a]{margin-bottom:1rem}.el-input-number--small[data-v-f4c5184a]{width:10rem!important}.head .search>div[data-v-6a696afb]{margin-right:1rem}.page[data-v-6a696afb]{padding:2rem 0;display:inline-block}.el-form-item[data-v-6a696afb]{margin-bottom:1rem}.el-input-number--small[data-v-6a696afb]{width:10rem!important}.el-transfer.src-tranfer .el-transfer__buttons .el-button{display:block}.el-transfer.src-tranfer .el-transfer__buttons .el-button:nth-child(2){margin:1rem 0 0 0}.el-form-item[data-v-26eb3ac8]{margin-bottom:1rem}.el-input-number--small[data-v-26eb3ac8]{width:10rem!important}.blue[data-v-dae45eaa]{color:#409eff}.el-checkbox[data-v-dae45eaa]{font-weight:100}a.a-edit .el-icon[data-v-dae45eaa]{vertical-align:middle}.el-form-item[data-v-02fab3c6]{margin-bottom:1rem}.el-input-number--small[data-v-02fab3c6]{width:10rem!important}.head .search>div[data-v-2c4f37db]{margin-right:1rem}.page[data-v-2c4f37db]{padding:2rem 0;display:inline-block}.el-form-item[data-v-2c4f37db]{margin-bottom:1rem}.el-input-number--small[data-v-2c4f37db]{width:10rem!important}.blue[data-v-2cb09550]{color:#409eff}a.a-edit[data-v-2cb09550]{margin-left:1rem}a.a-edit .el-icon[data-v-2cb09550]{vertical-align:middle}.servers-wrap[data-v-3b21a224]{padding:1rem;font-size:1.3rem;color:#555}.servers-wrap a[data-v-3b21a224]{color:#333}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

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><link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=" crossorigin=""/><script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script><script defer="defer" src="js/chunk-vendors.3e624437.js"></script><script defer="defer" src="js/app.35d1e2a7.js"></script><link href="css/chunk-vendors.d8267b33.css" rel="stylesheet"><link href="css/app.db9830c6.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><link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=" crossorigin=""/><script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script><script defer="defer" src="js/chunk-vendors.3e624437.js"></script><script defer="defer" src="js/app.a82999c6.js"></script><link href="css/chunk-vendors.d8267b33.css" rel="stylesheet"><link href="css/app.db9830c6.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>

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[276],{35377:function(e,s,t){t.d(s,{A:function(){return b}});var a=t(56768),n=t(24232);const l={class:"t-c"},c={class:"t-c w-100 mgt-1"};function o(e,s,t,o,r,d){const i=(0,a.g2)("Share"),u=(0,a.g2)("el-icon"),m=(0,a.g2)("el-button"),h=(0,a.g2)("el-transfer"),f=(0,a.g2)("el-dialog");return(0,a.uX)(),(0,a.CE)("div",null,[(0,a.RG)(e.$slots,"default",{},(()=>[(0,a.bF)(m,{class:"btn",size:"small",onClick:o.handleShowSync},{default:(0,a.k6)((()=>[(0,a.bF)(u,null,{default:(0,a.k6)((()=>[(0,a.bF)(i)])),_:1})])),_:1},8,["onClick"])])),(0,a.bF)(f,{class:"options-center",title:e.$t("server.sync"),"destroy-on-close":"",modelValue:o.state.showNames,"onUpdate:modelValue":s[2]||(s[2]=e=>o.state.showNames=e),width:"54rem",top:"2vh"},{default:(0,a.k6)((()=>[(0,a.Lk)("div",null,[(0,a.Lk)("div",l,(0,n.v_)(`${e.$t("server.sync")}${e.$t(`server.async${o.state.name}`)}${e.$t("server.asyncText")}`),1),(0,a.bF)(h,{class:"src-tranfer mgt-1",modelValue:o.state.srcIdValues,"onUpdate:modelValue":s[0]||(s[0]=e=>o.state.srcIdValues=e),filterable:"","filter-method":o.srcFilterMethod,data:o.state.srcIds,titles:[e.$t("firewall.unselect"),e.$t("firewall.selected")],props:{key:"MachineId",label:"MachineName"}},null,8,["modelValue","filter-method","data","titles"]),(0,a.Lk)("div",c,[(0,a.bF)(m,{onClick:s[1]||(s[1]=e=>o.state.showNames=!1)},{default:(0,a.k6)((()=>[(0,a.eW)((0,n.v_)(e.$t("common.cancel")),1)])),_:1}),(0,a.bF)(m,{type:"primary",onClick:o.handleConfirm},{default:(0,a.k6)((()=>[(0,a.eW)((0,n.v_)(e.$t("common.confirm")),1)])),_:1},8,["onClick"])])])])),_:1},8,["title","modelValue"])])}var r=t(69299),d=t(10004);const i=e=>(0,d.zG)("sync/Sync",e);var u=t(53830),m=t(57477),h=t(51219),f=t(90144),v=t(35931),k={props:["name"],components:{Share:m.SYj},setup(e){const{t:s}=(0,v.s9)(),t=(0,u.B)(),n=(0,a.EW)((()=>t.value.hasAccess("Sync"))),l=(0,f.Kh)({name:e.name,loading:!1,showNames:!1,srcIdValues:[],srcIds:[]}),c=()=>{i({names:[e.name],ids:l.srcIdValues}).then((e=>{h.nk.success(s("common.oper")),l.showNames=!1}))},o=()=>{n.value?(l.showNames=!0,d()):h.nk.success(s("common.access"))},d=()=>{l.loading=!0,(0,r.NT)().then((e=>{l.loading=!1,l.srcIds=e})).catch((e=>{l.loading=!1}))},m=(e,s)=>s.MachineName.toLowerCase().includes(e.toLowerCase());return{state:l,handleShowSync:o,srcFilterMethod:m,handleConfirm:c}}},w=t(71241);const p=(0,w.A)(k,[["render",o]]);var b=p},83384:function(e,s,t){t.r(s),t.d(s,{default:function(){return m}});var a=t(56768);const n={class:"firewall-setting-wrap flex flex-column h-100"},l={class:"inner"};function c(e,s,t,c,o,r){const d=(0,a.g2)("Firewall");return(0,a.uX)(),(0,a.CE)("div",n,[(0,a.Lk)("div",l,[(0,a.bF)(d)])])}var o=t(90144),r=t(63733),d={components:{Firewall:r.A},setup(e,{emit:s}){const t=(0,o.Kh)({});return{state:t}}},i=t(71241);const u=(0,i.A)(d,[["render",c],["__scopeId","data-v-101dd60e"]]);var m=u}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[379],{19892:function(e,a,n){n.r(a),n.d(a,{default:function(){return O}});var t=n(56768);const s={class:"net-wrap app-wrap"},l={class:"inner absolute flex flex-column flex-nowrap"},i={class:"head"},u={class:"body flex-1 relative"},r={class:"status"};function c(e,a,n,c,d,o){const g=(0,t.g2)("Head"),p=(0,t.g2)("List"),v=(0,t.g2)("Status");return(0,t.uX)(),(0,t.CE)("div",s,[(0,t.Lk)("div",l,[(0,t.Lk)("div",i,[(0,t.bF)(g)]),(0,t.Lk)("div",u,[(0,t.bF)(p)]),(0,t.Lk)("div",r,[(0,t.bF)(v,{config:!1})])])])}n(44114);var d=n(24232);const o=e=>((0,t.Qi)("data-v-1cb47bd6"),e=e(),(0,t.jt)(),e),g={class:"head-wrap"},p={class:"tools flex"},v={class:"label"},h=o((()=>(0,t.Lk)("span",{class:"flex-1"},null,-1))),f={style:{"margin-left":"1rem"}};function k(e,a,n,s,l,i){const u=(0,t.g2)("Refresh"),r=(0,t.g2)("el-icon"),c=(0,t.g2)("el-button"),o=(0,t.g2)("Background");return(0,t.uX)(),(0,t.CE)("div",g,[(0,t.Lk)("div",p,[(0,t.Lk)("span",v,"分组 : "+(0,d.v_)(s.state.group),1),h,(0,t.bF)(c,{size:"small",onClick:s.handleRefresh},{default:(0,t.k6)((()=>[(0,t.eW)(" 刷新(F5)"),(0,t.bF)(r,null,{default:(0,t.k6)((()=>[(0,t.bF)(u)])),_:1})])),_:1},8,["onClick"]),(0,t.Lk)("div",f,[(0,t.bF)(o,{name:"net"})])])])}var b=n(53830),m=n(90144),C=n(57477),L=n(7199),_={components:{Edit:C.ffu,Refresh:C.C42,Background:L.A},setup(){const e=(0,b.B)(),a=(0,m.Kh)({server:(0,t.EW)((()=>e.value.config.Client.Server.Host)),group:(0,t.EW)((()=>e.value.config.Client.Group.Name))}),n=()=>{window.location.reload()};return{state:a,handleRefresh:n}}},w=n(71241);const S=(0,w.A)(_,[["render",k],["__scopeId","data-v-1cb47bd6"]]);var x=S;const F=e=>((0,t.Qi)("data-v-7a103ea4"),e=e(),(0,t.jt)(),e),z={class:"net-list-wrap flex flex-column absolute"},E={class:"flex-1 scrollbar"},T={class:"flex"},A=F((()=>(0,t.Lk)("div",{class:"flex-1"},null,-1))),I={class:"tuntap"},P={class:"page t-c"},B={class:"page-wrap t-c"};function R(e,a,n,s,l,i){const u=(0,t.g2)("DeviceName"),r=(0,t.g2)("UpdaterBtn"),c=(0,t.g2)("TuntapShow"),d=(0,t.g2)("el-pagination");return(0,t.uX)(),(0,t.CE)("div",z,[(0,t.Lk)("div",E,[(0,t.Lk)("ul",null,[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(s.devices.page.List,((e,a)=>((0,t.uX)(),(0,t.CE)("li",{key:a},[(0,t.Lk)("dl",null,[(0,t.Lk)("dt",T,[(0,t.Lk)("div",null,[(0,t.bF)(u,{item:e},null,8,["item"])]),A,(0,t.Lk)("div",null,[(0,t.bF)(r,{config:!1,item:e},null,8,["item"])])]),(0,t.Lk)("dd",I,[s.tuntap.list[e.MachineId]?((0,t.uX)(),(0,t.Wv)(c,{key:0,item:e},null,8,["item"])):(0,t.Q3)("",!0)])])])))),128))])]),(0,t.Lk)("div",P,[(0,t.Lk)("div",B,[(0,t.bF)(d,{size:"small",background:"",layout:"prev,pager, next","pager-count":5,total:s.devices.page.Count,"page-size":s.devices.page.Request.Size,"current-page":s.devices.page.Request.Page,onCurrentChange:s.handlePageChange,onSizeChange:s.handlePageSizeChange,"page-sizes":[10,20,50,100,255]},null,8,["total","page-size","current-page","onCurrentChange","onSizeChange"])])])])}var X=n(75234),y=n(54373),N=n(65304),U=n(31480),D=n(33200),Q=n(6564),W=n(73417),H={components:{StarFilled:C.BQ2,UpdaterBtn:U.A,DeviceName:D.A,TuntapShow:Q.A},setup(e){(0,b.B)();const a=(0,m.Kh)({}),{devices:n,machineId:s,_getSignList:l,_getSignList1:i,handlePageChange:u,handlePageSizeChange:r,clearDevicesTimeout:c}=(0,y.r)(),{tuntap:d,_getTuntapInfo:o,handleTuntapRefresh:g,clearTuntapTimeout:p,handleTuntapEdit:v,sortTuntapIP:h}=(0,X.O)(),{_getUpdater:f,_subscribeUpdater:k,clearUpdaterTimeout:C}=(0,N.d)();(0,W.L2)();return(0,t.sV)((()=>{u(),g(),l(),i(),o(),f(),k()})),(0,t.hi)((()=>{c(),p(),C()})),{state:a,devices:n,machineId:s,handlePageChange:u,handlePageSizeChange:r,tuntap:d}}};const K=(0,w.A)(H,[["render",R],["__scopeId","data-v-7a103ea4"]]);var j=K,q=n(2593),M=n(81387),V={components:{Head:x,List:j,Status:q.A},setup(){document.addEventListener("contextmenu",(function(e){e.preventDefault()}));const e=(0,b.B)(),a=(0,M.rd)();return(0,t.sV)((()=>{0==e.value.hasAccess("NetManager")&&a.push({name:"NoPermission"})})),{}}};const G=(0,w.A)(V,[["render",c],["__scopeId","data-v-60d9820b"]]);var O=G}}]);

View File

@@ -0,0 +1 @@
"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[478],{54438:function(e,n,t){t.r(n),t.d(n,{default:function(){return p}});var s=t(56768);const a={class:"wakeup-setting-wrap flex flex-column h-100"},r={class:"inner"};function u(e,n,t,u,c,i){const o=(0,s.g2)("Wakeup");return(0,s.uX)(),(0,s.CE)("div",a,[(0,s.Lk)("div",r,[(0,s.bF)(o)])])}var c=t(90144),i=t(99919),o={components:{Wakeup:i.A},setup(e,{emit:n}){const t=(0,c.Kh)({});return{state:t}}},k=t(71241);const l=(0,k.A)(o,[["render",u],["__scopeId","data-v-eaba7e5c"]]);var p=l}}]);

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[493],{87414:function(e,a,n){n.r(a),n.d(a,{default:function(){return J}});var t=n(56768);const s={class:"net-wrap app-wrap"},l={class:"inner absolute flex flex-column flex-nowrap"},i={class:"head"},u={class:"body flex-1 relative"},r={class:"status"};function c(e,a,n,c,d,o){const g=(0,t.g2)("Head"),p=(0,t.g2)("List"),v=(0,t.g2)("Status");return(0,t.uX)(),(0,t.CE)("div",s,[(0,t.Lk)("div",l,[(0,t.Lk)("div",i,[(0,t.bF)(g)]),(0,t.Lk)("div",u,[(0,t.bF)(p)]),(0,t.Lk)("div",r,[(0,t.bF)(v,{config:!1})])])])}n(44114);var d=n(24232);const o=e=>((0,t.Qi)("data-v-1cb47bd6"),e=e(),(0,t.jt)(),e),g={class:"head-wrap"},p={class:"tools flex"},v={class:"label"},h=o((()=>(0,t.Lk)("span",{class:"flex-1"},null,-1))),f={style:{"margin-left":"1rem"}};function k(e,a,n,s,l,i){const u=(0,t.g2)("Refresh"),r=(0,t.g2)("el-icon"),c=(0,t.g2)("el-button"),o=(0,t.g2)("Background");return(0,t.uX)(),(0,t.CE)("div",g,[(0,t.Lk)("div",p,[(0,t.Lk)("span",v,"分组 : "+(0,d.v_)(s.state.group),1),h,(0,t.bF)(c,{size:"small",onClick:s.handleRefresh},{default:(0,t.k6)((()=>[(0,t.eW)(" 刷新(F5)"),(0,t.bF)(r,null,{default:(0,t.k6)((()=>[(0,t.bF)(u)])),_:1})])),_:1},8,["onClick"]),(0,t.Lk)("div",f,[(0,t.bF)(o,{name:"net"})])])])}var b=n(53830),m=n(90144),C=n(57477),L=n(7199),_={components:{Edit:C.ffu,Refresh:C.C42,Background:L.A},setup(){const e=(0,b.B)(),a=(0,m.Kh)({server:(0,t.EW)((()=>e.value.config.Client.Server.Host)),group:(0,t.EW)((()=>e.value.config.Client.Group.Name))}),n=()=>{window.location.reload()};return{state:a,handleRefresh:n}}},w=n(71241);const S=(0,w.A)(_,[["render",k],["__scopeId","data-v-1cb47bd6"]]);var x=S;const F=e=>((0,t.Qi)("data-v-3c358101"),e=e(),(0,t.jt)(),e),z={class:"net-list-wrap flex flex-column absolute"},E={class:"flex-1 scrollbar"},T={class:"flex"},A=F((()=>(0,t.Lk)("div",{class:"flex-1"},null,-1))),I={class:"tuntap"},P={class:"page t-c"},B={class:"page-wrap t-c"};function R(e,a,n,s,l,i){const u=(0,t.g2)("DeviceName"),r=(0,t.g2)("UpdaterBtn"),c=(0,t.g2)("TuntapShow"),d=(0,t.g2)("el-pagination");return(0,t.uX)(),(0,t.CE)("div",z,[(0,t.Lk)("div",E,[(0,t.Lk)("ul",null,[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(s.devices.page.List,((e,a)=>((0,t.uX)(),(0,t.CE)("li",{key:a},[(0,t.Lk)("dl",null,[(0,t.Lk)("dt",T,[(0,t.Lk)("div",null,[(0,t.bF)(u,{item:e},null,8,["item"])]),A,(0,t.Lk)("div",null,[(0,t.bF)(r,{config:!1,item:e},null,8,["item"])])]),(0,t.Lk)("dd",I,[s.tuntap.list[e.MachineId]?((0,t.uX)(),(0,t.Wv)(c,{key:0,item:e},null,8,["item"])):(0,t.Q3)("",!0)])])])))),128))])]),(0,t.Lk)("div",P,[(0,t.Lk)("div",B,[(0,t.bF)(d,{size:"small",background:"",layout:"prev,pager, next","pager-count":5,total:s.devices.page.Count,"page-size":s.devices.page.Request.Size,"current-page":s.devices.page.Request.Page,onCurrentChange:s.handlePageChange,onSizeChange:s.handlePageSizeChange,"page-sizes":[10,20,50,100,255]},null,8,["total","page-size","current-page","onCurrentChange","onSizeChange"])])])])}var y=n(75234),X=n(54373),N=n(65304),U=n(31480),D=n(33200),Q=n(6564),W=n(73417),H=n(76978),K={components:{StarFilled:C.BQ2,UpdaterBtn:U.A,DeviceName:D.A,TuntapShow:Q.A},setup(e){(0,b.B)();const a=(0,m.Kh)({}),{devices:n,machineId:s,_getSignList:l,_getSignList1:i,handlePageChange:u,handlePageSizeChange:r,clearDevicesTimeout:c}=(0,X.r)(),{tuntap:d,_getTuntapInfo:o,handleTuntapRefresh:g,clearTuntapTimeout:p,handleTuntapEdit:v,sortTuntapIP:h}=(0,y.O)(),{_getUpdater:f,_subscribeUpdater:k,clearUpdaterTimeout:C}=(0,N.d)();(0,H.y)();(0,W.L2)();return(0,t.sV)((()=>{u(),g(),l(),i(),o(),f(),k()})),(0,t.hi)((()=>{c(),p(),C()})),{state:a,devices:n,machineId:s,handlePageChange:u,handlePageSizeChange:r,tuntap:d}}};const j=(0,w.A)(K,[["render",R],["__scopeId","data-v-3c358101"]]);var q=j,M=n(2593),V=n(81387),G={components:{Head:x,List:q,Status:M.A},setup(){document.addEventListener("contextmenu",(function(e){e.preventDefault()}));const e=(0,b.B)(),a=(0,V.rd)();return(0,t.sV)((()=>{0==e.value.hasAccess("NetManager")&&a.push({name:"NoPermission"})})),{}}};const O=(0,w.A)(G,[["render",c],["__scopeId","data-v-60d9820b"]]);var J=O}}]);

View File

@@ -0,0 +1 @@
"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[52],{96271:function(e,t,n){n.d(t,{A:function(){return b}});var a=n(56768),s=n(24232);const o={class:"flex"},c={class:"flex-1"},r={class:"t-c"};function l(e,t,n,l,d,i){const u=(0,a.g2)("Sync"),m=(0,a.g2)("el-input"),h=(0,a.g2)("el-button"),v=(0,a.g2)("el-card"),f=(0,a.gN)("trim");return(0,a.uX)(),(0,a.Wv)(v,{shadow:"never"},{header:(0,a.k6)((()=>[(0,a.Lk)("div",o,[(0,a.Lk)("span",c,(0,s.v_)(e.$t("action.text")),1),l.state.isSelf?((0,a.uX)(),(0,a.Wv)(u,{key:0,name:"ActionStatic"})):(0,a.Q3)("",!0)])])),footer:(0,a.k6)((()=>[(0,a.Lk)("div",r,[(0,a.bF)(h,{type:"success",onClick:l.handleSave},{default:(0,a.k6)((()=>[(0,a.eW)((0,s.v_)(e.$t("common.confirm")),1)])),_:1},8,["onClick"])])])),default:(0,a.k6)((()=>[(0,a.Lk)("div",null,[(0,a.bo)((0,a.bF)(m,{modelValue:l.state.data,"onUpdate:modelValue":t[0]||(t[0]=e=>l.state.data=e),rows:10,type:"textarea",resize:"none",onChange:l.handleSave},null,8,["modelValue","onChange"]),[[f]])])])),_:1})}var d=n(10004);const i=e=>(0,d.zG)("action/GetServerArgs",e),u=e=>(0,d.zG)("action/SetServerArgs",e);var m=n(53830),h=n(51219),v=n(90144),f=n(35931),k=n(35377),p={props:["machineId"],components:{Sync:k.A},setup(e){const{t:t}=(0,f.s9)(),n=(0,m.B)(),s=(0,v.Kh)({data:"",machineId:e.machineId||n.value.config.Client.Id,isSelf:(0,a.EW)((()=>s.machineId==n.value.config.Client.Id))}),o=()=>{i(s.machineId).then((e=>{s.data=e}))},c=()=>{try{if(s.data&&"object"!=typeof JSON.parse(s.data))return void h.nk.error(t("action.jsonError"))}catch(e){return void h.nk.error(t("action.jsonError"))}u({Key:s.machineId,Value:s.data}).then((()=>{h.nk.success(t("common.oper"))})).catch((e=>{console.log(e),h.nk.error(t("common.operFail"))}))};return(0,a.sV)((()=>{o()})),{state:s,handleSave:c}}},g=n(71241);const I=(0,g.A)(p,[["render",l]]);var b=I},35377:function(e,t,n){n.d(t,{A:function(){return I}});var a=n(56768),s=n(24232);const o={class:"t-c"},c={class:"t-c w-100 mgt-1"};function r(e,t,n,r,l,d){const i=(0,a.g2)("Share"),u=(0,a.g2)("el-icon"),m=(0,a.g2)("el-button"),h=(0,a.g2)("el-transfer"),v=(0,a.g2)("el-dialog");return(0,a.uX)(),(0,a.CE)("div",null,[(0,a.RG)(e.$slots,"default",{},(()=>[(0,a.bF)(m,{class:"btn",size:"small",onClick:r.handleShowSync},{default:(0,a.k6)((()=>[(0,a.bF)(u,null,{default:(0,a.k6)((()=>[(0,a.bF)(i)])),_:1})])),_:1},8,["onClick"])])),(0,a.bF)(v,{class:"options-center",title:e.$t("server.sync"),"destroy-on-close":"",modelValue:r.state.showNames,"onUpdate:modelValue":t[2]||(t[2]=e=>r.state.showNames=e),width:"54rem",top:"2vh"},{default:(0,a.k6)((()=>[(0,a.Lk)("div",null,[(0,a.Lk)("div",o,(0,s.v_)(`${e.$t("server.sync")}${e.$t(`server.async${r.state.name}`)}${e.$t("server.asyncText")}`),1),(0,a.bF)(h,{class:"src-tranfer mgt-1",modelValue:r.state.srcIdValues,"onUpdate:modelValue":t[0]||(t[0]=e=>r.state.srcIdValues=e),filterable:"","filter-method":r.srcFilterMethod,data:r.state.srcIds,titles:[e.$t("firewall.unselect"),e.$t("firewall.selected")],props:{key:"MachineId",label:"MachineName"}},null,8,["modelValue","filter-method","data","titles"]),(0,a.Lk)("div",c,[(0,a.bF)(m,{onClick:t[1]||(t[1]=e=>r.state.showNames=!1)},{default:(0,a.k6)((()=>[(0,a.eW)((0,s.v_)(e.$t("common.cancel")),1)])),_:1}),(0,a.bF)(m,{type:"primary",onClick:r.handleConfirm},{default:(0,a.k6)((()=>[(0,a.eW)((0,s.v_)(e.$t("common.confirm")),1)])),_:1},8,["onClick"])])])])),_:1},8,["title","modelValue"])])}var l=n(69299),d=n(10004);const i=e=>(0,d.zG)("sync/Sync",e);var u=n(53830),m=n(57477),h=n(51219),v=n(90144),f=n(35931),k={props:["name"],components:{Share:m.SYj},setup(e){const{t:t}=(0,f.s9)(),n=(0,u.B)(),s=(0,a.EW)((()=>n.value.hasAccess("Sync"))),o=(0,v.Kh)({name:e.name,loading:!1,showNames:!1,srcIdValues:[],srcIds:[]}),c=()=>{i({names:[e.name],ids:o.srcIdValues}).then((e=>{h.nk.success(t("common.oper")),o.showNames=!1}))},r=()=>{s.value?(o.showNames=!0,d()):h.nk.success(t("common.access"))},d=()=>{o.loading=!0,(0,l.NT)().then((e=>{o.loading=!1,o.srcIds=e})).catch((e=>{o.loading=!1}))},m=(e,t)=>t.MachineName.toLowerCase().includes(e.toLowerCase());return{state:o,handleShowSync:r,srcFilterMethod:m,handleConfirm:c}}},p=n(71241);const g=(0,p.A)(k,[["render",r]]);var I=g},5052:function(e,t,n){n.r(t),n.d(t,{default:function(){return u}});var a=n(56768);const s={class:"action-wrap"};function o(e,t,n,o,c,r){const l=(0,a.g2)("Action");return(0,a.uX)(),(0,a.CE)("div",s,[(0,a.bF)(l,{machineId:o.state.machineId},null,8,["machineId"])])}var c=n(90144),r=n(96271),l={props:["machineId"],components:{Action:r.A},setup(e){const t=(0,c.Kh)({machineId:e.machineId});return{state:t}}},d=n(71241);const i=(0,d.A)(l,[["render",o],["__scopeId","data-v-08c763b2"]]);var u=i}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[693],{87414:function(e,a,n){n.r(a),n.d(a,{default:function(){return J}});var t=n(56768);const s={class:"net-wrap app-wrap"},l={class:"inner absolute flex flex-column flex-nowrap"},i={class:"head"},u={class:"body flex-1 relative"},r={class:"status"};function c(e,a,n,c,d,o){const g=(0,t.g2)("Head"),p=(0,t.g2)("List"),v=(0,t.g2)("Status");return(0,t.uX)(),(0,t.CE)("div",s,[(0,t.Lk)("div",l,[(0,t.Lk)("div",i,[(0,t.bF)(g)]),(0,t.Lk)("div",u,[(0,t.bF)(p)]),(0,t.Lk)("div",r,[(0,t.bF)(v,{config:!1})])])])}n(44114);var d=n(24232);const o=e=>((0,t.Qi)("data-v-1cb47bd6"),e=e(),(0,t.jt)(),e),g={class:"head-wrap"},p={class:"tools flex"},v={class:"label"},h=o((()=>(0,t.Lk)("span",{class:"flex-1"},null,-1))),f={style:{"margin-left":"1rem"}};function k(e,a,n,s,l,i){const u=(0,t.g2)("Refresh"),r=(0,t.g2)("el-icon"),c=(0,t.g2)("el-button"),o=(0,t.g2)("Background");return(0,t.uX)(),(0,t.CE)("div",g,[(0,t.Lk)("div",p,[(0,t.Lk)("span",v,"分组 : "+(0,d.v_)(s.state.group),1),h,(0,t.bF)(c,{size:"small",onClick:s.handleRefresh},{default:(0,t.k6)((()=>[(0,t.eW)(" 刷新(F5)"),(0,t.bF)(r,null,{default:(0,t.k6)((()=>[(0,t.bF)(u)])),_:1})])),_:1},8,["onClick"]),(0,t.Lk)("div",f,[(0,t.bF)(o,{name:"net"})])])])}var b=n(53830),m=n(90144),C=n(57477),L=n(7199),_={components:{Edit:C.ffu,Refresh:C.C42,Background:L.A},setup(){const e=(0,b.B)(),a=(0,m.Kh)({server:(0,t.EW)((()=>e.value.config.Client.Server.Host)),group:(0,t.EW)((()=>e.value.config.Client.Group.Name))}),n=()=>{window.location.reload()};return{state:a,handleRefresh:n}}},w=n(71241);const S=(0,w.A)(_,[["render",k],["__scopeId","data-v-1cb47bd6"]]);var x=S;const F=e=>((0,t.Qi)("data-v-3c358101"),e=e(),(0,t.jt)(),e),z={class:"net-list-wrap flex flex-column absolute"},E={class:"flex-1 scrollbar"},T={class:"flex"},A=F((()=>(0,t.Lk)("div",{class:"flex-1"},null,-1))),I={class:"tuntap"},P={class:"page t-c"},B={class:"page-wrap t-c"};function R(e,a,n,s,l,i){const u=(0,t.g2)("DeviceName"),r=(0,t.g2)("UpdaterBtn"),c=(0,t.g2)("TuntapShow"),d=(0,t.g2)("el-pagination");return(0,t.uX)(),(0,t.CE)("div",z,[(0,t.Lk)("div",E,[(0,t.Lk)("ul",null,[((0,t.uX)(!0),(0,t.CE)(t.FK,null,(0,t.pI)(s.devices.page.List,((e,a)=>((0,t.uX)(),(0,t.CE)("li",{key:a},[(0,t.Lk)("dl",null,[(0,t.Lk)("dt",T,[(0,t.Lk)("div",null,[(0,t.bF)(u,{item:e},null,8,["item"])]),A,(0,t.Lk)("div",null,[(0,t.bF)(r,{config:!1,item:e},null,8,["item"])])]),(0,t.Lk)("dd",I,[s.tuntap.list[e.MachineId]?((0,t.uX)(),(0,t.Wv)(c,{key:0,item:e},null,8,["item"])):(0,t.Q3)("",!0)])])])))),128))])]),(0,t.Lk)("div",P,[(0,t.Lk)("div",B,[(0,t.bF)(d,{size:"small",background:"",layout:"prev,pager, next","pager-count":5,total:s.devices.page.Count,"page-size":s.devices.page.Request.Size,"current-page":s.devices.page.Request.Page,onCurrentChange:s.handlePageChange,onSizeChange:s.handlePageSizeChange,"page-sizes":[10,20,50,100,255]},null,8,["total","page-size","current-page","onCurrentChange","onSizeChange"])])])])}var y=n(75234),X=n(54373),N=n(65304),U=n(31480),D=n(33200),Q=n(6564),W=n(73417),H=n(76978),K={components:{StarFilled:C.BQ2,UpdaterBtn:U.A,DeviceName:D.A,TuntapShow:Q.A},setup(e){(0,b.B)();const a=(0,m.Kh)({}),{devices:n,machineId:s,_getSignList:l,_getSignList1:i,handlePageChange:u,handlePageSizeChange:r,clearDevicesTimeout:c}=(0,X.r)(),{tuntap:d,_getTuntapInfo:o,handleTuntapRefresh:g,clearTuntapTimeout:p,handleTuntapEdit:v,sortTuntapIP:h}=(0,y.O)(),{_getUpdater:f,_subscribeUpdater:k,clearUpdaterTimeout:C}=(0,N.d)();(0,H.y)();(0,W.L2)();return(0,t.sV)((()=>{u(),g(),l(),i(),o(),f(),k()})),(0,t.hi)((()=>{c(),p(),C()})),{state:a,devices:n,machineId:s,handlePageChange:u,handlePageSizeChange:r,tuntap:d}}};const j=(0,w.A)(K,[["render",R],["__scopeId","data-v-3c358101"]]);var q=j,M=n(2593),V=n(81387),G={components:{Head:x,List:q,Status:M.A},setup(){document.addEventListener("contextmenu",(function(e){e.preventDefault()}));const e=(0,b.B)(),a=(0,V.rd)();return(0,t.sV)((()=>{0==e.value.hasAccess("NetManager")&&a.push({name:"NoPermission"})})),{}}};const O=(0,w.A)(G,[["render",c],["__scopeId","data-v-60d9820b"]]);var J=O}}]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -45,12 +45,46 @@ WantedBy=multi-user.target
```
4. 执行命令
```
//4、重新加载配置文件
//重新加载配置文件
systemctl daemon-reload
//5、启动,或者重新启动
//启动,或者重新启动
systemctl start linker
systemctl restart linker
//6、设置为自启动
//设置为自启动
systemctl enable linker
```
:::
## 3、alpine 手动 rc-service
:::tip[说明]
1. 如果运行为客户端请确保你的linux有`tuntap`模块
2. 安装依赖`apk add --no-cache libstdc++ libintl tzdata zeromq bash net-tools iproute2 numactl-dev iputils iptables dmidecode`
3. 下载linux alpine版本程序放到 `/usr/local/linker` 文件夹
4. 写配置文件 `vi /etc/init.d/linker`,内容如下
```
#!/sbin/openrc-run
name="linker"
description="linker"
command="/usr/local/linker/linker"
command_args=""
command_background=true
pidfile="/var/run/${name}.pid"
depend() {
need net
}
```
5. 执行命令
```
//给予执行权限
chmod +x /etc/init.d/linker
//启动,或者重新启动
systemctl linker start
systemctl linker restart
//设置为自启动
rc-service add linker
```
:::

View File

@@ -11,6 +11,7 @@ sidebar_position: 96
<div>
- 米多贝克&米多网络工程
- 旋律 * 3
- 阳阳
- 谢幕____(海那边的白月光)
- swayer.
@@ -18,7 +19,7 @@ sidebar_position: 96
- 仰望 * 2
- 李氏の天下
- 小猪
- 菜菜(木子) * 2
- 菜菜(木子) * 3
- 杰米儿
- Oasis
- 坦然

View File

@@ -14,9 +14,9 @@
<Copyright>snltty</Copyright>
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebugType>full</DebugType>

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger api access</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger api action</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -17,9 +17,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger api</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -17,9 +17,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger cdkey</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger channel</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger decenter</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger entry</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger exroute</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -17,9 +17,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger firewall</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -5,6 +5,7 @@ using linker.messenger.forward.proxy;
using linker.messenger.relay.server;
using linker.messenger.socks5;
using linker.messenger.tunnel;
using linker.messenger.tuntap;
using linker.plugins.sforward.proxy;
using Microsoft.Extensions.DependencyInjection;
namespace linker.messenger.flow
@@ -26,9 +27,13 @@ namespace linker.messenger.flow
serviceCollection.AddSingleton<FlowSocks5>();
serviceCollection.AddSingleton<Socks5Proxy, FlowSocks5Proxy>();
serviceCollection.AddSingleton<FlowTunnel>();
serviceCollection.AddSingleton<TuntapProxy, FlowTuntapProxy>();
serviceCollection.AddSingleton<FlowMessenger>();
serviceCollection.AddSingleton<IMessengerResolver, MessengerResolverFlow>();
serviceCollection.AddSingleton<IMessengerSender, MessengerSenderFlow>();

View File

@@ -1,10 +1,31 @@
using linker.libs;
using linker.libs.extends;
using linker.messenger.pcp;
using linker.messenger.relay.client;
using linker.messenger.signin;
using linker.messenger.tuntap;
using linker.messenger.tuntap.cidr;
using linker.tunnel;
using linker.tunnel.connection;
using System.Collections.Concurrent;
namespace linker.messenger.flow
{
public sealed class FlowTuntapProxy : TuntapProxy
{
private readonly FlowTunnel flowTunnel;
public FlowTuntapProxy(FlowTunnel flowTunnel, ISignInClientStore signInClientStore, TunnelTransfer tunnelTransfer, RelayClientTransfer relayTransfer, PcpTransfer pcpTransfer,
SignInClientTransfer signInClientTransfer, IRelayClientStore relayClientStore, TuntapConfigTransfer tuntapConfigTransfer, TuntapCidrConnectionManager tuntapCidrConnectionManager, TuntapCidrDecenterManager tuntapCidrDecenterManager, TuntapCidrMapfileManager tuntapCidrMapfileManager) : base(signInClientStore, tunnelTransfer, relayTransfer, pcpTransfer, signInClientTransfer, relayClientStore, tuntapConfigTransfer, tuntapCidrConnectionManager, tuntapCidrDecenterManager, tuntapCidrMapfileManager)
{
this.flowTunnel = flowTunnel;
}
public override void Add(ITunnelConnection connection)
{
flowTunnel.Add(connection);
}
}
public sealed class FlowTunnel : IFlow
{
public long ReceiveBytes { get; private set; }

View File

@@ -17,9 +17,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger flow</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
@@ -45,6 +45,7 @@
<ProjectReference Include="..\linker.messenger.signin\linker.messenger.signin.csproj" />
<ProjectReference Include="..\linker.messenger.socks5\linker.messenger.socks5.csproj" />
<ProjectReference Include="..\linker.messenger.tunnel\linker.messenger.tunnel.csproj" />
<ProjectReference Include="..\linker.messenger.tuntap\linker.messenger.tuntap.csproj" />
<ProjectReference Include="..\linker.messenger\linker.messenger.csproj" />
</ItemGroup>
</Project>

View File

@@ -17,9 +17,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger forward</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -17,9 +17,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger listen</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger logger</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -17,9 +17,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger pcp</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger plan</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger remote app</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -81,7 +81,7 @@ namespace linker.messenger.relay.client.transport
SslStream sslStream = null;
if (relayInfo.SSL)
{
sslStream = new SslStream(new NetworkStream(socket, false), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), null);
sslStream = new SslStream(new NetworkStream(socket, false), false, ValidateServerCertificate, null);
await sslStream.AuthenticateAsClientAsync(new SslClientAuthenticationOptions
{
EnabledSslProtocols = SslProtocols.Tls13 | SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls,
@@ -289,7 +289,7 @@ namespace linker.messenger.relay.client.transport
SslStream sslStream = null;
if (relayInfo.SSL)
{
sslStream = new SslStream(new NetworkStream(socket, false), false);
sslStream = new SslStream(new NetworkStream(socket, false), false, ValidateServerCertificate,null);
await sslStream.AuthenticateAsServerAsync(messengerStore.Certificate, OperatingSystem.IsAndroid(), SslProtocols.Tls13 | SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls, false).ConfigureAwait(false);
}
return new TunnelConnectionTcp

View File

@@ -18,9 +18,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger relay</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger serializer memorypack</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger sforward</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -17,9 +17,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger signin</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger socks5</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger store file</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -18,9 +18,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger sync</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger tunnel</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -16,7 +16,7 @@ namespace linker.messenger.tuntap
public void Receive(ITunnelConnection connection, ReadOnlyMemory<byte> packet);
}
public sealed class TuntapProxy : channel.Channel, ITunnelConnectionReceiveCallback
public class TuntapProxy : channel.Channel, ITunnelConnectionReceiveCallback
{
public ITuntapProxyCallback Callback { get; set; }
protected override string TransactionId => "tuntap";
@@ -39,6 +39,7 @@ namespace linker.messenger.tuntap
protected override void Connected(ITunnelConnection connection)
{
Add(connection);
connection.BeginReceive(this, null);
if (tuntapConfigTransfer.Info.TcpMerge)
connection.StartPacketMerge();

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger tuntap</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger updater</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger wakeup</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -17,9 +17,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger white list</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -71,7 +71,7 @@ namespace linker.messenger
public async Task BeginReceiveServer(Socket socket, Memory<byte> memory)
{
NetworkStream networkStream = new NetworkStream(socket, false);
SslStream sslStream = new SslStream(networkStream, true);
SslStream sslStream = new SslStream(networkStream, true, ValidateServerCertificate,null);
try
{
await sslStream.AuthenticateAsServerAsync(messengerStore.Certificate, OperatingSystem.IsAndroid(), SslProtocols.Tls13 | SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls, false).WaitAsync(TimeSpan.FromMilliseconds(5000)).ConfigureAwait(false);
@@ -136,7 +136,7 @@ namespace linker.messenger
}
NetworkStream networkStream = new NetworkStream(socket, false);
SslStream sslStream = new SslStream(networkStream, true, new RemoteCertificateValidationCallback(ValidateServerCertificate), null);
SslStream sslStream = new SslStream(networkStream, true, ValidateServerCertificate, null);
try
{
await sslStream.AuthenticateAsClientAsync(new SslClientAuthenticationOptions

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker messenger</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker snat</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker tun</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -16,9 +16,9 @@
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
<PackageReleaseNotes>linker tunnel</PackageReleaseNotes>
<Version>1.8.9</Version>
<AssemblyVersion>1.8.9</AssemblyVersion>
<FileVersion>1.8.9</FileVersion>
<Version>1.9.0</Version>
<AssemblyVersion>1.9.0</AssemblyVersion>
<FileVersion>1.9.0</FileVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -177,7 +177,7 @@ namespace linker.tunnel.transport
SslStream sslStream = null;
if (tunnelTransportInfo.SSL)
{
sslStream = new SslStream(new NetworkStream(targetSocket, false), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), null);
sslStream = new SslStream(new NetworkStream(targetSocket, false), false, ValidateServerCertificate, null);
await sslStream.AuthenticateAsClientAsync(new SslClientAuthenticationOptions {
EnabledSslProtocols = SslProtocols.Tls13 | SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls,
CertificateRevocationCheckMode = X509RevocationMode.NoCheck,
@@ -279,7 +279,7 @@ namespace linker.tunnel.transport
return;
}
sslStream = new SslStream(new NetworkStream(socket, false), false);
sslStream = new SslStream(new NetworkStream(socket, false), false, ValidateServerCertificate);
await sslStream.AuthenticateAsServerAsync(certificate, OperatingSystem.IsAndroid(), SslProtocols.Tls13 | SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls, false).ConfigureAwait(false);
}

View File

@@ -167,7 +167,7 @@ namespace linker.tunnel.transport
SslStream sslStream = null;
if (state.SSL)
{
sslStream = new SslStream(new NetworkStream(socket, false), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), null);
sslStream = new SslStream(new NetworkStream(socket, false), false, ValidateServerCertificate, null);
await sslStream.AuthenticateAsClientAsync(new SslClientAuthenticationOptions
{
EnabledSslProtocols = SslProtocols.Tls13 | SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls,
@@ -223,7 +223,7 @@ namespace linker.tunnel.transport
return null;
}
sslStream = new SslStream(new NetworkStream(socket, false), false);
sslStream = new SslStream(new NetworkStream(socket, false), false, ValidateServerCertificate);
await sslStream.AuthenticateAsServerAsync(certificate, OperatingSystem.IsAndroid(), SslProtocols.Tls13 | SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls, false).ConfigureAwait(false);
}

View File

@@ -261,7 +261,7 @@ namespace linker.tunnel.transport
return null;
}
sslStream = new SslStream(new NetworkStream(socket, false), false);
sslStream = new SslStream(new NetworkStream(socket, false), false, ValidateServerCertificate);
await sslStream.AuthenticateAsServerAsync(certificate, OperatingSystem.IsAndroid(), SslProtocols.Tls13 | SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls, false).ConfigureAwait(false);
}
@@ -335,7 +335,7 @@ namespace linker.tunnel.transport
SslStream sslStream = null;
if (tunnelTransportInfo.SSL)
{
sslStream = new SslStream(new NetworkStream(targetSocket, false), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), null);
sslStream = new SslStream(new NetworkStream(targetSocket, false), false, ValidateServerCertificate, null);
await sslStream.AuthenticateAsClientAsync(new SslClientAuthenticationOptions {
EnabledSslProtocols = SslProtocols.Tls13 | SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls,
CertificateRevocationCheckMode = X509RevocationMode.NoCheck,

View File

@@ -0,0 +1,208 @@
# Details
Date : 2025-08-01 15:19:14
Directory c:\\Users\\snltty\\Desktop\\linker\\src\\linker.web
Total : 193 files, 23974 codes, 38 comments, 1018 blanks, all 25030 lines
[Summary](results.md) / Details / [Diff Summary](diff.md) / [Diff Details](diff-details.md)
## Files
| filename | language | code | comment | blank | total |
| :--- | :--- | ---: | ---: | ---: | ---: |
| [README.md](/README.md) | Markdown | 15 | 0 | 5 | 20 |
| [babel.config.js](/babel.config.js) | JavaScript | 5 | 0 | 1 | 6 |
| [jsconfig.json](/jsconfig.json) | JSON with Comments | 19 | 0 | 1 | 20 |
| [package-lock.json](/package-lock.json) | JSON | 9,999 | 0 | 1 | 10,000 |
| [package.json](/package.json) | JSON | 31 | 0 | 1 | 32 |
| [public/aliyun.svg](/public/aliyun.svg) | XML | 1 | 0 | 0 | 1 |
| [public/alpine.svg](/public/alpine.svg) | XML | 1 | 0 | 0 | 1 |
| [public/amazon.svg](/public/amazon.svg) | XML | 1 | 0 | 0 | 1 |
| [public/android.svg](/public/android.svg) | XML | 1 | 0 | 0 | 1 |
| [public/archlinux.svg](/public/archlinux.svg) | XML | 1 | 0 | 0 | 1 |
| [public/armbian.svg](/public/armbian.svg) | XML | 1 | 0 | 0 | 1 |
| [public/centos.svg](/public/centos.svg) | XML | 1 | 0 | 0 | 1 |
| [public/chinamobile.svg](/public/chinamobile.svg) | XML | 1 | 0 | 0 | 1 |
| [public/chinanet.svg](/public/chinanet.svg) | XML | 1 | 0 | 0 | 1 |
| [public/chinaunicom.svg](/public/chinaunicom.svg) | XML | 1 | 0 | 0 | 1 |
| [public/debian.svg](/public/debian.svg) | XML | 1 | 0 | 0 | 1 |
| [public/docker.svg](/public/docker.svg) | XML | 1 | 0 | 0 | 1 |
| [public/fedora.svg](/public/fedora.svg) | XML | 1 | 0 | 0 | 1 |
| [public/google.svg](/public/google.svg) | XML | 1 | 0 | 0 | 1 |
| [public/huawei.svg](/public/huawei.svg) | XML | 1 | 0 | 0 | 1 |
| [public/index.html](/public/index.html) | HTML | 23 | 1 | 3 | 27 |
| [public/ios.svg](/public/ios.svg) | XML | 1 | 0 | 0 | 1 |
| [public/iphone.svg](/public/iphone.svg) | XML | 1 | 0 | 0 | 1 |
| [public/jdcom.svg](/public/jdcom.svg) | XML | 1 | 0 | 0 | 1 |
| [public/linux.svg](/public/linux.svg) | XML | 1 | 0 | 0 | 1 |
| [public/openwrt.svg](/public/openwrt.svg) | XML | 1 | 0 | 0 | 1 |
| [public/oppo.svg](/public/oppo.svg) | XML | 1 | 0 | 0 | 1 |
| [public/rocky.svg](/public/rocky.svg) | XML | 1 | 0 | 0 | 1 |
| [public/samsung.svg](/public/samsung.svg) | XML | 1 | 0 | 0 | 1 |
| [public/system.svg](/public/system.svg) | XML | 1 | 0 | 0 | 1 |
| [public/ubuntu.svg](/public/ubuntu.svg) | XML | 1 | 0 | 0 | 1 |
| [public/vivo.svg](/public/vivo.svg) | XML | 1 | 0 | 0 | 1 |
| [public/windows.svg](/public/windows.svg) | XML | 1 | 0 | 0 | 1 |
| [public/xiaomi.svg](/public/xiaomi.svg) | XML | 1 | 0 | 0 | 1 |
| [src/App.vue](/src/App.vue) | Vue | 32 | 0 | 6 | 38 |
| [src/apis/access.js](/src/apis/access.js) | JavaScript | 13 | 0 | 1 | 14 |
| [src/apis/action.js](/src/apis/action.js) | JavaScript | 7 | 0 | 2 | 9 |
| [src/apis/cdkey.js](/src/apis/cdkey.js) | JavaScript | 25 | 0 | 1 | 26 |
| [src/apis/config.js](/src/apis/config.js) | JavaScript | 22 | 0 | 2 | 24 |
| [src/apis/firewall.js](/src/apis/firewall.js) | JavaScript | 16 | 0 | 1 | 17 |
| [src/apis/flow.js](/src/apis/flow.js) | JavaScript | 28 | 0 | 1 | 29 |
| [src/apis/forward.js](/src/apis/forward.js) | JavaScript | 28 | 0 | 2 | 30 |
| [src/apis/logger.js](/src/apis/logger.js) | JavaScript | 13 | 0 | 4 | 17 |
| [src/apis/plan.js](/src/apis/plan.js) | JavaScript | 10 | 0 | 2 | 12 |
| [src/apis/relay.js](/src/apis/relay.js) | JavaScript | 31 | 0 | 2 | 33 |
| [src/apis/request.js](/src/apis/request.js) | JavaScript | 158 | 19 | 8 | 185 |
| [src/apis/sforward.js](/src/apis/sforward.js) | JavaScript | 25 | 0 | 3 | 28 |
| [src/apis/signin.js](/src/apis/signin.js) | JavaScript | 37 | 0 | 6 | 43 |
| [src/apis/socks5.js](/src/apis/socks5.js) | JavaScript | 22 | 0 | 3 | 25 |
| [src/apis/sync.js](/src/apis/sync.js) | JavaScript | 7 | 0 | 1 | 8 |
| [src/apis/tunnel.js](/src/apis/tunnel.js) | JavaScript | 28 | 0 | 4 | 32 |
| [src/apis/tuntap.js](/src/apis/tuntap.js) | JavaScript | 46 | 0 | 7 | 53 |
| [src/apis/updater.js](/src/apis/updater.js) | JavaScript | 37 | 0 | 4 | 41 |
| [src/apis/wakeup.js](/src/apis/wakeup.js) | JavaScript | 19 | 0 | 1 | 20 |
| [src/apis/wlist.js](/src/apis/wlist.js) | JavaScript | 10 | 0 | 0 | 10 |
| [src/assets/anquan.svg](/src/assets/anquan.svg) | XML | 1 | 0 | 0 | 1 |
| [src/assets/cell.svg](/src/assets/cell.svg) | XML | 5 | 0 | 0 | 5 |
| [src/assets/coin.svg](/src/assets/coin.svg) | XML | 1 | 0 | 0 | 1 |
| [src/assets/dadong.svg](/src/assets/dadong.svg) | XML | 1 | 0 | 0 | 1 |
| [src/assets/dianchi.svg](/src/assets/dianchi.svg) | XML | 1 | 0 | 0 | 1 |
| [src/assets/fuwuqi.svg](/src/assets/fuwuqi.svg) | XML | 1 | 0 | 0 | 1 |
| [src/assets/group.svg](/src/assets/group.svg) | XML | 1 | 0 | 0 | 1 |
| [src/assets/loading.svg](/src/assets/loading.svg) | XML | 1 | 0 | 0 | 1 |
| [src/assets/login.svg](/src/assets/login.svg) | XML | 1 | 0 | 0 | 1 |
| [src/assets/no-permission.svg](/src/assets/no-permission.svg) | XML | 1 | 0 | 0 | 1 |
| [src/assets/qidong.svg](/src/assets/qidong.svg) | XML | 1 | 0 | 0 | 1 |
| [src/assets/rizhi.svg](/src/assets/rizhi.svg) | XML | 1 | 0 | 0 | 1 |
| [src/assets/run.svg](/src/assets/run.svg) | XML | 1 | 0 | 0 | 1 |
| [src/assets/shouye.svg](/src/assets/shouye.svg) | XML | 1 | 0 | 0 | 1 |
| [src/assets/shuaxin2.svg](/src/assets/shuaxin2.svg) | XML | 1 | 0 | 0 | 1 |
| [src/assets/style.css](/src/assets/style.css) | PostCSS | 393 | 10 | 110 | 513 |
| [src/lang/en-us.js](/src/lang/en-us.js) | JavaScript | 315 | 0 | 29 | 344 |
| [src/lang/index.js](/src/lang/index.js) | JavaScript | 18 | 0 | 1 | 19 |
| [src/lang/provide.js](/src/lang/provide.js) | JavaScript | 19 | 0 | 0 | 19 |
| [src/lang/zh-cn.js](/src/lang/zh-cn.js) | JavaScript | 399 | 0 | 39 | 438 |
| [src/main.js](/src/main.js) | JavaScript | 68 | 0 | 9 | 77 |
| [src/provide.js](/src/provide.js) | JavaScript | 40 | 3 | 4 | 47 |
| [src/router/index.js](/src/router/index.js) | JavaScript | 61 | 0 | 4 | 65 |
| [src/views/Api.vue](/src/views/Api.vue) | Vue | 128 | 0 | 9 | 137 |
| [src/views/NoPermission.vue](/src/views/NoPermission.vue) | Vue | 41 | 0 | 5 | 46 |
| [src/views/Refresh.vue](/src/views/Refresh.vue) | Vue | 71 | 0 | 8 | 79 |
| [src/views/components/accesss/Access.vue](/src/views/components/accesss/Access.vue) | Vue | 106 | 0 | 5 | 111 |
| [src/views/components/accesss/AccessEdit.vue](/src/views/components/accesss/AccessEdit.vue) | Vue | 60 | 0 | 3 | 63 |
| [src/views/components/accesss/AccessNum.vue](/src/views/components/accesss/AccessNum.vue) | Vue | 29 | 0 | 5 | 34 |
| [src/views/components/accesss/access.js](/src/views/components/accesss/access.js) | JavaScript | 35 | 0 | 3 | 38 |
| [src/views/components/action/Action.vue](/src/views/components/action/Action.vue) | Vue | 72 | 0 | 1 | 73 |
| [src/views/components/cdkey/Add.vue](/src/views/components/cdkey/Add.vue) | Vue | 136 | 0 | 3 | 139 |
| [src/views/components/cdkey/Flags.vue](/src/views/components/cdkey/Flags.vue) | Vue | 43 | 0 | 7 | 50 |
| [src/views/components/cdkey/Index.vue](/src/views/components/cdkey/Index.vue) | Vue | 29 | 0 | 5 | 34 |
| [src/views/components/cdkey/Manager.vue](/src/views/components/cdkey/Manager.vue) | Vue | 183 | 0 | 5 | 188 |
| [src/views/components/cdkey/My.vue](/src/views/components/cdkey/My.vue) | Vue | 193 | 0 | 6 | 199 |
| [src/views/components/cdkey/Test.vue](/src/views/components/cdkey/Test.vue) | Vue | 198 | 0 | 3 | 201 |
| [src/views/components/connection/ConnectionShow.vue](/src/views/components/connection/ConnectionShow.vue) | Vue | 86 | 0 | 9 | 95 |
| [src/views/components/connection/ConnectionsEdit.vue](/src/views/components/connection/ConnectionsEdit.vue) | Vue | 281 | 0 | 13 | 294 |
| [src/views/components/connection/connections.js](/src/views/components/connection/connections.js) | JavaScript | 133 | 0 | 16 | 149 |
| [src/views/components/device/Device.vue](/src/views/components/device/Device.vue) | Vue | 75 | 0 | 7 | 82 |
| [src/views/components/device/DeviceEdit.vue](/src/views/components/device/DeviceEdit.vue) | Vue | 66 | 0 | 3 | 69 |
| [src/views/components/device/DeviceName.vue](/src/views/components/device/DeviceName.vue) | Vue | 67 | 0 | 8 | 75 |
| [src/views/components/device/devices.js](/src/views/components/device/devices.js) | JavaScript | 111 | 1 | 5 | 117 |
| [src/views/components/firewall/Add.vue](/src/views/components/firewall/Add.vue) | Vue | 210 | 0 | 11 | 221 |
| [src/views/components/firewall/Firewall.vue](/src/views/components/firewall/Firewall.vue) | Vue | 290 | 0 | 15 | 305 |
| [src/views/components/flow/Index.vue](/src/views/components/flow/Index.vue) | Vue | 184 | 0 | 17 | 201 |
| [src/views/components/flow/OnlineAllMap.vue](/src/views/components/flow/OnlineAllMap.vue) | Vue | 75 | 0 | 9 | 84 |
| [src/views/components/flow/OnlineMap.vue](/src/views/components/flow/OnlineMap.vue) | Vue | 87 | 0 | 9 | 96 |
| [src/views/components/flow/ServerFlowForward.vue](/src/views/components/flow/ServerFlowForward.vue) | Vue | 136 | 0 | 10 | 146 |
| [src/views/components/flow/ServerFlowMessenger.vue](/src/views/components/flow/ServerFlowMessenger.vue) | Vue | 111 | 0 | 12 | 123 |
| [src/views/components/flow/ServerFlowRelay.vue](/src/views/components/flow/ServerFlowRelay.vue) | Vue | 141 | 0 | 10 | 151 |
| [src/views/components/flow/ServerFlowSForward.vue](/src/views/components/flow/ServerFlowSForward.vue) | Vue | 141 | 0 | 10 | 151 |
| [src/views/components/flow/flow.js](/src/views/components/flow/flow.js) | JavaScript | 19 | 0 | 1 | 20 |
| [src/views/components/forward/Config.vue](/src/views/components/forward/Config.vue) | Vue | 38 | 0 | 3 | 41 |
| [src/views/components/forward/Forward.vue](/src/views/components/forward/Forward.vue) | Vue | 105 | 0 | 4 | 109 |
| [src/views/components/forward/ForwardEdit.vue](/src/views/components/forward/ForwardEdit.vue) | Vue | 318 | 0 | 13 | 331 |
| [src/views/components/forward/SForwardEdit.vue](/src/views/components/forward/SForwardEdit.vue) | Vue | 276 | 0 | 10 | 286 |
| [src/views/components/forward/forward.js](/src/views/components/forward/forward.js) | JavaScript | 45 | 0 | 2 | 47 |
| [src/views/components/forward/sforward.js](/src/views/components/forward/sforward.js) | JavaScript | 49 | 0 | 4 | 53 |
| [src/views/components/groups/Groups.vue](/src/views/components/groups/Groups.vue) | Vue | 157 | 3 | 5 | 165 |
| [src/views/components/groups/Index.vue](/src/views/components/groups/Index.vue) | Vue | 84 | 0 | 3 | 87 |
| [src/views/components/oper/Oper.vue](/src/views/components/oper/Oper.vue) | Vue | 187 | 0 | 28 | 215 |
| [src/views/components/oper/OperAction.vue](/src/views/components/oper/OperAction.vue) | Vue | 40 | 0 | 1 | 41 |
| [src/views/components/oper/OperFirewall.vue](/src/views/components/oper/OperFirewall.vue) | Vue | 40 | 0 | 2 | 42 |
| [src/views/components/oper/OperFlow.vue](/src/views/components/oper/OperFlow.vue) | Vue | 33 | 0 | 1 | 34 |
| [src/views/components/oper/OperRoutes.vue](/src/views/components/oper/OperRoutes.vue) | Vue | 63 | 0 | 4 | 67 |
| [src/views/components/oper/OperTransport.vue](/src/views/components/oper/OperTransport.vue) | Vue | 40 | 0 | 2 | 42 |
| [src/views/components/oper/OperWakeup.vue](/src/views/components/oper/OperWakeup.vue) | Vue | 40 | 0 | 2 | 42 |
| [src/views/components/oper/oper.js](/src/views/components/oper/oper.js) | JavaScript | 19 | 0 | 1 | 20 |
| [src/views/components/plan/PlanEdit.vue](/src/views/components/plan/PlanEdit.vue) | Vue | 277 | 0 | 9 | 286 |
| [src/views/components/plan/PlanList.vue](/src/views/components/plan/PlanList.vue) | Vue | 66 | 0 | 5 | 71 |
| [src/views/components/plan/PlanShow.vue](/src/views/components/plan/PlanShow.vue) | Vue | 90 | 0 | 7 | 97 |
| [src/views/components/relay/Config.vue](/src/views/components/relay/Config.vue) | Vue | 86 | 0 | 4 | 90 |
| [src/views/components/relay/EditNode.vue](/src/views/components/relay/EditNode.vue) | Vue | 114 | 0 | 4 | 118 |
| [src/views/components/relay/Nodes.vue](/src/views/components/relay/Nodes.vue) | Vue | 221 | 0 | 6 | 227 |
| [src/views/components/socks5/Socks5.vue](/src/views/components/socks5/Socks5.vue) | Vue | 32 | 0 | 4 | 36 |
| [src/views/components/socks5/Socks5Edit.vue](/src/views/components/socks5/Socks5Edit.vue) | Vue | 87 | 0 | 3 | 90 |
| [src/views/components/socks5/Socks5Lan.vue](/src/views/components/socks5/Socks5Lan.vue) | Vue | 146 | 0 | 5 | 151 |
| [src/views/components/socks5/Socks5Show.vue](/src/views/components/socks5/Socks5Show.vue) | Vue | 138 | 0 | 9 | 147 |
| [src/views/components/socks5/socks5.js](/src/views/components/socks5/socks5.js) | JavaScript | 58 | 0 | 6 | 64 |
| [src/views/components/status/Api.vue](/src/views/components/status/Api.vue) | Vue | 53 | 0 | 1 | 54 |
| [src/views/components/status/Export.vue](/src/views/components/status/Export.vue) | Vue | 264 | 0 | 17 | 281 |
| [src/views/components/status/Index.vue](/src/views/components/status/Index.vue) | Vue | 70 | 1 | 6 | 77 |
| [src/views/components/status/server/Flow.vue](/src/views/components/status/server/Flow.vue) | Vue | 43 | 0 | 3 | 46 |
| [src/views/components/status/server/Index.vue](/src/views/components/status/server/Index.vue) | Vue | 40 | 0 | 4 | 44 |
| [src/views/components/status/server/Version.vue](/src/views/components/status/server/Version.vue) | Vue | 151 | 0 | 11 | 162 |
| [src/views/components/stopwatch/Stopwatch.vue](/src/views/components/stopwatch/Stopwatch.vue) | Vue | 73 | 0 | 6 | 79 |
| [src/views/components/sync/Ids.vue](/src/views/components/sync/Ids.vue) | Vue | 54 | 0 | 4 | 58 |
| [src/views/components/sync/Index.vue](/src/views/components/sync/Index.vue) | Vue | 92 | 0 | 3 | 95 |
| [src/views/components/transport/Transport.vue](/src/views/components/transport/Transport.vue) | Vue | 93 | 0 | 3 | 96 |
| [src/views/components/tunnel/Tunnel.vue](/src/views/components/tunnel/Tunnel.vue) | Vue | 153 | 0 | 14 | 167 |
| [src/views/components/tunnel/TunnelEdit.vue](/src/views/components/tunnel/TunnelEdit.vue) | Vue | 124 | 0 | 6 | 130 |
| [src/views/components/tunnel/tunnel.js](/src/views/components/tunnel/tunnel.js) | JavaScript | 74 | 0 | 4 | 78 |
| [src/views/components/tuntap/Tuntap.vue](/src/views/components/tuntap/Tuntap.vue) | Vue | 30 | 0 | 3 | 33 |
| [src/views/components/tuntap/TuntapEdit.vue](/src/views/components/tuntap/TuntapEdit.vue) | Vue | 79 | 0 | 5 | 84 |
| [src/views/components/tuntap/TuntapForward.vue](/src/views/components/tuntap/TuntapForward.vue) | Vue | 191 | 0 | 10 | 201 |
| [src/views/components/tuntap/TuntapIP.vue](/src/views/components/tuntap/TuntapIP.vue) | Vue | 114 | 0 | 7 | 121 |
| [src/views/components/tuntap/TuntapLan.vue](/src/views/components/tuntap/TuntapLan.vue) | Vue | 149 | 0 | 5 | 154 |
| [src/views/components/tuntap/TuntapLease.vue](/src/views/components/tuntap/TuntapLease.vue) | Vue | 134 | 0 | 6 | 140 |
| [src/views/components/tuntap/TuntapShow.vue](/src/views/components/tuntap/TuntapShow.vue) | Vue | 177 | 0 | 12 | 189 |
| [src/views/components/tuntap/tuntap.js](/src/views/components/tuntap/tuntap.js) | JavaScript | 77 | 0 | 11 | 88 |
| [src/views/components/updater/Config.vue](/src/views/components/updater/Config.vue) | Vue | 37 | 0 | 2 | 39 |
| [src/views/components/updater/UpdaterBtn.vue](/src/views/components/updater/UpdaterBtn.vue) | Vue | 154 | 0 | 8 | 162 |
| [src/views/components/updater/UpdaterConfirm.vue](/src/views/components/updater/UpdaterConfirm.vue) | Vue | 98 | 0 | 9 | 107 |
| [src/views/components/updater/updater.js](/src/views/components/updater/updater.js) | JavaScript | 56 | 0 | 7 | 63 |
| [src/views/components/wakeup/Add.vue](/src/views/components/wakeup/Add.vue) | Vue | 216 | 0 | 6 | 222 |
| [src/views/components/wakeup/Wakeup.vue](/src/views/components/wakeup/Wakeup.vue) | Vue | 210 | 0 | 9 | 219 |
| [src/views/components/wlist/Add.vue](/src/views/components/wlist/Add.vue) | Vue | 146 | 0 | 10 | 156 |
| [src/views/components/wlist/Index.vue](/src/views/components/wlist/Index.vue) | Vue | 21 | 0 | 4 | 25 |
| [src/views/components/wlist/Manager.vue](/src/views/components/wlist/Manager.vue) | Vue | 145 | 0 | 7 | 152 |
| [src/views/layout/full/Index.vue](/src/views/layout/full/Index.vue) | Vue | 84 | 0 | 4 | 88 |
| [src/views/layout/full/action/Index.vue](/src/views/layout/full/action/Index.vue) | Vue | 25 | 0 | 0 | 25 |
| [src/views/layout/full/config/Config.vue](/src/views/layout/full/config/Config.vue) | Vue | 94 | 0 | 4 | 98 |
| [src/views/layout/full/config/Index.vue](/src/views/layout/full/config/Index.vue) | Vue | 29 | 0 | 0 | 29 |
| [src/views/layout/full/firewall/Index.vue](/src/views/layout/full/firewall/Index.vue) | Vue | 35 | 0 | 3 | 38 |
| [src/views/layout/full/head/Background.vue](/src/views/layout/full/head/Background.vue) | Vue | 80 | 0 | 6 | 86 |
| [src/views/layout/full/head/Index.vue](/src/views/layout/full/head/Index.vue) | Vue | 105 | 0 | 15 | 120 |
| [src/views/layout/full/head/Locale.vue](/src/views/layout/full/head/Locale.vue) | Vue | 58 | 0 | 5 | 63 |
| [src/views/layout/full/head/Menu.vue](/src/views/layout/full/head/Menu.vue) | Vue | 151 | 0 | 7 | 158 |
| [src/views/layout/full/head/Theme.vue](/src/views/layout/full/head/Theme.vue) | Vue | 45 | 0 | 5 | 50 |
| [src/views/layout/full/install/Client.vue](/src/views/layout/full/install/Client.vue) | Vue | 168 | 0 | 7 | 175 |
| [src/views/layout/full/install/Common.vue](/src/views/layout/full/install/Common.vue) | Vue | 51 | 0 | 6 | 57 |
| [src/views/layout/full/install/Copy.vue](/src/views/layout/full/install/Copy.vue) | Vue | 38 | 0 | 4 | 42 |
| [src/views/layout/full/install/Index.vue](/src/views/layout/full/install/Index.vue) | Vue | 38 | 0 | 3 | 41 |
| [src/views/layout/full/install/Input.vue](/src/views/layout/full/install/Input.vue) | Vue | 87 | 0 | 3 | 90 |
| [src/views/layout/full/install/Save.vue](/src/views/layout/full/install/Save.vue) | Vue | 57 | 0 | 4 | 61 |
| [src/views/layout/full/install/Server.vue](/src/views/layout/full/install/Server.vue) | Vue | 178 | 0 | 7 | 185 |
| [src/views/layout/full/list/Index.vue](/src/views/layout/full/list/Index.vue) | Vue | 230 | 0 | 29 | 259 |
| [src/views/layout/full/list/Sort.vue](/src/views/layout/full/list/Sort.vue) | Vue | 68 | 0 | 7 | 75 |
| [src/views/layout/full/logger/Index.vue](/src/views/layout/full/logger/Index.vue) | Vue | 163 | 0 | 14 | 177 |
| [src/views/layout/full/logger/Setting.vue](/src/views/layout/full/logger/Setting.vue) | Vue | 127 | 0 | 8 | 135 |
| [src/views/layout/full/transport/Index.vue](/src/views/layout/full/transport/Index.vue) | Vue | 27 | 0 | 0 | 27 |
| [src/views/layout/full/wakeup/Index.vue](/src/views/layout/full/wakeup/Index.vue) | Vue | 35 | 0 | 2 | 37 |
| [src/views/layout/net/Head.vue](/src/views/layout/net/Head.vue) | Vue | 75 | 0 | 7 | 82 |
| [src/views/layout/net/Index.vue](/src/views/layout/net/Index.vue) | Vue | 51 | 0 | 5 | 56 |
| [src/views/layout/net/List.vue](/src/views/layout/net/List.vue) | Vue | 95 | 0 | 10 | 105 |
| [vue.config.js](/vue.config.js) | JavaScript | 10 | 0 | 1 | 11 |
[Summary](results.md) / Details / [Diff Summary](diff.md) / [Diff Details](diff-details.md)

View File

@@ -0,0 +1,15 @@
# Diff Details
Date : 2025-08-01 15:19:14
Directory c:\\Users\\snltty\\Desktop\\linker\\src\\linker.web
Total : 0 files, 0 codes, 0 comments, 0 blanks, all 0 lines
[Summary](results.md) / [Details](details.md) / [Diff Summary](diff.md) / Diff Details
## Files
| filename | language | code | comment | blank | total |
| :--- | :--- | ---: | ---: | ---: | ---: |
[Summary](results.md) / [Details](details.md) / [Diff Summary](diff.md) / Diff Details

View File

@@ -0,0 +1,2 @@
"filename", "language", "", "comment", "blank", "total"
"Total", "-", , 0, 0, 0
1 filename language comment blank total
2 Total - 0 0 0

View File

@@ -0,0 +1,19 @@
# Diff Summary
Date : 2025-08-01 15:19:14
Directory c:\\Users\\snltty\\Desktop\\linker\\src\\linker.web
Total : 0 files, 0 codes, 0 comments, 0 blanks, all 0 lines
[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md)
## Languages
| language | files | code | comment | blank | total |
| :--- | ---: | ---: | ---: | ---: | ---: |
## Directories
| path | files | code | comment | blank | total |
| :--- | ---: | ---: | ---: | ---: | ---: |
[Summary](results.md) / [Details](details.md) / Diff Summary / [Diff Details](diff-details.md)

View File

@@ -0,0 +1,22 @@
Date : 2025-08-01 15:19:14
Directory : c:\Users\snltty\Desktop\linker\src\linker.web
Total : 0 files, 0 codes, 0 comments, 0 blanks, all 0 lines
Languages
+----------+------------+------------+------------+------------+------------+
| language | files | code | comment | blank | total |
+----------+------------+------------+------------+------------+------------+
+----------+------------+------------+------------+------------+------------+
Directories
+------+------------+------------+------------+------------+------------+
| path | files | code | comment | blank | total |
+------+------------+------------+------------+------------+------------+
+------+------------+------------+------------+------------+------------+
Files
+----------+----------+------------+------------+------------+------------+
| filename | language | code | comment | blank | total |
+----------+----------+------------+------------+------------+------------+
| Total | | 0 | 0 | 0 | 0 |
+----------+----------+------------+------------+------------+------------+

View File

@@ -0,0 +1,195 @@
"filename", "language", "JavaScript", "Markdown", "JSON", "XML", "Vue", "HTML", "JSON with Comments", "PostCSS", "comment", "blank", "total"
"c:\Users\snltty\Desktop\linker\src\linker.web\README.md", "Markdown", 0, 15, 0, 0, 0, 0, 0, 0, 0, 5, 20
"c:\Users\snltty\Desktop\linker\src\linker.web\babel.config.js", "JavaScript", 5, 0, 0, 0, 0, 0, 0, 0, 0, 1, 6
"c:\Users\snltty\Desktop\linker\src\linker.web\jsconfig.json", "JSON with Comments", 0, 0, 0, 0, 0, 0, 19, 0, 0, 1, 20
"c:\Users\snltty\Desktop\linker\src\linker.web\package-lock.json", "JSON", 0, 0, 9999, 0, 0, 0, 0, 0, 0, 1, 10000
"c:\Users\snltty\Desktop\linker\src\linker.web\package.json", "JSON", 0, 0, 31, 0, 0, 0, 0, 0, 0, 1, 32
"c:\Users\snltty\Desktop\linker\src\linker.web\public\aliyun.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\alpine.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\amazon.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\android.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\archlinux.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\armbian.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\centos.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\chinamobile.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\chinanet.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\chinaunicom.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\debian.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\docker.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\fedora.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\google.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\huawei.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\index.html", "HTML", 0, 0, 0, 0, 0, 23, 0, 0, 1, 3, 27
"c:\Users\snltty\Desktop\linker\src\linker.web\public\ios.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\iphone.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\jdcom.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\linux.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\openwrt.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\oppo.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\rocky.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\samsung.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\system.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\ubuntu.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\vivo.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\windows.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\public\xiaomi.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\src\App.vue", "Vue", 0, 0, 0, 0, 32, 0, 0, 0, 0, 6, 38
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\access.js", "JavaScript", 13, 0, 0, 0, 0, 0, 0, 0, 0, 1, 14
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\action.js", "JavaScript", 7, 0, 0, 0, 0, 0, 0, 0, 0, 2, 9
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\cdkey.js", "JavaScript", 25, 0, 0, 0, 0, 0, 0, 0, 0, 1, 26
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\config.js", "JavaScript", 22, 0, 0, 0, 0, 0, 0, 0, 0, 2, 24
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\firewall.js", "JavaScript", 16, 0, 0, 0, 0, 0, 0, 0, 0, 1, 17
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\flow.js", "JavaScript", 28, 0, 0, 0, 0, 0, 0, 0, 0, 1, 29
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\forward.js", "JavaScript", 28, 0, 0, 0, 0, 0, 0, 0, 0, 2, 30
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\logger.js", "JavaScript", 13, 0, 0, 0, 0, 0, 0, 0, 0, 4, 17
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\plan.js", "JavaScript", 10, 0, 0, 0, 0, 0, 0, 0, 0, 2, 12
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\relay.js", "JavaScript", 31, 0, 0, 0, 0, 0, 0, 0, 0, 2, 33
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\request.js", "JavaScript", 158, 0, 0, 0, 0, 0, 0, 0, 19, 8, 185
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\sforward.js", "JavaScript", 25, 0, 0, 0, 0, 0, 0, 0, 0, 3, 28
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\signin.js", "JavaScript", 37, 0, 0, 0, 0, 0, 0, 0, 0, 6, 43
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\socks5.js", "JavaScript", 22, 0, 0, 0, 0, 0, 0, 0, 0, 3, 25
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\sync.js", "JavaScript", 7, 0, 0, 0, 0, 0, 0, 0, 0, 1, 8
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\tunnel.js", "JavaScript", 28, 0, 0, 0, 0, 0, 0, 0, 0, 4, 32
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\tuntap.js", "JavaScript", 46, 0, 0, 0, 0, 0, 0, 0, 0, 7, 53
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\updater.js", "JavaScript", 37, 0, 0, 0, 0, 0, 0, 0, 0, 4, 41
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\wakeup.js", "JavaScript", 19, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20
"c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\wlist.js", "JavaScript", 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10
"c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\anquan.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\cell.svg", "XML", 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 5
"c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\coin.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\dadong.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\dianchi.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\fuwuqi.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\group.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\loading.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\login.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\no-permission.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\qidong.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\rizhi.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\run.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\shouye.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\shuaxin2.svg", "XML", 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1
"c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\style.css", "PostCSS", 0, 0, 0, 0, 0, 0, 0, 393, 10, 110, 513
"c:\Users\snltty\Desktop\linker\src\linker.web\src\lang\en-us.js", "JavaScript", 315, 0, 0, 0, 0, 0, 0, 0, 0, 29, 344
"c:\Users\snltty\Desktop\linker\src\linker.web\src\lang\index.js", "JavaScript", 18, 0, 0, 0, 0, 0, 0, 0, 0, 1, 19
"c:\Users\snltty\Desktop\linker\src\linker.web\src\lang\provide.js", "JavaScript", 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19
"c:\Users\snltty\Desktop\linker\src\linker.web\src\lang\zh-cn.js", "JavaScript", 399, 0, 0, 0, 0, 0, 0, 0, 0, 39, 438
"c:\Users\snltty\Desktop\linker\src\linker.web\src\main.js", "JavaScript", 68, 0, 0, 0, 0, 0, 0, 0, 0, 9, 77
"c:\Users\snltty\Desktop\linker\src\linker.web\src\provide.js", "JavaScript", 40, 0, 0, 0, 0, 0, 0, 0, 3, 4, 47
"c:\Users\snltty\Desktop\linker\src\linker.web\src\router\index.js", "JavaScript", 61, 0, 0, 0, 0, 0, 0, 0, 0, 4, 65
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\Api.vue", "Vue", 0, 0, 0, 0, 128, 0, 0, 0, 0, 9, 137
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\NoPermission.vue", "Vue", 0, 0, 0, 0, 41, 0, 0, 0, 0, 5, 46
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\Refresh.vue", "Vue", 0, 0, 0, 0, 71, 0, 0, 0, 0, 8, 79
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\accesss\Access.vue", "Vue", 0, 0, 0, 0, 106, 0, 0, 0, 0, 5, 111
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\accesss\AccessEdit.vue", "Vue", 0, 0, 0, 0, 60, 0, 0, 0, 0, 3, 63
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\accesss\AccessNum.vue", "Vue", 0, 0, 0, 0, 29, 0, 0, 0, 0, 5, 34
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\accesss\access.js", "JavaScript", 35, 0, 0, 0, 0, 0, 0, 0, 0, 3, 38
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\action\Action.vue", "Vue", 0, 0, 0, 0, 72, 0, 0, 0, 0, 1, 73
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\cdkey\Add.vue", "Vue", 0, 0, 0, 0, 136, 0, 0, 0, 0, 3, 139
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\cdkey\Flags.vue", "Vue", 0, 0, 0, 0, 43, 0, 0, 0, 0, 7, 50
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\cdkey\Index.vue", "Vue", 0, 0, 0, 0, 29, 0, 0, 0, 0, 5, 34
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\cdkey\Manager.vue", "Vue", 0, 0, 0, 0, 183, 0, 0, 0, 0, 5, 188
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\cdkey\My.vue", "Vue", 0, 0, 0, 0, 193, 0, 0, 0, 0, 6, 199
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\cdkey\Test.vue", "Vue", 0, 0, 0, 0, 198, 0, 0, 0, 0, 3, 201
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\connection\ConnectionShow.vue", "Vue", 0, 0, 0, 0, 86, 0, 0, 0, 0, 9, 95
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\connection\ConnectionsEdit.vue", "Vue", 0, 0, 0, 0, 281, 0, 0, 0, 0, 13, 294
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\connection\connections.js", "JavaScript", 133, 0, 0, 0, 0, 0, 0, 0, 0, 16, 149
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\device\Device.vue", "Vue", 0, 0, 0, 0, 75, 0, 0, 0, 0, 7, 82
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\device\DeviceEdit.vue", "Vue", 0, 0, 0, 0, 66, 0, 0, 0, 0, 3, 69
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\device\DeviceName.vue", "Vue", 0, 0, 0, 0, 67, 0, 0, 0, 0, 8, 75
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\device\devices.js", "JavaScript", 111, 0, 0, 0, 0, 0, 0, 0, 1, 5, 117
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\firewall\Add.vue", "Vue", 0, 0, 0, 0, 210, 0, 0, 0, 0, 11, 221
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\firewall\Firewall.vue", "Vue", 0, 0, 0, 0, 290, 0, 0, 0, 0, 15, 305
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\Index.vue", "Vue", 0, 0, 0, 0, 184, 0, 0, 0, 0, 17, 201
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\OnlineAllMap.vue", "Vue", 0, 0, 0, 0, 75, 0, 0, 0, 0, 9, 84
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\OnlineMap.vue", "Vue", 0, 0, 0, 0, 87, 0, 0, 0, 0, 9, 96
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\ServerFlowForward.vue", "Vue", 0, 0, 0, 0, 136, 0, 0, 0, 0, 10, 146
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\ServerFlowMessenger.vue", "Vue", 0, 0, 0, 0, 111, 0, 0, 0, 0, 12, 123
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\ServerFlowRelay.vue", "Vue", 0, 0, 0, 0, 141, 0, 0, 0, 0, 10, 151
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\ServerFlowSForward.vue", "Vue", 0, 0, 0, 0, 141, 0, 0, 0, 0, 10, 151
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\flow.js", "JavaScript", 19, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\forward\Config.vue", "Vue", 0, 0, 0, 0, 38, 0, 0, 0, 0, 3, 41
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\forward\Forward.vue", "Vue", 0, 0, 0, 0, 105, 0, 0, 0, 0, 4, 109
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\forward\ForwardEdit.vue", "Vue", 0, 0, 0, 0, 318, 0, 0, 0, 0, 13, 331
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\forward\SForwardEdit.vue", "Vue", 0, 0, 0, 0, 276, 0, 0, 0, 0, 10, 286
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\forward\forward.js", "JavaScript", 45, 0, 0, 0, 0, 0, 0, 0, 0, 2, 47
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\forward\sforward.js", "JavaScript", 49, 0, 0, 0, 0, 0, 0, 0, 0, 4, 53
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\groups\Groups.vue", "Vue", 0, 0, 0, 0, 157, 0, 0, 0, 3, 5, 165
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\groups\Index.vue", "Vue", 0, 0, 0, 0, 84, 0, 0, 0, 0, 3, 87
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\Oper.vue", "Vue", 0, 0, 0, 0, 187, 0, 0, 0, 0, 28, 215
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\OperAction.vue", "Vue", 0, 0, 0, 0, 40, 0, 0, 0, 0, 1, 41
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\OperFirewall.vue", "Vue", 0, 0, 0, 0, 40, 0, 0, 0, 0, 2, 42
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\OperFlow.vue", "Vue", 0, 0, 0, 0, 33, 0, 0, 0, 0, 1, 34
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\OperRoutes.vue", "Vue", 0, 0, 0, 0, 63, 0, 0, 0, 0, 4, 67
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\OperTransport.vue", "Vue", 0, 0, 0, 0, 40, 0, 0, 0, 0, 2, 42
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\OperWakeup.vue", "Vue", 0, 0, 0, 0, 40, 0, 0, 0, 0, 2, 42
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\oper.js", "JavaScript", 19, 0, 0, 0, 0, 0, 0, 0, 0, 1, 20
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\plan\PlanEdit.vue", "Vue", 0, 0, 0, 0, 277, 0, 0, 0, 0, 9, 286
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\plan\PlanList.vue", "Vue", 0, 0, 0, 0, 66, 0, 0, 0, 0, 5, 71
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\plan\PlanShow.vue", "Vue", 0, 0, 0, 0, 90, 0, 0, 0, 0, 7, 97
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\relay\Config.vue", "Vue", 0, 0, 0, 0, 86, 0, 0, 0, 0, 4, 90
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\relay\EditNode.vue", "Vue", 0, 0, 0, 0, 114, 0, 0, 0, 0, 4, 118
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\relay\Nodes.vue", "Vue", 0, 0, 0, 0, 221, 0, 0, 0, 0, 6, 227
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\socks5\Socks5.vue", "Vue", 0, 0, 0, 0, 32, 0, 0, 0, 0, 4, 36
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\socks5\Socks5Edit.vue", "Vue", 0, 0, 0, 0, 87, 0, 0, 0, 0, 3, 90
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\socks5\Socks5Lan.vue", "Vue", 0, 0, 0, 0, 146, 0, 0, 0, 0, 5, 151
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\socks5\Socks5Show.vue", "Vue", 0, 0, 0, 0, 138, 0, 0, 0, 0, 9, 147
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\socks5\socks5.js", "JavaScript", 58, 0, 0, 0, 0, 0, 0, 0, 0, 6, 64
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\status\Api.vue", "Vue", 0, 0, 0, 0, 53, 0, 0, 0, 0, 1, 54
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\status\Export.vue", "Vue", 0, 0, 0, 0, 264, 0, 0, 0, 0, 17, 281
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\status\Index.vue", "Vue", 0, 0, 0, 0, 70, 0, 0, 0, 1, 6, 77
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\status\server\Flow.vue", "Vue", 0, 0, 0, 0, 43, 0, 0, 0, 0, 3, 46
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\status\server\Index.vue", "Vue", 0, 0, 0, 0, 40, 0, 0, 0, 0, 4, 44
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\status\server\Version.vue", "Vue", 0, 0, 0, 0, 151, 0, 0, 0, 0, 11, 162
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\stopwatch\Stopwatch.vue", "Vue", 0, 0, 0, 0, 73, 0, 0, 0, 0, 6, 79
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\sync\Ids.vue", "Vue", 0, 0, 0, 0, 54, 0, 0, 0, 0, 4, 58
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\sync\Index.vue", "Vue", 0, 0, 0, 0, 92, 0, 0, 0, 0, 3, 95
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\transport\Transport.vue", "Vue", 0, 0, 0, 0, 93, 0, 0, 0, 0, 3, 96
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tunnel\Tunnel.vue", "Vue", 0, 0, 0, 0, 153, 0, 0, 0, 0, 14, 167
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tunnel\TunnelEdit.vue", "Vue", 0, 0, 0, 0, 124, 0, 0, 0, 0, 6, 130
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tunnel\tunnel.js", "JavaScript", 74, 0, 0, 0, 0, 0, 0, 0, 0, 4, 78
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\Tuntap.vue", "Vue", 0, 0, 0, 0, 30, 0, 0, 0, 0, 3, 33
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\TuntapEdit.vue", "Vue", 0, 0, 0, 0, 79, 0, 0, 0, 0, 5, 84
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\TuntapForward.vue", "Vue", 0, 0, 0, 0, 191, 0, 0, 0, 0, 10, 201
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\TuntapIP.vue", "Vue", 0, 0, 0, 0, 114, 0, 0, 0, 0, 7, 121
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\TuntapLan.vue", "Vue", 0, 0, 0, 0, 149, 0, 0, 0, 0, 5, 154
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\TuntapLease.vue", "Vue", 0, 0, 0, 0, 134, 0, 0, 0, 0, 6, 140
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\TuntapShow.vue", "Vue", 0, 0, 0, 0, 177, 0, 0, 0, 0, 12, 189
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\tuntap.js", "JavaScript", 77, 0, 0, 0, 0, 0, 0, 0, 0, 11, 88
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\updater\Config.vue", "Vue", 0, 0, 0, 0, 37, 0, 0, 0, 0, 2, 39
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\updater\UpdaterBtn.vue", "Vue", 0, 0, 0, 0, 154, 0, 0, 0, 0, 8, 162
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\updater\UpdaterConfirm.vue", "Vue", 0, 0, 0, 0, 98, 0, 0, 0, 0, 9, 107
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\updater\updater.js", "JavaScript", 56, 0, 0, 0, 0, 0, 0, 0, 0, 7, 63
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\wakeup\Add.vue", "Vue", 0, 0, 0, 0, 216, 0, 0, 0, 0, 6, 222
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\wakeup\Wakeup.vue", "Vue", 0, 0, 0, 0, 210, 0, 0, 0, 0, 9, 219
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\wlist\Add.vue", "Vue", 0, 0, 0, 0, 146, 0, 0, 0, 0, 10, 156
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\wlist\Index.vue", "Vue", 0, 0, 0, 0, 21, 0, 0, 0, 0, 4, 25
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\wlist\Manager.vue", "Vue", 0, 0, 0, 0, 145, 0, 0, 0, 0, 7, 152
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\Index.vue", "Vue", 0, 0, 0, 0, 84, 0, 0, 0, 0, 4, 88
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\action\Index.vue", "Vue", 0, 0, 0, 0, 25, 0, 0, 0, 0, 0, 25
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\config\Config.vue", "Vue", 0, 0, 0, 0, 94, 0, 0, 0, 0, 4, 98
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\config\Index.vue", "Vue", 0, 0, 0, 0, 29, 0, 0, 0, 0, 0, 29
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\firewall\Index.vue", "Vue", 0, 0, 0, 0, 35, 0, 0, 0, 0, 3, 38
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\head\Background.vue", "Vue", 0, 0, 0, 0, 80, 0, 0, 0, 0, 6, 86
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\head\Index.vue", "Vue", 0, 0, 0, 0, 105, 0, 0, 0, 0, 15, 120
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\head\Locale.vue", "Vue", 0, 0, 0, 0, 58, 0, 0, 0, 0, 5, 63
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\head\Menu.vue", "Vue", 0, 0, 0, 0, 151, 0, 0, 0, 0, 7, 158
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\head\Theme.vue", "Vue", 0, 0, 0, 0, 45, 0, 0, 0, 0, 5, 50
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Client.vue", "Vue", 0, 0, 0, 0, 168, 0, 0, 0, 0, 7, 175
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Common.vue", "Vue", 0, 0, 0, 0, 51, 0, 0, 0, 0, 6, 57
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Copy.vue", "Vue", 0, 0, 0, 0, 38, 0, 0, 0, 0, 4, 42
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Index.vue", "Vue", 0, 0, 0, 0, 38, 0, 0, 0, 0, 3, 41
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Input.vue", "Vue", 0, 0, 0, 0, 87, 0, 0, 0, 0, 3, 90
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Save.vue", "Vue", 0, 0, 0, 0, 57, 0, 0, 0, 0, 4, 61
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Server.vue", "Vue", 0, 0, 0, 0, 178, 0, 0, 0, 0, 7, 185
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\list\Index.vue", "Vue", 0, 0, 0, 0, 230, 0, 0, 0, 0, 29, 259
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\list\Sort.vue", "Vue", 0, 0, 0, 0, 68, 0, 0, 0, 0, 7, 75
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\logger\Index.vue", "Vue", 0, 0, 0, 0, 163, 0, 0, 0, 0, 14, 177
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\logger\Setting.vue", "Vue", 0, 0, 0, 0, 127, 0, 0, 0, 0, 8, 135
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\transport\Index.vue", "Vue", 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 27
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\wakeup\Index.vue", "Vue", 0, 0, 0, 0, 35, 0, 0, 0, 0, 2, 37
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\net\Head.vue", "Vue", 0, 0, 0, 0, 75, 0, 0, 0, 0, 7, 82
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\net\Index.vue", "Vue", 0, 0, 0, 0, 51, 0, 0, 0, 0, 5, 56
"c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\net\List.vue", "Vue", 0, 0, 0, 0, 95, 0, 0, 0, 0, 10, 105
"c:\Users\snltty\Desktop\linker\src\linker.web\vue.config.js", "JavaScript", 10, 0, 0, 0, 0, 0, 0, 0, 0, 1, 11
"Total", "-", 2193, 15, 10030, 47, 11254, 23, 19, 393, 38, 1018, 25030
1 filename language JavaScript Markdown JSON XML Vue HTML JSON with Comments PostCSS comment blank total
2 c:\Users\snltty\Desktop\linker\src\linker.web\README.md Markdown 0 15 0 0 0 0 0 0 0 5 20
3 c:\Users\snltty\Desktop\linker\src\linker.web\babel.config.js JavaScript 5 0 0 0 0 0 0 0 0 1 6
4 c:\Users\snltty\Desktop\linker\src\linker.web\jsconfig.json JSON with Comments 0 0 0 0 0 0 19 0 0 1 20
5 c:\Users\snltty\Desktop\linker\src\linker.web\package-lock.json JSON 0 0 9999 0 0 0 0 0 0 1 10000
6 c:\Users\snltty\Desktop\linker\src\linker.web\package.json JSON 0 0 31 0 0 0 0 0 0 1 32
7 c:\Users\snltty\Desktop\linker\src\linker.web\public\aliyun.svg XML 0 0 0 1 0 0 0 0 0 0 1
8 c:\Users\snltty\Desktop\linker\src\linker.web\public\alpine.svg XML 0 0 0 1 0 0 0 0 0 0 1
9 c:\Users\snltty\Desktop\linker\src\linker.web\public\amazon.svg XML 0 0 0 1 0 0 0 0 0 0 1
10 c:\Users\snltty\Desktop\linker\src\linker.web\public\android.svg XML 0 0 0 1 0 0 0 0 0 0 1
11 c:\Users\snltty\Desktop\linker\src\linker.web\public\archlinux.svg XML 0 0 0 1 0 0 0 0 0 0 1
12 c:\Users\snltty\Desktop\linker\src\linker.web\public\armbian.svg XML 0 0 0 1 0 0 0 0 0 0 1
13 c:\Users\snltty\Desktop\linker\src\linker.web\public\centos.svg XML 0 0 0 1 0 0 0 0 0 0 1
14 c:\Users\snltty\Desktop\linker\src\linker.web\public\chinamobile.svg XML 0 0 0 1 0 0 0 0 0 0 1
15 c:\Users\snltty\Desktop\linker\src\linker.web\public\chinanet.svg XML 0 0 0 1 0 0 0 0 0 0 1
16 c:\Users\snltty\Desktop\linker\src\linker.web\public\chinaunicom.svg XML 0 0 0 1 0 0 0 0 0 0 1
17 c:\Users\snltty\Desktop\linker\src\linker.web\public\debian.svg XML 0 0 0 1 0 0 0 0 0 0 1
18 c:\Users\snltty\Desktop\linker\src\linker.web\public\docker.svg XML 0 0 0 1 0 0 0 0 0 0 1
19 c:\Users\snltty\Desktop\linker\src\linker.web\public\fedora.svg XML 0 0 0 1 0 0 0 0 0 0 1
20 c:\Users\snltty\Desktop\linker\src\linker.web\public\google.svg XML 0 0 0 1 0 0 0 0 0 0 1
21 c:\Users\snltty\Desktop\linker\src\linker.web\public\huawei.svg XML 0 0 0 1 0 0 0 0 0 0 1
22 c:\Users\snltty\Desktop\linker\src\linker.web\public\index.html HTML 0 0 0 0 0 23 0 0 1 3 27
23 c:\Users\snltty\Desktop\linker\src\linker.web\public\ios.svg XML 0 0 0 1 0 0 0 0 0 0 1
24 c:\Users\snltty\Desktop\linker\src\linker.web\public\iphone.svg XML 0 0 0 1 0 0 0 0 0 0 1
25 c:\Users\snltty\Desktop\linker\src\linker.web\public\jdcom.svg XML 0 0 0 1 0 0 0 0 0 0 1
26 c:\Users\snltty\Desktop\linker\src\linker.web\public\linux.svg XML 0 0 0 1 0 0 0 0 0 0 1
27 c:\Users\snltty\Desktop\linker\src\linker.web\public\openwrt.svg XML 0 0 0 1 0 0 0 0 0 0 1
28 c:\Users\snltty\Desktop\linker\src\linker.web\public\oppo.svg XML 0 0 0 1 0 0 0 0 0 0 1
29 c:\Users\snltty\Desktop\linker\src\linker.web\public\rocky.svg XML 0 0 0 1 0 0 0 0 0 0 1
30 c:\Users\snltty\Desktop\linker\src\linker.web\public\samsung.svg XML 0 0 0 1 0 0 0 0 0 0 1
31 c:\Users\snltty\Desktop\linker\src\linker.web\public\system.svg XML 0 0 0 1 0 0 0 0 0 0 1
32 c:\Users\snltty\Desktop\linker\src\linker.web\public\ubuntu.svg XML 0 0 0 1 0 0 0 0 0 0 1
33 c:\Users\snltty\Desktop\linker\src\linker.web\public\vivo.svg XML 0 0 0 1 0 0 0 0 0 0 1
34 c:\Users\snltty\Desktop\linker\src\linker.web\public\windows.svg XML 0 0 0 1 0 0 0 0 0 0 1
35 c:\Users\snltty\Desktop\linker\src\linker.web\public\xiaomi.svg XML 0 0 0 1 0 0 0 0 0 0 1
36 c:\Users\snltty\Desktop\linker\src\linker.web\src\App.vue Vue 0 0 0 0 32 0 0 0 0 6 38
37 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\access.js JavaScript 13 0 0 0 0 0 0 0 0 1 14
38 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\action.js JavaScript 7 0 0 0 0 0 0 0 0 2 9
39 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\cdkey.js JavaScript 25 0 0 0 0 0 0 0 0 1 26
40 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\config.js JavaScript 22 0 0 0 0 0 0 0 0 2 24
41 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\firewall.js JavaScript 16 0 0 0 0 0 0 0 0 1 17
42 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\flow.js JavaScript 28 0 0 0 0 0 0 0 0 1 29
43 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\forward.js JavaScript 28 0 0 0 0 0 0 0 0 2 30
44 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\logger.js JavaScript 13 0 0 0 0 0 0 0 0 4 17
45 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\plan.js JavaScript 10 0 0 0 0 0 0 0 0 2 12
46 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\relay.js JavaScript 31 0 0 0 0 0 0 0 0 2 33
47 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\request.js JavaScript 158 0 0 0 0 0 0 0 19 8 185
48 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\sforward.js JavaScript 25 0 0 0 0 0 0 0 0 3 28
49 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\signin.js JavaScript 37 0 0 0 0 0 0 0 0 6 43
50 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\socks5.js JavaScript 22 0 0 0 0 0 0 0 0 3 25
51 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\sync.js JavaScript 7 0 0 0 0 0 0 0 0 1 8
52 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\tunnel.js JavaScript 28 0 0 0 0 0 0 0 0 4 32
53 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\tuntap.js JavaScript 46 0 0 0 0 0 0 0 0 7 53
54 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\updater.js JavaScript 37 0 0 0 0 0 0 0 0 4 41
55 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\wakeup.js JavaScript 19 0 0 0 0 0 0 0 0 1 20
56 c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\wlist.js JavaScript 10 0 0 0 0 0 0 0 0 0 10
57 c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\anquan.svg XML 0 0 0 1 0 0 0 0 0 0 1
58 c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\cell.svg XML 0 0 0 5 0 0 0 0 0 0 5
59 c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\coin.svg XML 0 0 0 1 0 0 0 0 0 0 1
60 c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\dadong.svg XML 0 0 0 1 0 0 0 0 0 0 1
61 c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\dianchi.svg XML 0 0 0 1 0 0 0 0 0 0 1
62 c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\fuwuqi.svg XML 0 0 0 1 0 0 0 0 0 0 1
63 c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\group.svg XML 0 0 0 1 0 0 0 0 0 0 1
64 c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\loading.svg XML 0 0 0 1 0 0 0 0 0 0 1
65 c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\login.svg XML 0 0 0 1 0 0 0 0 0 0 1
66 c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\no-permission.svg XML 0 0 0 1 0 0 0 0 0 0 1
67 c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\qidong.svg XML 0 0 0 1 0 0 0 0 0 0 1
68 c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\rizhi.svg XML 0 0 0 1 0 0 0 0 0 0 1
69 c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\run.svg XML 0 0 0 1 0 0 0 0 0 0 1
70 c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\shouye.svg XML 0 0 0 1 0 0 0 0 0 0 1
71 c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\shuaxin2.svg XML 0 0 0 1 0 0 0 0 0 0 1
72 c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\style.css PostCSS 0 0 0 0 0 0 0 393 10 110 513
73 c:\Users\snltty\Desktop\linker\src\linker.web\src\lang\en-us.js JavaScript 315 0 0 0 0 0 0 0 0 29 344
74 c:\Users\snltty\Desktop\linker\src\linker.web\src\lang\index.js JavaScript 18 0 0 0 0 0 0 0 0 1 19
75 c:\Users\snltty\Desktop\linker\src\linker.web\src\lang\provide.js JavaScript 19 0 0 0 0 0 0 0 0 0 19
76 c:\Users\snltty\Desktop\linker\src\linker.web\src\lang\zh-cn.js JavaScript 399 0 0 0 0 0 0 0 0 39 438
77 c:\Users\snltty\Desktop\linker\src\linker.web\src\main.js JavaScript 68 0 0 0 0 0 0 0 0 9 77
78 c:\Users\snltty\Desktop\linker\src\linker.web\src\provide.js JavaScript 40 0 0 0 0 0 0 0 3 4 47
79 c:\Users\snltty\Desktop\linker\src\linker.web\src\router\index.js JavaScript 61 0 0 0 0 0 0 0 0 4 65
80 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\Api.vue Vue 0 0 0 0 128 0 0 0 0 9 137
81 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\NoPermission.vue Vue 0 0 0 0 41 0 0 0 0 5 46
82 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\Refresh.vue Vue 0 0 0 0 71 0 0 0 0 8 79
83 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\accesss\Access.vue Vue 0 0 0 0 106 0 0 0 0 5 111
84 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\accesss\AccessEdit.vue Vue 0 0 0 0 60 0 0 0 0 3 63
85 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\accesss\AccessNum.vue Vue 0 0 0 0 29 0 0 0 0 5 34
86 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\accesss\access.js JavaScript 35 0 0 0 0 0 0 0 0 3 38
87 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\action\Action.vue Vue 0 0 0 0 72 0 0 0 0 1 73
88 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\cdkey\Add.vue Vue 0 0 0 0 136 0 0 0 0 3 139
89 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\cdkey\Flags.vue Vue 0 0 0 0 43 0 0 0 0 7 50
90 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\cdkey\Index.vue Vue 0 0 0 0 29 0 0 0 0 5 34
91 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\cdkey\Manager.vue Vue 0 0 0 0 183 0 0 0 0 5 188
92 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\cdkey\My.vue Vue 0 0 0 0 193 0 0 0 0 6 199
93 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\cdkey\Test.vue Vue 0 0 0 0 198 0 0 0 0 3 201
94 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\connection\ConnectionShow.vue Vue 0 0 0 0 86 0 0 0 0 9 95
95 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\connection\ConnectionsEdit.vue Vue 0 0 0 0 281 0 0 0 0 13 294
96 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\connection\connections.js JavaScript 133 0 0 0 0 0 0 0 0 16 149
97 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\device\Device.vue Vue 0 0 0 0 75 0 0 0 0 7 82
98 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\device\DeviceEdit.vue Vue 0 0 0 0 66 0 0 0 0 3 69
99 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\device\DeviceName.vue Vue 0 0 0 0 67 0 0 0 0 8 75
100 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\device\devices.js JavaScript 111 0 0 0 0 0 0 0 1 5 117
101 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\firewall\Add.vue Vue 0 0 0 0 210 0 0 0 0 11 221
102 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\firewall\Firewall.vue Vue 0 0 0 0 290 0 0 0 0 15 305
103 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\Index.vue Vue 0 0 0 0 184 0 0 0 0 17 201
104 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\OnlineAllMap.vue Vue 0 0 0 0 75 0 0 0 0 9 84
105 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\OnlineMap.vue Vue 0 0 0 0 87 0 0 0 0 9 96
106 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\ServerFlowForward.vue Vue 0 0 0 0 136 0 0 0 0 10 146
107 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\ServerFlowMessenger.vue Vue 0 0 0 0 111 0 0 0 0 12 123
108 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\ServerFlowRelay.vue Vue 0 0 0 0 141 0 0 0 0 10 151
109 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\ServerFlowSForward.vue Vue 0 0 0 0 141 0 0 0 0 10 151
110 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\flow.js JavaScript 19 0 0 0 0 0 0 0 0 1 20
111 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\forward\Config.vue Vue 0 0 0 0 38 0 0 0 0 3 41
112 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\forward\Forward.vue Vue 0 0 0 0 105 0 0 0 0 4 109
113 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\forward\ForwardEdit.vue Vue 0 0 0 0 318 0 0 0 0 13 331
114 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\forward\SForwardEdit.vue Vue 0 0 0 0 276 0 0 0 0 10 286
115 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\forward\forward.js JavaScript 45 0 0 0 0 0 0 0 0 2 47
116 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\forward\sforward.js JavaScript 49 0 0 0 0 0 0 0 0 4 53
117 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\groups\Groups.vue Vue 0 0 0 0 157 0 0 0 3 5 165
118 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\groups\Index.vue Vue 0 0 0 0 84 0 0 0 0 3 87
119 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\Oper.vue Vue 0 0 0 0 187 0 0 0 0 28 215
120 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\OperAction.vue Vue 0 0 0 0 40 0 0 0 0 1 41
121 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\OperFirewall.vue Vue 0 0 0 0 40 0 0 0 0 2 42
122 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\OperFlow.vue Vue 0 0 0 0 33 0 0 0 0 1 34
123 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\OperRoutes.vue Vue 0 0 0 0 63 0 0 0 0 4 67
124 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\OperTransport.vue Vue 0 0 0 0 40 0 0 0 0 2 42
125 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\OperWakeup.vue Vue 0 0 0 0 40 0 0 0 0 2 42
126 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\oper.js JavaScript 19 0 0 0 0 0 0 0 0 1 20
127 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\plan\PlanEdit.vue Vue 0 0 0 0 277 0 0 0 0 9 286
128 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\plan\PlanList.vue Vue 0 0 0 0 66 0 0 0 0 5 71
129 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\plan\PlanShow.vue Vue 0 0 0 0 90 0 0 0 0 7 97
130 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\relay\Config.vue Vue 0 0 0 0 86 0 0 0 0 4 90
131 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\relay\EditNode.vue Vue 0 0 0 0 114 0 0 0 0 4 118
132 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\relay\Nodes.vue Vue 0 0 0 0 221 0 0 0 0 6 227
133 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\socks5\Socks5.vue Vue 0 0 0 0 32 0 0 0 0 4 36
134 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\socks5\Socks5Edit.vue Vue 0 0 0 0 87 0 0 0 0 3 90
135 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\socks5\Socks5Lan.vue Vue 0 0 0 0 146 0 0 0 0 5 151
136 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\socks5\Socks5Show.vue Vue 0 0 0 0 138 0 0 0 0 9 147
137 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\socks5\socks5.js JavaScript 58 0 0 0 0 0 0 0 0 6 64
138 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\status\Api.vue Vue 0 0 0 0 53 0 0 0 0 1 54
139 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\status\Export.vue Vue 0 0 0 0 264 0 0 0 0 17 281
140 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\status\Index.vue Vue 0 0 0 0 70 0 0 0 1 6 77
141 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\status\server\Flow.vue Vue 0 0 0 0 43 0 0 0 0 3 46
142 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\status\server\Index.vue Vue 0 0 0 0 40 0 0 0 0 4 44
143 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\status\server\Version.vue Vue 0 0 0 0 151 0 0 0 0 11 162
144 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\stopwatch\Stopwatch.vue Vue 0 0 0 0 73 0 0 0 0 6 79
145 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\sync\Ids.vue Vue 0 0 0 0 54 0 0 0 0 4 58
146 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\sync\Index.vue Vue 0 0 0 0 92 0 0 0 0 3 95
147 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\transport\Transport.vue Vue 0 0 0 0 93 0 0 0 0 3 96
148 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tunnel\Tunnel.vue Vue 0 0 0 0 153 0 0 0 0 14 167
149 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tunnel\TunnelEdit.vue Vue 0 0 0 0 124 0 0 0 0 6 130
150 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tunnel\tunnel.js JavaScript 74 0 0 0 0 0 0 0 0 4 78
151 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\Tuntap.vue Vue 0 0 0 0 30 0 0 0 0 3 33
152 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\TuntapEdit.vue Vue 0 0 0 0 79 0 0 0 0 5 84
153 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\TuntapForward.vue Vue 0 0 0 0 191 0 0 0 0 10 201
154 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\TuntapIP.vue Vue 0 0 0 0 114 0 0 0 0 7 121
155 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\TuntapLan.vue Vue 0 0 0 0 149 0 0 0 0 5 154
156 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\TuntapLease.vue Vue 0 0 0 0 134 0 0 0 0 6 140
157 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\TuntapShow.vue Vue 0 0 0 0 177 0 0 0 0 12 189
158 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\tuntap.js JavaScript 77 0 0 0 0 0 0 0 0 11 88
159 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\updater\Config.vue Vue 0 0 0 0 37 0 0 0 0 2 39
160 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\updater\UpdaterBtn.vue Vue 0 0 0 0 154 0 0 0 0 8 162
161 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\updater\UpdaterConfirm.vue Vue 0 0 0 0 98 0 0 0 0 9 107
162 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\updater\updater.js JavaScript 56 0 0 0 0 0 0 0 0 7 63
163 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\wakeup\Add.vue Vue 0 0 0 0 216 0 0 0 0 6 222
164 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\wakeup\Wakeup.vue Vue 0 0 0 0 210 0 0 0 0 9 219
165 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\wlist\Add.vue Vue 0 0 0 0 146 0 0 0 0 10 156
166 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\wlist\Index.vue Vue 0 0 0 0 21 0 0 0 0 4 25
167 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\wlist\Manager.vue Vue 0 0 0 0 145 0 0 0 0 7 152
168 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\Index.vue Vue 0 0 0 0 84 0 0 0 0 4 88
169 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\action\Index.vue Vue 0 0 0 0 25 0 0 0 0 0 25
170 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\config\Config.vue Vue 0 0 0 0 94 0 0 0 0 4 98
171 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\config\Index.vue Vue 0 0 0 0 29 0 0 0 0 0 29
172 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\firewall\Index.vue Vue 0 0 0 0 35 0 0 0 0 3 38
173 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\head\Background.vue Vue 0 0 0 0 80 0 0 0 0 6 86
174 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\head\Index.vue Vue 0 0 0 0 105 0 0 0 0 15 120
175 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\head\Locale.vue Vue 0 0 0 0 58 0 0 0 0 5 63
176 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\head\Menu.vue Vue 0 0 0 0 151 0 0 0 0 7 158
177 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\head\Theme.vue Vue 0 0 0 0 45 0 0 0 0 5 50
178 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Client.vue Vue 0 0 0 0 168 0 0 0 0 7 175
179 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Common.vue Vue 0 0 0 0 51 0 0 0 0 6 57
180 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Copy.vue Vue 0 0 0 0 38 0 0 0 0 4 42
181 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Index.vue Vue 0 0 0 0 38 0 0 0 0 3 41
182 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Input.vue Vue 0 0 0 0 87 0 0 0 0 3 90
183 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Save.vue Vue 0 0 0 0 57 0 0 0 0 4 61
184 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Server.vue Vue 0 0 0 0 178 0 0 0 0 7 185
185 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\list\Index.vue Vue 0 0 0 0 230 0 0 0 0 29 259
186 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\list\Sort.vue Vue 0 0 0 0 68 0 0 0 0 7 75
187 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\logger\Index.vue Vue 0 0 0 0 163 0 0 0 0 14 177
188 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\logger\Setting.vue Vue 0 0 0 0 127 0 0 0 0 8 135
189 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\transport\Index.vue Vue 0 0 0 0 27 0 0 0 0 0 27
190 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\wakeup\Index.vue Vue 0 0 0 0 35 0 0 0 0 2 37
191 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\net\Head.vue Vue 0 0 0 0 75 0 0 0 0 7 82
192 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\net\Index.vue Vue 0 0 0 0 51 0 0 0 0 5 56
193 c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\net\List.vue Vue 0 0 0 0 95 0 0 0 0 10 105
194 c:\Users\snltty\Desktop\linker\src\linker.web\vue.config.js JavaScript 10 0 0 0 0 0 0 0 0 1 11
195 Total - 2193 15 10030 47 11254 23 19 393 38 1018 25030

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,76 @@
# Summary
Date : 2025-08-01 15:19:14
Directory c:\\Users\\snltty\\Desktop\\linker\\src\\linker.web
Total : 193 files, 23974 codes, 38 comments, 1018 blanks, all 25030 lines
Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md)
## Languages
| language | files | code | comment | blank | total |
| :--- | ---: | ---: | ---: | ---: | ---: |
| Vue | 104 | 11,254 | 4 | 694 | 11,952 |
| JSON | 2 | 10,030 | 0 | 2 | 10,032 |
| JavaScript | 40 | 2,193 | 23 | 203 | 2,419 |
| PostCSS | 1 | 393 | 10 | 110 | 513 |
| XML | 43 | 47 | 0 | 0 | 47 |
| HTML | 1 | 23 | 1 | 3 | 27 |
| JSON with Comments | 1 | 19 | 0 | 1 | 20 |
| Markdown | 1 | 15 | 0 | 5 | 20 |
## Directories
| path | files | code | comment | blank | total |
| :--- | ---: | ---: | ---: | ---: | ---: |
| . | 193 | 23,974 | 38 | 1,018 | 25,030 |
| . (Files) | 6 | 10,079 | 0 | 10 | 10,089 |
| public | 29 | 51 | 1 | 3 | 55 |
| src | 158 | 13,844 | 37 | 1,005 | 14,886 |
| src (Files) | 3 | 140 | 3 | 19 | 162 |
| src\\apis | 20 | 582 | 19 | 55 | 656 |
| src\\assets | 16 | 412 | 10 | 110 | 532 |
| src\\lang | 4 | 751 | 0 | 69 | 820 |
| src\\router | 1 | 61 | 0 | 4 | 65 |
| src\\views | 114 | 11,898 | 5 | 748 | 12,651 |
| src\\views (Files) | 3 | 240 | 0 | 22 | 262 |
| src\\views\\components | 85 | 9,464 | 5 | 561 | 10,030 |
| src\\views\\components\\accesss | 4 | 230 | 0 | 16 | 246 |
| src\\views\\components\\action | 1 | 72 | 0 | 1 | 73 |
| src\\views\\components\\cdkey | 6 | 782 | 0 | 29 | 811 |
| src\\views\\components\\connection | 3 | 500 | 0 | 38 | 538 |
| src\\views\\components\\device | 4 | 319 | 1 | 23 | 343 |
| src\\views\\components\\firewall | 2 | 500 | 0 | 26 | 526 |
| src\\views\\components\\flow | 8 | 894 | 0 | 78 | 972 |
| src\\views\\components\\forward | 6 | 831 | 0 | 36 | 867 |
| src\\views\\components\\groups | 2 | 241 | 3 | 8 | 252 |
| src\\views\\components\\oper | 8 | 462 | 0 | 41 | 503 |
| src\\views\\components\\plan | 3 | 433 | 0 | 21 | 454 |
| src\\views\\components\\relay | 3 | 421 | 0 | 14 | 435 |
| src\\views\\components\\socks5 | 5 | 461 | 0 | 27 | 488 |
| src\\views\\components\\status | 6 | 621 | 1 | 42 | 664 |
| src\\views\\components\\status (Files) | 3 | 387 | 1 | 24 | 412 |
| src\\views\\components\\status\\server | 3 | 234 | 0 | 18 | 252 |
| src\\views\\components\\stopwatch | 1 | 73 | 0 | 6 | 79 |
| src\\views\\components\\sync | 2 | 146 | 0 | 7 | 153 |
| src\\views\\components\\transport | 1 | 93 | 0 | 3 | 96 |
| src\\views\\components\\tunnel | 3 | 351 | 0 | 24 | 375 |
| src\\views\\components\\tuntap | 8 | 951 | 0 | 59 | 1,010 |
| src\\views\\components\\updater | 4 | 345 | 0 | 26 | 371 |
| src\\views\\components\\wakeup | 2 | 426 | 0 | 15 | 441 |
| src\\views\\components\\wlist | 3 | 312 | 0 | 21 | 333 |
| src\\views\\layout | 26 | 2,194 | 0 | 165 | 2,359 |
| src\\views\\layout\\full | 23 | 1,973 | 0 | 143 | 2,116 |
| src\\views\\layout\\full (Files) | 1 | 84 | 0 | 4 | 88 |
| src\\views\\layout\\full\\action | 1 | 25 | 0 | 0 | 25 |
| src\\views\\layout\\full\\config | 2 | 123 | 0 | 4 | 127 |
| src\\views\\layout\\full\\firewall | 1 | 35 | 0 | 3 | 38 |
| src\\views\\layout\\full\\head | 5 | 439 | 0 | 38 | 477 |
| src\\views\\layout\\full\\install | 7 | 617 | 0 | 34 | 651 |
| src\\views\\layout\\full\\list | 2 | 298 | 0 | 36 | 334 |
| src\\views\\layout\\full\\logger | 2 | 290 | 0 | 22 | 312 |
| src\\views\\layout\\full\\transport | 1 | 27 | 0 | 0 | 27 |
| src\\views\\layout\\full\\wakeup | 1 | 35 | 0 | 2 | 37 |
| src\\views\\layout\\net | 3 | 221 | 0 | 22 | 243 |
Summary / [Details](details.md) / [Diff Summary](diff.md) / [Diff Details](diff-details.md)

View File

@@ -0,0 +1,272 @@
Date : 2025-08-01 15:19:14
Directory : c:\Users\snltty\Desktop\linker\src\linker.web
Total : 193 files, 23974 codes, 38 comments, 1018 blanks, all 25030 lines
Languages
+--------------------+------------+------------+------------+------------+------------+
| language | files | code | comment | blank | total |
+--------------------+------------+------------+------------+------------+------------+
| Vue | 104 | 11,254 | 4 | 694 | 11,952 |
| JSON | 2 | 10,030 | 0 | 2 | 10,032 |
| JavaScript | 40 | 2,193 | 23 | 203 | 2,419 |
| PostCSS | 1 | 393 | 10 | 110 | 513 |
| XML | 43 | 47 | 0 | 0 | 47 |
| HTML | 1 | 23 | 1 | 3 | 27 |
| JSON with Comments | 1 | 19 | 0 | 1 | 20 |
| Markdown | 1 | 15 | 0 | 5 | 20 |
+--------------------+------------+------------+------------+------------+------------+
Directories
+---------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+
| path | files | code | comment | blank | total |
+---------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+
| . | 193 | 23,974 | 38 | 1,018 | 25,030 |
| . (Files) | 6 | 10,079 | 0 | 10 | 10,089 |
| public | 29 | 51 | 1 | 3 | 55 |
| src | 158 | 13,844 | 37 | 1,005 | 14,886 |
| src (Files) | 3 | 140 | 3 | 19 | 162 |
| src\apis | 20 | 582 | 19 | 55 | 656 |
| src\assets | 16 | 412 | 10 | 110 | 532 |
| src\lang | 4 | 751 | 0 | 69 | 820 |
| src\router | 1 | 61 | 0 | 4 | 65 |
| src\views | 114 | 11,898 | 5 | 748 | 12,651 |
| src\views (Files) | 3 | 240 | 0 | 22 | 262 |
| src\views\components | 85 | 9,464 | 5 | 561 | 10,030 |
| src\views\components\accesss | 4 | 230 | 0 | 16 | 246 |
| src\views\components\action | 1 | 72 | 0 | 1 | 73 |
| src\views\components\cdkey | 6 | 782 | 0 | 29 | 811 |
| src\views\components\connection | 3 | 500 | 0 | 38 | 538 |
| src\views\components\device | 4 | 319 | 1 | 23 | 343 |
| src\views\components\firewall | 2 | 500 | 0 | 26 | 526 |
| src\views\components\flow | 8 | 894 | 0 | 78 | 972 |
| src\views\components\forward | 6 | 831 | 0 | 36 | 867 |
| src\views\components\groups | 2 | 241 | 3 | 8 | 252 |
| src\views\components\oper | 8 | 462 | 0 | 41 | 503 |
| src\views\components\plan | 3 | 433 | 0 | 21 | 454 |
| src\views\components\relay | 3 | 421 | 0 | 14 | 435 |
| src\views\components\socks5 | 5 | 461 | 0 | 27 | 488 |
| src\views\components\status | 6 | 621 | 1 | 42 | 664 |
| src\views\components\status (Files) | 3 | 387 | 1 | 24 | 412 |
| src\views\components\status\server | 3 | 234 | 0 | 18 | 252 |
| src\views\components\stopwatch | 1 | 73 | 0 | 6 | 79 |
| src\views\components\sync | 2 | 146 | 0 | 7 | 153 |
| src\views\components\transport | 1 | 93 | 0 | 3 | 96 |
| src\views\components\tunnel | 3 | 351 | 0 | 24 | 375 |
| src\views\components\tuntap | 8 | 951 | 0 | 59 | 1,010 |
| src\views\components\updater | 4 | 345 | 0 | 26 | 371 |
| src\views\components\wakeup | 2 | 426 | 0 | 15 | 441 |
| src\views\components\wlist | 3 | 312 | 0 | 21 | 333 |
| src\views\layout | 26 | 2,194 | 0 | 165 | 2,359 |
| src\views\layout\full | 23 | 1,973 | 0 | 143 | 2,116 |
| src\views\layout\full (Files) | 1 | 84 | 0 | 4 | 88 |
| src\views\layout\full\action | 1 | 25 | 0 | 0 | 25 |
| src\views\layout\full\config | 2 | 123 | 0 | 4 | 127 |
| src\views\layout\full\firewall | 1 | 35 | 0 | 3 | 38 |
| src\views\layout\full\head | 5 | 439 | 0 | 38 | 477 |
| src\views\layout\full\install | 7 | 617 | 0 | 34 | 651 |
| src\views\layout\full\list | 2 | 298 | 0 | 36 | 334 |
| src\views\layout\full\logger | 2 | 290 | 0 | 22 | 312 |
| src\views\layout\full\transport | 1 | 27 | 0 | 0 | 27 |
| src\views\layout\full\wakeup | 1 | 35 | 0 | 2 | 37 |
| src\views\layout\net | 3 | 221 | 0 | 22 | 243 |
+---------------------------------------------------------------------------------------------------+------------+------------+------------+------------+------------+
Files
+---------------------------------------------------------------------------------------------------+--------------------+------------+------------+------------+------------+
| filename | language | code | comment | blank | total |
+---------------------------------------------------------------------------------------------------+--------------------+------------+------------+------------+------------+
| c:\Users\snltty\Desktop\linker\src\linker.web\README.md | Markdown | 15 | 0 | 5 | 20 |
| c:\Users\snltty\Desktop\linker\src\linker.web\babel.config.js | JavaScript | 5 | 0 | 1 | 6 |
| c:\Users\snltty\Desktop\linker\src\linker.web\jsconfig.json | JSON with Comments | 19 | 0 | 1 | 20 |
| c:\Users\snltty\Desktop\linker\src\linker.web\package-lock.json | JSON | 9,999 | 0 | 1 | 10,000 |
| c:\Users\snltty\Desktop\linker\src\linker.web\package.json | JSON | 31 | 0 | 1 | 32 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\aliyun.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\alpine.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\amazon.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\android.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\archlinux.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\armbian.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\centos.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\chinamobile.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\chinanet.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\chinaunicom.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\debian.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\docker.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\fedora.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\google.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\huawei.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\index.html | HTML | 23 | 1 | 3 | 27 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\ios.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\iphone.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\jdcom.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\linux.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\openwrt.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\oppo.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\rocky.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\samsung.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\system.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\ubuntu.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\vivo.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\windows.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\public\xiaomi.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\App.vue | Vue | 32 | 0 | 6 | 38 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\access.js | JavaScript | 13 | 0 | 1 | 14 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\action.js | JavaScript | 7 | 0 | 2 | 9 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\cdkey.js | JavaScript | 25 | 0 | 1 | 26 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\config.js | JavaScript | 22 | 0 | 2 | 24 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\firewall.js | JavaScript | 16 | 0 | 1 | 17 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\flow.js | JavaScript | 28 | 0 | 1 | 29 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\forward.js | JavaScript | 28 | 0 | 2 | 30 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\logger.js | JavaScript | 13 | 0 | 4 | 17 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\plan.js | JavaScript | 10 | 0 | 2 | 12 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\relay.js | JavaScript | 31 | 0 | 2 | 33 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\request.js | JavaScript | 158 | 19 | 8 | 185 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\sforward.js | JavaScript | 25 | 0 | 3 | 28 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\signin.js | JavaScript | 37 | 0 | 6 | 43 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\socks5.js | JavaScript | 22 | 0 | 3 | 25 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\sync.js | JavaScript | 7 | 0 | 1 | 8 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\tunnel.js | JavaScript | 28 | 0 | 4 | 32 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\tuntap.js | JavaScript | 46 | 0 | 7 | 53 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\updater.js | JavaScript | 37 | 0 | 4 | 41 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\wakeup.js | JavaScript | 19 | 0 | 1 | 20 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\apis\wlist.js | JavaScript | 10 | 0 | 0 | 10 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\anquan.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\cell.svg | XML | 5 | 0 | 0 | 5 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\coin.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\dadong.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\dianchi.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\fuwuqi.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\group.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\loading.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\login.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\no-permission.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\qidong.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\rizhi.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\run.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\shouye.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\shuaxin2.svg | XML | 1 | 0 | 0 | 1 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\assets\style.css | PostCSS | 393 | 10 | 110 | 513 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\lang\en-us.js | JavaScript | 315 | 0 | 29 | 344 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\lang\index.js | JavaScript | 18 | 0 | 1 | 19 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\lang\provide.js | JavaScript | 19 | 0 | 0 | 19 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\lang\zh-cn.js | JavaScript | 399 | 0 | 39 | 438 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\main.js | JavaScript | 68 | 0 | 9 | 77 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\provide.js | JavaScript | 40 | 3 | 4 | 47 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\router\index.js | JavaScript | 61 | 0 | 4 | 65 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\Api.vue | Vue | 128 | 0 | 9 | 137 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\NoPermission.vue | Vue | 41 | 0 | 5 | 46 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\Refresh.vue | Vue | 71 | 0 | 8 | 79 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\accesss\Access.vue | Vue | 106 | 0 | 5 | 111 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\accesss\AccessEdit.vue | Vue | 60 | 0 | 3 | 63 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\accesss\AccessNum.vue | Vue | 29 | 0 | 5 | 34 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\accesss\access.js | JavaScript | 35 | 0 | 3 | 38 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\action\Action.vue | Vue | 72 | 0 | 1 | 73 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\cdkey\Add.vue | Vue | 136 | 0 | 3 | 139 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\cdkey\Flags.vue | Vue | 43 | 0 | 7 | 50 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\cdkey\Index.vue | Vue | 29 | 0 | 5 | 34 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\cdkey\Manager.vue | Vue | 183 | 0 | 5 | 188 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\cdkey\My.vue | Vue | 193 | 0 | 6 | 199 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\cdkey\Test.vue | Vue | 198 | 0 | 3 | 201 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\connection\ConnectionShow.vue | Vue | 86 | 0 | 9 | 95 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\connection\ConnectionsEdit.vue | Vue | 281 | 0 | 13 | 294 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\connection\connections.js | JavaScript | 133 | 0 | 16 | 149 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\device\Device.vue | Vue | 75 | 0 | 7 | 82 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\device\DeviceEdit.vue | Vue | 66 | 0 | 3 | 69 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\device\DeviceName.vue | Vue | 67 | 0 | 8 | 75 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\device\devices.js | JavaScript | 111 | 1 | 5 | 117 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\firewall\Add.vue | Vue | 210 | 0 | 11 | 221 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\firewall\Firewall.vue | Vue | 290 | 0 | 15 | 305 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\Index.vue | Vue | 184 | 0 | 17 | 201 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\OnlineAllMap.vue | Vue | 75 | 0 | 9 | 84 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\OnlineMap.vue | Vue | 87 | 0 | 9 | 96 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\ServerFlowForward.vue | Vue | 136 | 0 | 10 | 146 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\ServerFlowMessenger.vue | Vue | 111 | 0 | 12 | 123 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\ServerFlowRelay.vue | Vue | 141 | 0 | 10 | 151 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\ServerFlowSForward.vue | Vue | 141 | 0 | 10 | 151 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\flow\flow.js | JavaScript | 19 | 0 | 1 | 20 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\forward\Config.vue | Vue | 38 | 0 | 3 | 41 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\forward\Forward.vue | Vue | 105 | 0 | 4 | 109 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\forward\ForwardEdit.vue | Vue | 318 | 0 | 13 | 331 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\forward\SForwardEdit.vue | Vue | 276 | 0 | 10 | 286 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\forward\forward.js | JavaScript | 45 | 0 | 2 | 47 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\forward\sforward.js | JavaScript | 49 | 0 | 4 | 53 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\groups\Groups.vue | Vue | 157 | 3 | 5 | 165 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\groups\Index.vue | Vue | 84 | 0 | 3 | 87 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\Oper.vue | Vue | 187 | 0 | 28 | 215 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\OperAction.vue | Vue | 40 | 0 | 1 | 41 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\OperFirewall.vue | Vue | 40 | 0 | 2 | 42 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\OperFlow.vue | Vue | 33 | 0 | 1 | 34 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\OperRoutes.vue | Vue | 63 | 0 | 4 | 67 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\OperTransport.vue | Vue | 40 | 0 | 2 | 42 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\OperWakeup.vue | Vue | 40 | 0 | 2 | 42 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\oper\oper.js | JavaScript | 19 | 0 | 1 | 20 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\plan\PlanEdit.vue | Vue | 277 | 0 | 9 | 286 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\plan\PlanList.vue | Vue | 66 | 0 | 5 | 71 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\plan\PlanShow.vue | Vue | 90 | 0 | 7 | 97 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\relay\Config.vue | Vue | 86 | 0 | 4 | 90 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\relay\EditNode.vue | Vue | 114 | 0 | 4 | 118 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\relay\Nodes.vue | Vue | 221 | 0 | 6 | 227 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\socks5\Socks5.vue | Vue | 32 | 0 | 4 | 36 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\socks5\Socks5Edit.vue | Vue | 87 | 0 | 3 | 90 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\socks5\Socks5Lan.vue | Vue | 146 | 0 | 5 | 151 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\socks5\Socks5Show.vue | Vue | 138 | 0 | 9 | 147 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\socks5\socks5.js | JavaScript | 58 | 0 | 6 | 64 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\status\Api.vue | Vue | 53 | 0 | 1 | 54 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\status\Export.vue | Vue | 264 | 0 | 17 | 281 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\status\Index.vue | Vue | 70 | 1 | 6 | 77 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\status\server\Flow.vue | Vue | 43 | 0 | 3 | 46 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\status\server\Index.vue | Vue | 40 | 0 | 4 | 44 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\status\server\Version.vue | Vue | 151 | 0 | 11 | 162 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\stopwatch\Stopwatch.vue | Vue | 73 | 0 | 6 | 79 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\sync\Ids.vue | Vue | 54 | 0 | 4 | 58 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\sync\Index.vue | Vue | 92 | 0 | 3 | 95 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\transport\Transport.vue | Vue | 93 | 0 | 3 | 96 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tunnel\Tunnel.vue | Vue | 153 | 0 | 14 | 167 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tunnel\TunnelEdit.vue | Vue | 124 | 0 | 6 | 130 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tunnel\tunnel.js | JavaScript | 74 | 0 | 4 | 78 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\Tuntap.vue | Vue | 30 | 0 | 3 | 33 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\TuntapEdit.vue | Vue | 79 | 0 | 5 | 84 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\TuntapForward.vue | Vue | 191 | 0 | 10 | 201 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\TuntapIP.vue | Vue | 114 | 0 | 7 | 121 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\TuntapLan.vue | Vue | 149 | 0 | 5 | 154 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\TuntapLease.vue | Vue | 134 | 0 | 6 | 140 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\TuntapShow.vue | Vue | 177 | 0 | 12 | 189 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\tuntap\tuntap.js | JavaScript | 77 | 0 | 11 | 88 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\updater\Config.vue | Vue | 37 | 0 | 2 | 39 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\updater\UpdaterBtn.vue | Vue | 154 | 0 | 8 | 162 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\updater\UpdaterConfirm.vue | Vue | 98 | 0 | 9 | 107 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\updater\updater.js | JavaScript | 56 | 0 | 7 | 63 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\wakeup\Add.vue | Vue | 216 | 0 | 6 | 222 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\wakeup\Wakeup.vue | Vue | 210 | 0 | 9 | 219 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\wlist\Add.vue | Vue | 146 | 0 | 10 | 156 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\wlist\Index.vue | Vue | 21 | 0 | 4 | 25 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\components\wlist\Manager.vue | Vue | 145 | 0 | 7 | 152 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\Index.vue | Vue | 84 | 0 | 4 | 88 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\action\Index.vue | Vue | 25 | 0 | 0 | 25 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\config\Config.vue | Vue | 94 | 0 | 4 | 98 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\config\Index.vue | Vue | 29 | 0 | 0 | 29 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\firewall\Index.vue | Vue | 35 | 0 | 3 | 38 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\head\Background.vue | Vue | 80 | 0 | 6 | 86 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\head\Index.vue | Vue | 105 | 0 | 15 | 120 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\head\Locale.vue | Vue | 58 | 0 | 5 | 63 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\head\Menu.vue | Vue | 151 | 0 | 7 | 158 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\head\Theme.vue | Vue | 45 | 0 | 5 | 50 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Client.vue | Vue | 168 | 0 | 7 | 175 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Common.vue | Vue | 51 | 0 | 6 | 57 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Copy.vue | Vue | 38 | 0 | 4 | 42 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Index.vue | Vue | 38 | 0 | 3 | 41 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Input.vue | Vue | 87 | 0 | 3 | 90 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Save.vue | Vue | 57 | 0 | 4 | 61 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\install\Server.vue | Vue | 178 | 0 | 7 | 185 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\list\Index.vue | Vue | 230 | 0 | 29 | 259 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\list\Sort.vue | Vue | 68 | 0 | 7 | 75 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\logger\Index.vue | Vue | 163 | 0 | 14 | 177 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\logger\Setting.vue | Vue | 127 | 0 | 8 | 135 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\transport\Index.vue | Vue | 27 | 0 | 0 | 27 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\full\wakeup\Index.vue | Vue | 35 | 0 | 2 | 37 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\net\Head.vue | Vue | 75 | 0 | 7 | 82 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\net\Index.vue | Vue | 51 | 0 | 5 | 56 |
| c:\Users\snltty\Desktop\linker\src\linker.web\src\views\layout\net\List.vue | Vue | 95 | 0 | 10 | 105 |
| c:\Users\snltty\Desktop\linker\src\linker.web\vue.config.js | JavaScript | 10 | 0 | 1 | 11 |
| Total | | 23,974 | 38 | 1,018 | 25,030 |
+---------------------------------------------------------------------------------------------------+--------------------+------------+------------+------------+------------+

View File

@@ -132,6 +132,13 @@ export default {
'status.flowForward': 'Port Forward',
'status.flowSocks5': 'Proxy',
'status.flowTunnel': 'Tunnel',
'status.flowMachineName': 'Source',
'status.flowTarget': 'Service',
'status.flowNum': 'Num',
'status.flowTransitionId': 'Trans',
'status.flowDirection': 'Dir',
'status.flowType': 'Type',
'status.flowMode': 'Mode',
'status.tunnelName': 'Name',
'status.tunnelLabel': 'Label',

View File

@@ -226,6 +226,13 @@ export default {
'status.flowForward': '端口转发',
'status.flowSocks5': '代理',
'status.flowTunnel': '隧道连接',
'status.flowMachineName': '来源',
'status.flowTarget': '服务',
'status.flowNum': '数量',
'status.flowTransitionId': '事务',
'status.flowDirection': '方向',
'status.flowType': '类型',
'status.flowMode': '模式',
'status.tunnelName': '名称',
'status.tunnelLabel': '说明',

View File

@@ -3,50 +3,50 @@ const routes = [
{
path: '/',
name: 'Full',
component: () => import('@/views/full/Index.vue'),
component: () => import('@/views/layout/full/Index.vue'),
redirect: '/full/index.html',
children: [
{
path: '/full/index.html',
name: 'FullIndex',
component: () => import('@/views/full/devices/List.vue')
component: () => import('@/views/layout/full/list/Index.vue')
},
{
path: '/full/servers.html',
name: 'FullServers',
component: () => import('@/views/full/server/Index.vue')
component: () => import('@/views/layout/full/config/Index.vue')
},
{
path: '/full/transport.html',
name: 'FullTransport',
component: () => import('@/views/full/transport/Index.vue')
component: () => import('@/views/layout/full/transport/Index.vue')
},
{
path: '/full/action.html',
name: 'FullAction',
component: () => import('@/views/full/action/Index.vue')
component: () => import('@/views/layout/full/action/Index.vue')
},
{
path: '/full/firewall.html',
name: 'FullFirewall',
component: () => import('@/views/full/firewall/Index.vue')
component: () => import('@/views/layout/full/firewall/Index.vue')
},
{
path: '/full/wakeup.html',
name: 'FullWakeup',
component: () => import('@/views/full/wakeup/Index.vue')
component: () => import('@/views/layout/full/wakeup/Index.vue')
},
{
path: '/full/logger.html',
name: 'FullLogger',
component: () => import('@/views/full/logger/Index.vue')
component: () => import('@/views/layout/full/logger/Index.vue')
}
]
},
{
path: '/net/index.html',
name: 'Network',
component: () => import('@/views/net/Index.vue')
component: () => import('@/views/layout/net/Index.vue')
},
{
path: '/no-permission.html',

View File

@@ -20,7 +20,7 @@
</div>
</template>
<script>
import { computed, onMounted, reactive } from 'vue';
import { computed, onMounted, reactive } from 'vue';
import { injectGlobalData } from '@/provide';
import { useAccess } from './access';
export default {

View File

@@ -13,7 +13,7 @@
import { setAccess } from '@/apis/access';
import { ElMessage } from 'element-plus';
import { reactive, ref, watch } from 'vue';
import Access from '@/views/full/devices/Access.vue'
import Access from './Access.vue'
export default {
props: ['data','modelValue'],

Some files were not shown because too many files have changed in this diff Show More