diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index ab935205..569ea748 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -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.7.6 snltty/linker-musl:amd64 snltty/linker-musl:arm64 snltty/linker-musl:arm && \
+ docker manifest create snltty/linker-musl:v1.7.7 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.7.6 && \
+ docker manifest push snltty/linker-musl:v1.7.7 && \
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,6 +70,6 @@ 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.7.6 snltty/linker-debian:amd64 snltty/linker-debian:arm64 snltty/linker-debian:arm && \
+ docker manifest create snltty/linker-debian:v1.7.7 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.7.6
\ No newline at end of file
+ docker manifest push snltty/linker-debian:v1.7.7
\ No newline at end of file
diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml
index 54b9d787..a72d7e55 100644
--- a/.github/workflows/dotnet.yml
+++ b/.github/workflows/dotnet.yml
@@ -33,11 +33,11 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.ACTIONS_TOKEN }}
with:
- tag_name: v1.7.6
- release_name: v1.7.6.${{ steps.date.outputs.today }}
+ tag_name: v1.7.7
+ release_name: v1.7.7.${{ steps.date.outputs.today }}
draft: false
prerelease: false
- body: "1. 一些优化\r\n2. 安卓APP勉强能用,支持分身,下拉刷新,在线升级\r\n5. 如果你设备很多,请尝试升级其中一个成功重启后再升级其它"
+ body: "1. 一些累计更新\r\n2. 优化ssl证书,兼容安卓\r\n3. 打洞和中继优化,显示loading,增加手动尝试打洞\r\n5. 修改入参格式,增加虚拟网卡设置\r\n5. 如果你设备很多,请尝试升级其中一个成功重启后再升级其它"
- 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.7.6/linker-win-x86.zip
+ target-path: /downloads/linker/v1.7.7/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.7.6/linker-win-x64.zip
+ target-path: /downloads/linker/v1.7.7/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.7.6/linker-win-arm64.zip
+ target-path: /downloads/linker/v1.7.7/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.7.6/linker-linux-x64.zip
+ target-path: /downloads/linker/v1.7.7/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.7.6/linker-linux-arm.zip
+ target-path: /downloads/linker/v1.7.7/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.7.6/linker-linux-arm64.zip
+ target-path: /downloads/linker/v1.7.7/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.7.6/linker-linux-musl-x64.zip
+ target-path: /downloads/linker/v1.7.7/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.7.6/linker-linux-musl-arm.zip
+ target-path: /downloads/linker/v1.7.7/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.7.6/linker-linux-musl-arm64.zip
+ target-path: /downloads/linker/v1.7.7/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.7.6/linker.apk
+ target-path: /downloads/linker/v1.7.7/linker.apk
- name: upload-apk
id: upload-apk
uses: actions/upload-release-asset@master
diff --git a/.github/workflows/ipk.yml b/.github/workflows/ipk.yml
index ee413204..76dd0370 100644
--- a/.github/workflows/ipk.yml
+++ b/.github/workflows/ipk.yml
@@ -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.7.6/linker-x64.ipk
+ target-path: /downloads/linker/v1.7.7/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.7.6/linker-arm.ipk
+ target-path: /downloads/linker/v1.7.7/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.7.6/linker-arm64.ipk
+ target-path: /downloads/linker/v1.7.7/linker-arm64.ipk
- name: upload-arm64
id: upload-arm64
uses: actions/upload-release-asset@master
diff --git a/.github/workflows/nuget.yml b/.github/workflows/nuget.yml
index 8b12625a..bcbb3b8c 100644
--- a/.github/workflows/nuget.yml
+++ b/.github/workflows/nuget.yml
@@ -83,31 +83,31 @@ jobs:
- name: Push
run: |
- dotnet nuget push ./src/linker.libs/bin/release/linker.libs.1.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.6.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.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.7.7.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
diff --git a/README.md b/README.md
index 311dd8d4..e0ff2731 100644
--- a/README.md
+++ b/README.md
@@ -92,11 +92,18 @@ Built-in SNAT enables you to use the point-to-site functionality even on Windows

+## Plan Task
+Schedule tasks to control activation and deactivation timing.
+
+
+

+
+
## Management Website
-

+

## Support the Author
diff --git a/README_zh.md b/README_zh.md
index 998a71a3..a630ae3e 100644
--- a/README_zh.md
+++ b/README_zh.md
@@ -92,11 +92,18 @@ LinkerMessengerEntry.Setup(ExcludeModule.None);

+## 计划任务
+内网穿透使用计划任务决定开启和关闭的时机
+
+
+

+
+
## 管理页面
-

+

## 可怜作者
diff --git a/publish-docker.sh b/publish-docker.sh
index 90ffc194..d0d09165 100644
--- a/publish-docker.sh
+++ b/publish-docker.sh
@@ -33,16 +33,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.7.6" . --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.7.7" . --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.7.6" . --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.7.7" . --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.7.6" . --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.7.7" . --push
cd ../../../../../
done
done
\ No newline at end of file
diff --git a/publish-ipk.sh b/publish-ipk.sh
index 205bb827..4c638e03 100644
--- a/publish-ipk.sh
+++ b/publish-ipk.sh
@@ -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.7.6|g" public/publish-ipk/${r}/control/control
+ sed -i "s|{version}|1.7.7|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
diff --git a/readme/full.jpg b/readme/full.jpg
new file mode 100644
index 00000000..189b3c48
Binary files /dev/null and b/readme/full.jpg differ
diff --git a/readme/full.png b/readme/full.png
deleted file mode 100644
index ccb7350d..00000000
Binary files a/readme/full.png and /dev/null differ
diff --git a/readme/plan.jpg b/readme/plan.jpg
new file mode 100644
index 00000000..9006c1cd
Binary files /dev/null and b/readme/plan.jpg differ
diff --git a/src/linker.app/Platforms/Android/AndroidManifest.xml b/src/linker.app/Platforms/Android/AndroidManifest.xml
index e3069077..bf3900db 100644
--- a/src/linker.app/Platforms/Android/AndroidManifest.xml
+++ b/src/linker.app/Platforms/Android/AndroidManifest.xml
@@ -14,7 +14,7 @@
+ android:supportsRtl="true" android:usesCleartextTraffic="true" android:networkSecurityConfig="@xml/network_security_config">
config = InitConfig();
-
+
InitLogger();
LinkerMessengerEntry.Initialize();
@@ -225,6 +224,8 @@ namespace linker.app
LinkerMessengerEntry.AddService();
LinkerMessengerEntry.Build();
+
+ Dictionary config = InitConfig();
LinkerMessengerEntry.Setup(ExcludeModule.Logger, config);
IPlatformApplication.Current.Services.GetService().SendOnInitialized();
diff --git a/src/linker.app/Platforms/Android/Resources/xml/network_security_config.xml b/src/linker.app/Platforms/Android/Resources/xml/network_security_config.xml
new file mode 100644
index 00000000..7aeaf310
--- /dev/null
+++ b/src/linker.app/Platforms/Android/Resources/xml/network_security_config.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/linker.app/linker.app.csproj b/src/linker.app/linker.app.csproj
index 90ad0b35..e688176e 100644
--- a/src/linker.app/linker.app.csproj
+++ b/src/linker.app/linker.app.csproj
@@ -28,7 +28,7 @@
com.snltty.linker.app
linker.app
- 1.7.6
+ 1.7.7
snltty
snltty
snltty
@@ -38,7 +38,7 @@
linker
- 1.7.6
+ 1.7.7
1
11.0
@@ -114,6 +114,7 @@
+
diff --git a/src/linker.libs/linker.libs.csproj b/src/linker.libs/linker.libs.csproj
index 8631b1b6..83e176f7 100644
--- a/src/linker.libs/linker.libs.csproj
+++ b/src/linker.libs/linker.libs.csproj
@@ -14,9 +14,9 @@
snltty
https://github.com/snltty/linker
https://github.com/snltty/linker
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
full
diff --git a/src/linker.messenger.access/linker.messenger.access.csproj b/src/linker.messenger.access/linker.messenger.access.csproj
index 521a840a..95d8479a 100644
--- a/src/linker.messenger.access/linker.messenger.access.csproj
+++ b/src/linker.messenger.access/linker.messenger.access.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger api access
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.action/linker.messenger.action.csproj b/src/linker.messenger.action/linker.messenger.action.csproj
index b33783fc..91efb98b 100644
--- a/src/linker.messenger.action/linker.messenger.action.csproj
+++ b/src/linker.messenger.action/linker.messenger.action.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger api action
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.api/linker.messenger.api.csproj b/src/linker.messenger.api/linker.messenger.api.csproj
index 748dfeff..8ffd7240 100644
--- a/src/linker.messenger.api/linker.messenger.api.csproj
+++ b/src/linker.messenger.api/linker.messenger.api.csproj
@@ -17,9 +17,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger api
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.channel/linker.messenger.channel.csproj b/src/linker.messenger.channel/linker.messenger.channel.csproj
index 3fe59c9d..21deb729 100644
--- a/src/linker.messenger.channel/linker.messenger.channel.csproj
+++ b/src/linker.messenger.channel/linker.messenger.channel.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger channel
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.decenter/linker.messenger.decenter.csproj b/src/linker.messenger.decenter/linker.messenger.decenter.csproj
index 562c5de0..fb26065e 100644
--- a/src/linker.messenger.decenter/linker.messenger.decenter.csproj
+++ b/src/linker.messenger.decenter/linker.messenger.decenter.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger decenter
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.entry/linker.messenger.entry.csproj b/src/linker.messenger.entry/linker.messenger.entry.csproj
index 44e6e52d..8abd1c51 100644
--- a/src/linker.messenger.entry/linker.messenger.entry.csproj
+++ b/src/linker.messenger.entry/linker.messenger.entry.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger entry
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.exroute/linker.messenger.exroute.csproj b/src/linker.messenger.exroute/linker.messenger.exroute.csproj
index f5bd913a..a4f8e2fd 100644
--- a/src/linker.messenger.exroute/linker.messenger.exroute.csproj
+++ b/src/linker.messenger.exroute/linker.messenger.exroute.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger exroute
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.flow/linker.messenger.flow.csproj b/src/linker.messenger.flow/linker.messenger.flow.csproj
index eb26b0e2..e3f0d396 100644
--- a/src/linker.messenger.flow/linker.messenger.flow.csproj
+++ b/src/linker.messenger.flow/linker.messenger.flow.csproj
@@ -17,9 +17,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger flow
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.forward/linker.messenger.forward.csproj b/src/linker.messenger.forward/linker.messenger.forward.csproj
index 65c6966e..6510375a 100644
--- a/src/linker.messenger.forward/linker.messenger.forward.csproj
+++ b/src/linker.messenger.forward/linker.messenger.forward.csproj
@@ -17,9 +17,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger forward
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.listen/linker.messenger.listen.csproj b/src/linker.messenger.listen/linker.messenger.listen.csproj
index 58bfce83..2979cd3a 100644
--- a/src/linker.messenger.listen/linker.messenger.listen.csproj
+++ b/src/linker.messenger.listen/linker.messenger.listen.csproj
@@ -17,9 +17,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger listen
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.logger/linker.messenger.logger.csproj b/src/linker.messenger.logger/linker.messenger.logger.csproj
index 7afa1867..c80edcf6 100644
--- a/src/linker.messenger.logger/linker.messenger.logger.csproj
+++ b/src/linker.messenger.logger/linker.messenger.logger.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger logger
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.pcp/linker.messenger.pcp.csproj b/src/linker.messenger.pcp/linker.messenger.pcp.csproj
index 003c4a46..793b5ae3 100644
--- a/src/linker.messenger.pcp/linker.messenger.pcp.csproj
+++ b/src/linker.messenger.pcp/linker.messenger.pcp.csproj
@@ -17,9 +17,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger pcp
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.plan/linker.messenger.plan.csproj b/src/linker.messenger.plan/linker.messenger.plan.csproj
index b75c235d..9ee8ecf5 100644
--- a/src/linker.messenger.plan/linker.messenger.plan.csproj
+++ b/src/linker.messenger.plan/linker.messenger.plan.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger plan
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.relay/client/transport/RelayClientTransportSelfHost.cs b/src/linker.messenger.relay/client/transport/RelayClientTransportSelfHost.cs
index f242de79..12837b8a 100644
--- a/src/linker.messenger.relay/client/transport/RelayClientTransportSelfHost.cs
+++ b/src/linker.messenger.relay/client/transport/RelayClientTransportSelfHost.cs
@@ -290,7 +290,7 @@ namespace linker.messenger.relay.client.transport
if (relayInfo.SSL)
{
sslStream = new SslStream(new NetworkStream(socket, false), false);
- await sslStream.AuthenticateAsServerAsync(messengerStore.Certificate,OperatingSystem.IsAndroid(), SslProtocols.Tls13 | SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls, false).ConfigureAwait(false);
+ await sslStream.AuthenticateAsServerAsync(messengerStore.Certificate, OperatingSystem.IsAndroid(), SslProtocols.Tls13 | SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls, false).ConfigureAwait(false);
}
return new TunnelConnectionTcp
{
diff --git a/src/linker.messenger.relay/linker.messenger.relay.csproj b/src/linker.messenger.relay/linker.messenger.relay.csproj
index 72ea23df..1b8373cd 100644
--- a/src/linker.messenger.relay/linker.messenger.relay.csproj
+++ b/src/linker.messenger.relay/linker.messenger.relay.csproj
@@ -18,9 +18,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger relay
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.serializer.aot/linker.messenger.serializer.aot.csproj b/src/linker.messenger.serializer.aot/linker.messenger.serializer.aot.csproj
index 0c551e57..dfa86363 100644
--- a/src/linker.messenger.serializer.aot/linker.messenger.serializer.aot.csproj
+++ b/src/linker.messenger.serializer.aot/linker.messenger.serializer.aot.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger serializer aot
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.serializer.memorypack/linker.messenger.serializer.memorypack.csproj b/src/linker.messenger.serializer.memorypack/linker.messenger.serializer.memorypack.csproj
index 5aec132a..15350ab9 100644
--- a/src/linker.messenger.serializer.memorypack/linker.messenger.serializer.memorypack.csproj
+++ b/src/linker.messenger.serializer.memorypack/linker.messenger.serializer.memorypack.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger serializer memorypack
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.sforward/linker.messenger.sforward.csproj b/src/linker.messenger.sforward/linker.messenger.sforward.csproj
index 497eb8ce..296eb307 100644
--- a/src/linker.messenger.sforward/linker.messenger.sforward.csproj
+++ b/src/linker.messenger.sforward/linker.messenger.sforward.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger sforward
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.signin/linker.messenger.signin.csproj b/src/linker.messenger.signin/linker.messenger.signin.csproj
index a849b0b8..a96d6ac9 100644
--- a/src/linker.messenger.signin/linker.messenger.signin.csproj
+++ b/src/linker.messenger.signin/linker.messenger.signin.csproj
@@ -17,9 +17,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger signin
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.socks5/linker.messenger.socks5.csproj b/src/linker.messenger.socks5/linker.messenger.socks5.csproj
index 2cf1850b..96943c02 100644
--- a/src/linker.messenger.socks5/linker.messenger.socks5.csproj
+++ b/src/linker.messenger.socks5/linker.messenger.socks5.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger socks5
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.store.file/linker.messenger.store.file.csproj b/src/linker.messenger.store.file/linker.messenger.store.file.csproj
index abd002fd..f7779b02 100644
--- a/src/linker.messenger.store.file/linker.messenger.store.file.csproj
+++ b/src/linker.messenger.store.file/linker.messenger.store.file.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger store file
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
@@ -37,10 +37,12 @@
embedded
-
+
+
-
+
+
diff --git a/src/linker.messenger.store.file/messenger/MessengerStore.cs b/src/linker.messenger.store.file/messenger/MessengerStore.cs
index 0a843718..1a77347b 100644
--- a/src/linker.messenger.store.file/messenger/MessengerStore.cs
+++ b/src/linker.messenger.store.file/messenger/MessengerStore.cs
@@ -2,7 +2,6 @@
using System.Reflection;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
-using System.Text.RegularExpressions;
namespace linker.messenger.store.file.messenger
{
@@ -17,110 +16,25 @@ namespace linker.messenger.store.file.messenger
{
this.fileConfig = fileConfig;
- if (OperatingSystem.IsAndroid())
- {
- certificate = LoadCertificate(str);
- }
- else
- {
- using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream($"linker.messenger.store.file.{Helper.GlobalString}.pfx");
- using MemoryStream memoryStream = new MemoryStream();
- stream.CopyTo(memoryStream);
- certificate = new X509Certificate2(memoryStream.ToArray(), Helper.GlobalString, X509KeyStorageFlags.Exportable);
- }
- if (certificate == null)
- {
- Environment.Exit(0);
- }
- try
- {
- File.Delete($"{Helper.GlobalString}.pfx");
- }
- catch (Exception)
- {
- }
- }
+ using Stream streamPublic = Assembly.GetExecutingAssembly().GetManifestResourceStream($"linker.messenger.store.file.publickey.pem");
+ using Stream streamPrivate = Assembly.GetExecutingAssembly().GetManifestResourceStream($"linker.messenger.store.file.privatekey.pem");
- private string str = @"-----BEGIN CERTIFICATE-----
-MIIFGTCCBAGgAwIBAgISBl90jCZ1O8KnWcG9z3hBRB92MA0GCSqGSIb3DQEBCwUA
-MDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQD
-EwNSMTEwHhcNMjUwMzIwMDg1ODE3WhcNMjUwNjE4MDg1ODE2WjAXMRUwEwYDVQQD
-DAwqLnNubHR0eS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC7
-7m9vY6IsWrlxtcsoKX3ebk8FZ8i2HFQz0sO/jBOzfLZeOtXdYpAO+focWQoMiWFU
-Gl6l9WP3xdwG890aQ23QqGGZwOWG+KlT8LgrIt2/lEq0OQ6apxaHav7IAyB09kNh
-M1oyXtYA5fuH9sJ+unjbL4a7F5lOxUyumwSigPdOEvBzLL4GJsKQgCsyfumeAz+S
-Y6ay4Ckwp0zluLwvw8IFhLmIbk7IXBwyr7ZN5ZCx7TpUN18efLDZcdQa/mTwQrCI
-66ralfkXp/t6uW4FLmi7Bygxqf8XE5WQ5ES6U8Xw9pmeJlUmHCuPnvlP06Dwj5Y0
-K6n8NuEZ/8kWQSoD6jxzAgMBAAGjggJBMIICPTAOBgNVHQ8BAf8EBAMCBaAwHQYD
-VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0O
-BBYEFCLxyWr4VY/fhtCl5YOi4PbKlH65MB8GA1UdIwQYMBaAFMXPRqTq9MPAemyV
-xC2wXpIvJuO5MFcGCCsGAQUFBwEBBEswSTAiBggrBgEFBQcwAYYWaHR0cDovL3Ix
-MS5vLmxlbmNyLm9yZzAjBggrBgEFBQcwAoYXaHR0cDovL3IxMS5pLmxlbmNyLm9y
-Zy8wFwYDVR0RBBAwDoIMKi5zbmx0dHkuY29tMBMGA1UdIAQMMAowCAYGZ4EMAQIB
-MC8GA1UdHwQoMCYwJKAioCCGHmh0dHA6Ly9yMTEuYy5sZW5jci5vcmcvMTE5LmNy
-bDCCAQQGCisGAQQB1nkCBAIEgfUEgfIA8AB3ABNK3xq1mEIJeAxv70x6kaQWtyNJ
-zlhXat+u2qfCq+AiAAABlbL750kAAAQDAEgwRgIhALNrxvjVBcl4MMuOY9EvxIga
-R975F8z8hFyrNvnU6q+LAiEAopIUdkaOlTYd8vd/IcpDB22HNY7jtjhVh+PMfq18
-sAsAdQBOdaMnXJoQwzhbbNTfP1LrHfDgjhuNacCx+mSxYpo53wAAAZWy++5kAAAE
-AwBGMEQCIFbq4pwZ2OSvUyj89qqiFT2jUtA0fl6osPQVLUI3WgqqAiBNsQKOPEnO
-RR/aP2AgD9j1XymGzs77uaXw3FfYFeiFpjANBgkqhkiG9w0BAQsFAAOCAQEAkU1I
-5+b6t55vQkMeeGUGjImq0cdCIaoTn4ViH36nRYzq1W3d6+9fw4U8LiFuy6qnamcu
-abdpzUZkyZyeqE/N5cpSWLggC0KYJupd2TgA1WKZULKBwwJcrftiqTsyb76rL1nY
-SIUwK7xAoNM3Oaps9MZuTs1wwgOw0jD+Z5hOgDs9oAb6IzOY1mMb4pX2iKnx8CVI
-rGCEDOOyniB6RzmmSZRWwghI/GqZZEaUxlrt/y7t5jZFVNvCcez/eJKci1+xXpP3
-fZ/TnkUdWkXazGE3YNqfTwW8LvZ0VlbT62kwiKhonW9u4HWFrz0/TwreyHPpuWRH
-UrFq2/AYFWWc14AHog==
------END CERTIFICATE-----
------BEGIN RSA PRIVATE KEY-----
-MIIEpgIBAAKCAQEAu+5vb2OiLFq5cbXLKCl93m5PBWfIthxUM9LDv4wTs3y2XjrV
-3WKQDvn6HFkKDIlhVBpepfVj98XcBvPdGkNt0KhhmcDlhvipU/C4KyLdv5RKtDkO
-mqcWh2r+yAMgdPZDYTNaMl7WAOX7h/bCfrp42y+GuxeZTsVMrpsEooD3ThLwcyy+
-BibCkIArMn7pngM/kmOmsuApMKdM5bi8L8PCBYS5iG5OyFwcMq+2TeWQse06VDdf
-Hnyw2XHUGv5k8EKwiOuq2pX5F6f7erluBS5ouwcoMan/FxOVkOREulPF8PaZniZV
-Jhwrj575T9Og8I+WNCup/DbhGf/JFkEqA+o8cwIDAQABAoIBAQCWVPitSS0sf/KC
-RKNb4D0A1oq9zzSegPDWd84AhwQneybDIBt+Od71LABn9s30E11ZErMN3Mt4I72L
-jj4bST8qP9e7T7QMERQawqAAWaa7HtvXaSEGk4yRDQT8aIvpJCnoMlT/oB9enppk
-O/9/spkE9PK47PrFKUzbC8RcXf/2Ygyy8e1zsq/GwlpQoEO8/jNHE5qUDiPH7XCx
-gXUY0CvYNOhq/UIWdnaRq+zjDS+UZAfVSyTkISbMruLbpxVA2DI+IWhZ/srLatZk
-sg7HliTqQ8GftJCCwylMYxvdc8hinOvQ+MyOP4A2l0tG7bivwpD+KN+UYJzKWr4C
-2nSq65gxAoGBAPb+rOEb9nr6Rh31JuLIDIQhVuyZ9WzeHNus8AE9UEJpoUHznAsD
-CDQHC/fwTg6Va6ntHDnTOzC+buvBGsew2f8S5Kq9y0y19GMG0QxGsGa68V/3fJ1Y
-aoP69f28nl6wLfKGsfRVbkmkTSGo9uVClrGZnhI9DKolDIIs2aVh21tLAoGBAMLI
-feNhxtNJgvd/94nXEpReuokA7qSZhDuUmz7Zj3OOMUW+hnGEhoQR3SW7iekR8hr2
-BZNptQMWZfcDPNSFRm13W3ZTu0NbvbHgdpUJ44CBq9jmqNjD9dOvGLw2rqaUttO5
-ap05fcGzG2pOjhizmK5go697irhJpC68thrwoIJ5AoGBAO0wPiZiqv0H0EO+g1wu
-jc5pEcdeRdAJMB9I4KXgEm3kcCYcYdI1VDBaQAUWMG9S0DQ7beqdzW6OwYgGRchU
-LdQEebD5V/zPkuNxzViDnazZgygMSw/ysz8Qxh+nfVIiz8zhyox/acywSh2z23zn
-yDy+74xGMh5GO8/acBugcH0nAoGBAIJjshnnlzBTUm+Z4zwLlC1sKFSUIixfc+xq
-c24kN2o0cnlsrBULkPyR9MdQfmZeFALGVD81EO4rLUCokyz0touKzdgs/vt9S0Pq
-rZbhUsDwjPgamEbbDxGQce90b3+lp6mdwmfTV4K2AhEs2uRgPUHmAUz0V408BsMe
-oozwLZKJAoGBAKEpU57UZEG35jV42nFUAKx3e5FV5pok+lHfqbPhRi9ym6Aro+8h
-nbzbVVlqAIMHcIHb8XeXqvakATt7SdJfxKSWjLA64FJP4n7hpT5T5Kq/jvIBBClz
-Yr8Vb0yL3MbH7U/USqY5OLGA4E5C+MYoOYndlfQHO8r2A+ZQ9v3cs4iM
------END RSA PRIVATE KEY-----";
+ using StreamReader readerPublic = new StreamReader(streamPublic);
+ using StreamReader readerPrivate = new StreamReader(streamPrivate);
- private bool VerifyCertificate(string str)
- {
- return str.StartsWith("-----BEGIN CERTIFICATE-----") && str.EndsWith("-----END RSA PRIVATE KEY-----");
- }
- private X509Certificate2 LoadCertificate(string str)
- {
- if (VerifyCertificate(str) == false) return null;
+ RSA rsaPrivateKey = RSA.Create();
+ rsaPrivateKey.ImportFromPem(readerPrivate.ReadToEnd());
- X509Certificate2 certificate = new X509Certificate2(GetBase64Content(str, "-----BEGIN CERTIFICATE-----", "-----END CERTIFICATE-----"));
+ using X509Certificate2 publicCert = X509Certificate2.CreateFromPem(readerPublic.ReadToEnd());
+ certificate = publicCert.CopyWithPrivateKey(rsaPrivateKey);
- using RSA rsa = RSA.Create();
- rsa.ImportRSAPrivateKey(GetBase64Content(str, "-----BEGIN RSA PRIVATE KEY-----", "-----END RSA PRIVATE KEY-----"), out _);
- return certificate.CopyWithPrivateKey(rsa);
- }
- private byte[] GetBase64Content(ReadOnlySpan chars, ReadOnlySpan startChars, ReadOnlySpan endChars)
- {
- int start = chars.IndexOf(startChars) + startChars.Length;
- int end = chars.IndexOf(endChars) - start;
- chars = chars.Slice(start, end);
-
- str = chars.ToString();
- return Convert.FromBase64String(Regex.Replace(str, @"\r\n?|\n", ""));
+ if (OperatingSystem.IsAndroid() == false)
+ {
+ //不导出不支持windows什么的
+ byte[] pfxBytes = certificate.Export(X509ContentType.Pfx, Helper.GlobalString);
+ certificate.Dispose();
+ certificate = new X509Certificate2(pfxBytes, Helper.GlobalString);
+ }
}
}
}
diff --git a/src/linker.messenger.store.file/privatekey.pem b/src/linker.messenger.store.file/privatekey.pem
new file mode 100644
index 00000000..d29fb370
--- /dev/null
+++ b/src/linker.messenger.store.file/privatekey.pem
@@ -0,0 +1,27 @@
+-----BEGIN RSA PRIVATE KEY-----
+MIIEpAIBAAKCAQEAzgMkrdHs4MWLwKE+eLcduO+52TTQftM76qaE/O9DNPmTjAlk
+OCiPEXe3ll3zkdMJbnLZoKTctyS/uWWKzqO5y37i7YsCK+zQtvfvv3BY7SxRm3Np
+PO/BIayKbQFzMwOKFUDyyvGn6e8VQHTaDiJ9TKBm+/tr/f/65jrIMwA2QlDUV6kF
+c8+LrxRBn9KnpmHj4KtPG8KZuBNyycOaMoK5txiV/iCn7A8wgSfk1TpZx/jkU6L4
+GuctmYwMVbBSgID52cLPtgZF5Zqlkbm3UFpJcarKmq1bNU9Qm355ajY3zAAr2OHx
+mkiPXgsfulHvyZzp/Uw6BA5yHZPSqTO1Bf9B0QIDAQABAoIBAQCUkAW6Z8GYEj2G
+64DekscXX6E5dvHIE9KIlA8hS/W+VSDHAtrH+M+7fAbjo9sLVRHfGWnBhEI6vICa
+VRS1kbJhgp5pSS6GuJ+G4uN8vasTVjt/i8nfjNJM01174GjP6ASC8TRlj8FUXPqJ
+YfsB6HNNd/rsSlKFeDzaHJfU15lJVi+bpZW3ySlMaIKeK/f1zDn9++jCaral+uhq
+O55qIJJw9tUx4oRYP4hmbIkBc10jw6sH58tAvkAdJwWRx8e8BCAKb+xtcsZ64TT/
+TPlKnKjncUn4zOichUmN2ayRPmYuX9EfQBPXRfrqL6GfGL07Lq3keMyxp9at3ZTR
+HvihW1TlAoGBAOiC+31kDwK+Qncq0ykd4xwou0eGoXXRWn7R07psnYCY0eHHY6hJ
+hjf+WZQ9KRiPJUdmQ5e9/VMvbeFAIcDcxZI6sM+588TxGbfTq8CQPq/TtSFqH7kG
+V3VntfoQxWXiGd1ItBHBBYSJBTOlYOuhVnn5C5y6yAAntL59gW3IFZMDAoGBAOLS
+21a6uI+glSD2wgvTC26bVRio4xoi9Xo15LOJNjzwh8peqT946d9cf8lDNlyQnzqa
+52D3eiOscIU0EUQv14cypjaT7d2IxaKX55lxsKpnJY2pTxyF+6nvtyEQ9asZP00R
+XJZ4xlDSHecxJPjCzdbQgK1Zi00A8nu1KGm+oBWbAoGBAIRgDk6VaPZm2/B8sTv3
+iBXAGt/eBo7NYnhRffnlXMaaOuQQYOyu73txlA6Rw5P364F694Cs6k0x850Kpizn
+hJR8Va3ucJrvqXS/TkmT1hzEq5sakHUG50Qwh6qXYctfrtoNSnfRLRMH7643ubZt
+ZI6M+89/h96OvJi3W7jk8WOBAoGAT4ptzF4yNnuzkBm4NnlNuv3Ru5IOAa5csvyP
+NL5bPMeEdtz3MQDv0poXXbaqK4+zptOHbCOcu0HPO4bkvyqfxBNo4h7B/TvnQntO
+hiquLzN4odLLoU8Cz7b2WywdWmDCJ/58n2++67yjK925/1og4MHBPgj2pow8fFEs
+2Ng2Px0CgYBMNd3BD+37pOiwC+7AjVclj8MnfFYR38UFo9HpD6662uDrS4aB+2Ly
+IbMSttd+WpZI5w1CBgLMRRdxYBrQPrfyGEicZ5OXU9IA9iubLth/NUj1gD5tQooS
+yGsBK3umOUjCR4IUHZV3OFNTlCCezIqmY7oHjVNIOCeU6t0DcGADQQ==
+-----END RSA PRIVATE KEY-----
\ No newline at end of file
diff --git a/src/linker.messenger.store.file/publickey.pem b/src/linker.messenger.store.file/publickey.pem
new file mode 100644
index 00000000..0839e2ff
--- /dev/null
+++ b/src/linker.messenger.store.file/publickey.pem
@@ -0,0 +1,60 @@
+-----BEGIN CERTIFICATE-----
+MIIFGTCCBAGgAwIBAgISBjkj+2wqYnhmIOBKjuLhgti5MA0GCSqGSIb3DQEBCwUA
+MDMxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQwwCgYDVQQD
+EwNSMTEwHhcNMjUwNDE2MDc1NjMwWhcNMjUwNzE1MDc1NjI5WjAXMRUwEwYDVQQD
+DAwqLnNubHR0eS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDO
+AySt0ezgxYvAoT54tx2477nZNNB+0zvqpoT870M0+ZOMCWQ4KI8Rd7eWXfOR0wlu
+ctmgpNy3JL+5ZYrOo7nLfuLtiwIr7NC29++/cFjtLFGbc2k878EhrIptAXMzA4oV
+QPLK8afp7xVAdNoOIn1MoGb7+2v9//rmOsgzADZCUNRXqQVzz4uvFEGf0qemYePg
+q08bwpm4E3LJw5oygrm3GJX+IKfsDzCBJ+TVOlnH+ORTovga5y2ZjAxVsFKAgPnZ
+ws+2BkXlmqWRubdQWklxqsqarVs1T1CbfnlqNjfMACvY4fGaSI9eCx+6Ue/JnOn9
+TDoEDnIdk9KpM7UF/0HRAgMBAAGjggJBMIICPTAOBgNVHQ8BAf8EBAMCBaAwHQYD
+VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0O
+BBYEFHXfGYdowCa+nqBwrrr5opUwluF+MB8GA1UdIwQYMBaAFMXPRqTq9MPAemyV
+xC2wXpIvJuO5MFcGCCsGAQUFBwEBBEswSTAiBggrBgEFBQcwAYYWaHR0cDovL3Ix
+MS5vLmxlbmNyLm9yZzAjBggrBgEFBQcwAoYXaHR0cDovL3IxMS5pLmxlbmNyLm9y
+Zy8wFwYDVR0RBBAwDoIMKi5zbmx0dHkuY29tMBMGA1UdIAQMMAowCAYGZ4EMAQIB
+MC4GA1UdHwQnMCUwI6AhoB+GHWh0dHA6Ly9yMTEuYy5sZW5jci5vcmcvNTguY3Js
+MIIBBQYKKwYBBAHWeQIEAgSB9gSB8wDxAHcAEvFONL1TckyEBhnDjz96E/jntWKH
+iJxtMAWE6+WGJjoAAAGWPc8KlAAABAMASDBGAiEA6t/GvDP8n8j83UckIBKrLyol
+o5s+ZQNqgvpOuBsUP2sCIQDt6nySUZ37C5A4URe3bpuWokq8WmkItwQg5HbKpRbs
+dgB2AKRCxQZJYGFUjw/U6pz7ei0mRU2HqX8v30VZ9idPOoRUAAABlj3PCp4AAAQD
+AEcwRQIhANFH1snhNEtKWgQks3eBcgEGJQb4Okd3qz2lkdxm53nEAiBkxCL88a0l
+DOdfc4D/Lkf6yEp3REmSutvRUro0mtHE7jANBgkqhkiG9w0BAQsFAAOCAQEAtETy
+HeMqDRmiR4VVyLGP8KqMukF/Ly5NrHX//3pZEqJfAwr5NUFUowFQa9NksOA91FHN
+XdINWBj9xnW7NOdbBGyfIaHe3eLHFwK0kaikD/Z+M1ybjPCeS2kjCVLf52lTCYdl
+8qQPoRbQ4/cXqYvIwIJBbTI6v/HyakZuactNpQYzN3w7E0rv4fV0x2eIfKhPnDvM
+kqlZATtXJri4xd6a93INZRmkTWub0NEfdZg1UW2s/k3/L0aaieowXGQhXMFqz+DF
+0v25QWpvCiD7bBIiB3/7L02NReD4rNb3NgShxkY5GBtpb9AJnqhBM4TeGukQ7lj/
+GFbeL1bHmi6+PIqTyA==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIFBjCCAu6gAwIBAgIRAIp9PhPWLzDvI4a9KQdrNPgwDQYJKoZIhvcNAQELBQAw
+TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
+cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjQwMzEzMDAwMDAw
+WhcNMjcwMzEyMjM1OTU5WjAzMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
+RW5jcnlwdDEMMAoGA1UEAxMDUjExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAuoe8XBsAOcvKCs3UZxD5ATylTqVhyybKUvsVAbe5KPUoHu0nsyQYOWcJ
+DAjs4DqwO3cOvfPlOVRBDE6uQdaZdN5R2+97/1i9qLcT9t4x1fJyyXJqC4N0lZxG
+AGQUmfOx2SLZzaiSqhwmej/+71gFewiVgdtxD4774zEJuwm+UE1fj5F2PVqdnoPy
+6cRms+EGZkNIGIBloDcYmpuEMpexsr3E+BUAnSeI++JjF5ZsmydnS8TbKF5pwnnw
+SVzgJFDhxLyhBax7QG0AtMJBP6dYuC/FXJuluwme8f7rsIU5/agK70XEeOtlKsLP
+Xzze41xNG/cLJyuqC0J3U095ah2H2QIDAQABo4H4MIH1MA4GA1UdDwEB/wQEAwIB
+hjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwEgYDVR0TAQH/BAgwBgEB
+/wIBADAdBgNVHQ4EFgQUxc9GpOr0w8B6bJXELbBeki8m47kwHwYDVR0jBBgwFoAU
+ebRZ5nu25eQBc4AIiMgaWPbpm24wMgYIKwYBBQUHAQEEJjAkMCIGCCsGAQUFBzAC
+hhZodHRwOi8veDEuaS5sZW5jci5vcmcvMBMGA1UdIAQMMAowCAYGZ4EMAQIBMCcG
+A1UdHwQgMB4wHKAaoBiGFmh0dHA6Ly94MS5jLmxlbmNyLm9yZy8wDQYJKoZIhvcN
+AQELBQADggIBAE7iiV0KAxyQOND1H/lxXPjDj7I3iHpvsCUf7b632IYGjukJhM1y
+v4Hz/MrPU0jtvfZpQtSlET41yBOykh0FX+ou1Nj4ScOt9ZmWnO8m2OG0JAtIIE38
+01S0qcYhyOE2G/93ZCkXufBL713qzXnQv5C/viOykNpKqUgxdKlEC+Hi9i2DcaR1
+e9KUwQUZRhy5j/PEdEglKg3l9dtD4tuTm7kZtB8v32oOjzHTYw+7KdzdZiw/sBtn
+UfhBPORNuay4pJxmY/WrhSMdzFO2q3Gu3MUBcdo27goYKjL9CTF8j/Zz55yctUoV
+aneCWs/ajUX+HypkBTA+c8LGDLnWO2NKq0YD/pnARkAnYGPfUDoHR9gVSp/qRx+Z
+WghiDLZsMwhN1zjtSC0uBWiugF3vTNzYIEFfaPG7Ws3jDrAMMYebQ95JQ+HIBD/R
+PBuHRTBpqKlyDnkSHDHYPiNX3adPoPAcgdF3H2/W0rmoswMWgTlLn1Wu0mrks7/q
+pdWfS6PJ1jty80r2VKsM/Dj3YIDfbjXKdaFU5C+8bhfJGqU3taKauuz0wHVGT3eo
+6FlWkWYtbt4pgdamlwVeZEW+LM7qZEJEsMNPrfC03APKmZsJgpWCDWOKZvkZcvjV
+uYkQ4omYCTX5ohy+knMjdOmdH9c7SpqEWBDC86fiNex+O0XOMEZSa8DA
+-----END CERTIFICATE-----
\ No newline at end of file
diff --git a/src/linker.messenger.store.file/snltty.pfx b/src/linker.messenger.store.file/snltty.pfx
deleted file mode 100644
index 2978ddba..00000000
Binary files a/src/linker.messenger.store.file/snltty.pfx and /dev/null differ
diff --git a/src/linker.messenger.sync/linker.messenger.sync.csproj b/src/linker.messenger.sync/linker.messenger.sync.csproj
index e87e4ef3..423152aa 100644
--- a/src/linker.messenger.sync/linker.messenger.sync.csproj
+++ b/src/linker.messenger.sync/linker.messenger.sync.csproj
@@ -18,9 +18,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger sync
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.tunnel/linker.messenger.tunnel.csproj b/src/linker.messenger.tunnel/linker.messenger.tunnel.csproj
index 0da0f2e9..d37cc7fd 100644
--- a/src/linker.messenger.tunnel/linker.messenger.tunnel.csproj
+++ b/src/linker.messenger.tunnel/linker.messenger.tunnel.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger tunnel
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.tuntap/linker.messenger.tuntap.csproj b/src/linker.messenger.tuntap/linker.messenger.tuntap.csproj
index 6715dbfe..5b1c289b 100644
--- a/src/linker.messenger.tuntap/linker.messenger.tuntap.csproj
+++ b/src/linker.messenger.tuntap/linker.messenger.tuntap.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger tuntap
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger.updater/linker.messenger.updater.csproj b/src/linker.messenger.updater/linker.messenger.updater.csproj
index df0e8680..196a51e9 100644
--- a/src/linker.messenger.updater/linker.messenger.updater.csproj
+++ b/src/linker.messenger.updater/linker.messenger.updater.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger updater
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.messenger/linker.messenger.csproj b/src/linker.messenger/linker.messenger.csproj
index f36ac4bc..d8a41258 100644
--- a/src/linker.messenger/linker.messenger.csproj
+++ b/src/linker.messenger/linker.messenger.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker messenger
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.snat/linker.snat.csproj b/src/linker.snat/linker.snat.csproj
index d8b1cf33..e68007cb 100644
--- a/src/linker.snat/linker.snat.csproj
+++ b/src/linker.snat/linker.snat.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker snat
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.tun/LinkerLinuxTunDevice.cs b/src/linker.tun/LinkerLinuxTunDevice.cs
index 29d4c3c3..2dd59c76 100644
--- a/src/linker.tun/LinkerLinuxTunDevice.cs
+++ b/src/linker.tun/LinkerLinuxTunDevice.cs
@@ -72,7 +72,7 @@ namespace linker.tun
string str = CommandHelper.Linux(string.Empty, new string[] { $"ifconfig" });
if (str.Contains(Name) == false)
{
- error = CommandHelper.Linux(string.Empty, new string[] { $"ip tuntap add mode tun dev {Name}" });
+ CommandHelper.Linux(string.Empty, new string[] { $"ip tuntap add mode tun dev {Name}" },out error);
return false;
}
diff --git a/src/linker.tun/LinkerWinTunDevice.cs b/src/linker.tun/LinkerWinTunDevice.cs
index 1effbd82..29cc910d 100644
--- a/src/linker.tun/LinkerWinTunDevice.cs
+++ b/src/linker.tun/LinkerWinTunDevice.cs
@@ -51,17 +51,23 @@ namespace linker.tun
return false;
}
Guid guid = Guid.Parse("771EF382-8718-5BC5-EBF0-A28B86142278");
- adapter = WinTun.WintunCreateAdapter(name, name, ref guid);
+
+ for (int i = 0; i < 5; i++)
+ {
+ if ((adapter = WinTun.WintunCreateAdapter(name, name, ref guid)) == 0 && (adapter = WinTun.WintunOpenAdapter(name)) == 0)
+ {
+ Shutdown();
+ Thread.Sleep(2000);
+ continue;
+ }
+ break;
+ }
if (adapter == 0)
{
- adapter = WinTun.WintunOpenAdapter(name);
- if (adapter == 0)
- {
- error = ($"Failed to create adapter {Marshal.GetLastWin32Error()}");
- Shutdown();
- return false;
- }
+ error = ($"Failed to create adapter {Marshal.GetLastWin32Error()}");
+ return false;
}
+
uint version = WinTun.WintunGetRunningDriverVersion();
session = WinTun.WintunStartSession(adapter, 0x400000);
if (session == 0)
@@ -234,7 +240,7 @@ namespace linker.tun
{
return;
}
-
+
winDivertNAT.Setup(new LinkerSrcNat.SetupInfo
{
Src = address,
diff --git a/src/linker.tun/linker.tun.csproj b/src/linker.tun/linker.tun.csproj
index 02e9d8a7..30cec13b 100644
--- a/src/linker.tun/linker.tun.csproj
+++ b/src/linker.tun/linker.tun.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker tun
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.tunnel/connection/TunnelConnectionTcp.cs b/src/linker.tunnel/connection/TunnelConnectionTcp.cs
index 2c9a6298..107d4f8b 100644
--- a/src/linker.tunnel/connection/TunnelConnectionTcp.cs
+++ b/src/linker.tunnel/connection/TunnelConnectionTcp.cs
@@ -7,7 +7,6 @@ using System.Text.Json.Serialization;
using System.Text;
using System.Net.Sockets;
using System.IO.Pipelines;
-using System;
namespace linker.tunnel.connection
{
diff --git a/src/linker.tunnel/linker.tunnel.csproj b/src/linker.tunnel/linker.tunnel.csproj
index ae6f1135..007ff88d 100644
--- a/src/linker.tunnel/linker.tunnel.csproj
+++ b/src/linker.tunnel/linker.tunnel.csproj
@@ -16,9 +16,9 @@
https://github.com/snltty/linker
https://github.com/snltty/linker
linker tunnel
- 1.7.6
- 1.7.6
- 1.7.6
+ 1.7.7
+ 1.7.7
+ 1.7.7
diff --git a/src/linker.web/src/views/full/status/Api.vue b/src/linker.web/src/views/full/status/Api.vue
index 50c28f2c..bf330183 100644
--- a/src/linker.web/src/views/full/status/Api.vue
+++ b/src/linker.web/src/views/full/status/Api.vue
@@ -39,7 +39,7 @@ export default {