mirror of
https://github.com/snltty/linker.git
synced 2025-12-19 01:46:46 +08:00
192
This commit is contained in:
12
.github/workflows/docker.yml
vendored
12
.github/workflows/docker.yml
vendored
@@ -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.9.1 snltty/linker-musl:amd64 snltty/linker-musl:arm64 snltty/linker-musl:arm && \
|
||||
docker manifest create snltty/linker-musl:v1.9.2 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.9.1 && \
|
||||
docker manifest push snltty/linker-musl:v1.9.2 && \
|
||||
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.9.1 snltty/linker-debian:amd64 snltty/linker-debian:arm64 snltty/linker-debian:arm && \
|
||||
docker manifest create snltty/linker-debian:v1.9.2 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.9.1 && \
|
||||
docker manifest push snltty/linker-debian:v1.9.2 && \
|
||||
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.9.1 snltty/linker-kvm:amd64 snltty/linker-kvm:arm64 snltty/linker-kvm:arm && \
|
||||
docker manifest create snltty/linker-kvm:v1.9.2 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.9.1
|
||||
docker manifest push snltty/linker-kvm:v1.9.2
|
||||
26
.github/workflows/dotnet.yml
vendored
26
.github/workflows/dotnet.yml
vendored
@@ -17,11 +17,11 @@ jobs:
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.ACTIONS_TOKEN }}
|
||||
with:
|
||||
tag_name: v1.9.1
|
||||
release_name: v1.9.1.${{ steps.date.outputs.today }}
|
||||
tag_name: v1.9.2
|
||||
release_name: v1.9.2.${{ steps.date.outputs.today }}
|
||||
draft: false
|
||||
prerelease: false
|
||||
body: "1. 一些累计更新\r\n2. 服务器转发多节点\r\n3. 新增一个UDP同时打开的打洞协议,优化了一下其它打洞协议\r\n4. 一些代码优化,修复一些错误,其它一些小改变"
|
||||
body: "1. 一些累计更新,一些BUG修复\r\n2. 使用代理方式重写应用层NAT\r\n3. 新增服务端webapi,对外提供公开数据,监听1803端口,设置为0则不监听\r\n4. 去除TCP包合并选项,TCP隧道默认使用pipelines管道\r\n5. 修复中继列表能看到节点但无法中继的BUG"
|
||||
- name: setup node.js
|
||||
uses: actions/setup-node@v2
|
||||
with:
|
||||
@@ -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.9.1/linker-win-x86.zip
|
||||
target-path: /downloads/linker/v1.9.2/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.9.1/linker-win-x64.zip
|
||||
target-path: /downloads/linker/v1.9.2/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.9.1/linker-win-arm64.zip
|
||||
target-path: /downloads/linker/v1.9.2/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.9.1/linker-linux-x64.zip
|
||||
target-path: /downloads/linker/v1.9.2/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.9.1/linker-linux-arm.zip
|
||||
target-path: /downloads/linker/v1.9.2/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.9.1/linker-linux-arm64.zip
|
||||
target-path: /downloads/linker/v1.9.2/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.9.1/linker-linux-musl-x64.zip
|
||||
target-path: /downloads/linker/v1.9.2/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.9.1/linker-linux-musl-arm.zip
|
||||
target-path: /downloads/linker/v1.9.2/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.9.1/linker-linux-musl-arm64.zip
|
||||
target-path: /downloads/linker/v1.9.2/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.9.1/linker.apk
|
||||
target-path: /downloads/linker/v1.9.2/linker.apk
|
||||
- name: upload-apk
|
||||
id: upload-apk
|
||||
uses: actions/upload-release-asset@master
|
||||
|
||||
6
.github/workflows/ipk.yml
vendored
6
.github/workflows/ipk.yml
vendored
@@ -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.9.1/linker-x64.ipk
|
||||
target-path: /downloads/linker/v1.9.2/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.9.1/linker-arm.ipk
|
||||
target-path: /downloads/linker/v1.9.2/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.9.1/linker-arm64.ipk
|
||||
target-path: /downloads/linker/v1.9.2/linker-arm64.ipk
|
||||
- name: upload-arm64
|
||||
id: upload-arm64
|
||||
uses: actions/upload-release-asset@master
|
||||
|
||||
64
.github/workflows/nuget.yml
vendored
64
.github/workflows/nuget.yml
vendored
@@ -90,35 +90,35 @@ jobs:
|
||||
|
||||
- name: Push
|
||||
run: |
|
||||
dotnet nuget push ./src/linker.libs/bin/release/linker.libs.1.9.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.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.1.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
|
||||
dotnet nuget push ./src/linker.nat/bin/release/linker.nat.1.9.1.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.1.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.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.2.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
|
||||
dotnet nuget push ./src/linker.nat/bin/release/linker.nat.1.9.2.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.2.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
|
||||
|
||||
@@ -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.9.1" . --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.2" . --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.9.1" . --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.2" . --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.9.1" . --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.2" . --push
|
||||
cd ../../../../../
|
||||
done
|
||||
done
|
||||
@@ -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.9.1|g" public/publish-ipk/${r}/control/control
|
||||
sed -i "s|{version}|1.9.2|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
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<ApplicationId>com.snltty.linker.app</ApplicationId>
|
||||
|
||||
<Title>linker.app</Title>
|
||||
<Version>1.9.1</Version>
|
||||
<Version>1.9.2</Version>
|
||||
<Authors>snltty</Authors>
|
||||
<Company>snltty</Company>
|
||||
<Copyright>snltty</Copyright>
|
||||
@@ -38,7 +38,7 @@
|
||||
<PackageReleaseNotes>linker</PackageReleaseNotes>
|
||||
|
||||
<!-- Versions -->
|
||||
<ApplicationDisplayVersion>1.9.1</ApplicationDisplayVersion>
|
||||
<ApplicationDisplayVersion>1.9.2</ApplicationDisplayVersion>
|
||||
<ApplicationVersion>1</ApplicationVersion>
|
||||
|
||||
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">11.0</SupportedOSPlatformVersion>
|
||||
|
||||
1
src/linker.app/public/web/css/229.c0fa650b.css
Normal file
1
src/linker.app/public/web/css/229.c0fa650b.css
Normal file
File diff suppressed because one or more lines are too long
1
src/linker.app/public/web/css/450.24466bee.css
Normal file
1
src/linker.app/public/web/css/450.24466bee.css
Normal file
File diff suppressed because one or more lines are too long
@@ -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.e9b4f2f4.js"></script><script defer="defer" src="js/app.a3656579.js"></script><link href="css/chunk-vendors.d8267b33.css" rel="stylesheet"><link href="css/app.e16885f2.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.e9b4f2f4.js"></script><script defer="defer" src="js/app.616a95f8.js"></script><link href="css/chunk-vendors.d8267b33.css" rel="stylesheet"><link href="css/app.e16885f2.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>
|
||||
1
src/linker.app/public/web/js/229.669053f4.js
Normal file
1
src/linker.app/public/web/js/229.669053f4.js
Normal file
@@ -0,0 +1 @@
|
||||
"use strict";(self["webpackChunklinker_web"]=self["webpackChunklinker_web"]||[]).push([[229],{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(30045),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(52417),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}}]);
|
||||
1
src/linker.app/public/web/js/450.e7d8c3d3.js
Normal file
1
src/linker.app/public/web/js/450.e7d8c3d3.js
Normal file
File diff suppressed because one or more lines are too long
1
src/linker.app/public/web/js/894.2dee0f05.js
Normal file
1
src/linker.app/public/web/js/894.2dee0f05.js
Normal file
File diff suppressed because one or more lines are too long
1
src/linker.app/public/web/js/app.616a95f8.js
Normal file
1
src/linker.app/public/web/js/app.616a95f8.js
Normal file
File diff suppressed because one or more lines are too long
@@ -15,14 +15,7 @@ slug: /exchange/tuntap/p2n
|
||||
|
||||
1. linux,已经自动添加NAT转发
|
||||
2. linux软路由docker,在`OpenWrt、群晖`或者其它软路由系统,可能需要在宿主机允许IP转发,可以在UI设置,也可以尝试`sysctl -w net.ipv4.ip_forward=1`允许IP转发,然后`iptables -t nat -A POSTROUTING -s 10.18.18.0/24 -j MASQUERADE`然后添加NAT,10.18.18.0/24是你的虚拟网卡网段
|
||||
3. windows,优先使用系统`NetNat`,`NetNat`失败则启用`内置SNAT`,但是性能应该没有`NetNat`好
|
||||
1. 由于`内置SNAT`依赖`WinDivert驱动`,如果报错`Windows 无法验证此文件的数字签名`什么的,可以尝试以下两种解决办法
|
||||
2. 使用`管理员身份运行cmd`执行以下两条命令,然后重启系统
|
||||
```
|
||||
BCDEDIT -SET LOADOPTIONS DISABLE_INTEGRITY_CHECKS
|
||||
BCDEDIT -SET TESTSIGNING ON
|
||||
```
|
||||
3. 或者安装一个<a href="https://www.microsoft.com/zh-cn/download/details.aspx?id=46148" target="_blank">KB3033929补丁</a>,然后重启系统
|
||||
3. windows,优先使用系统`NetNat`,`NetNat`失败则启用`内置DNAT`,但是性能应该没有`NetNat`好
|
||||
|
||||
:::danger[重点]
|
||||
1. 仅配置路由ip时,可以通过192.168.0.x访问对方的192.168.0.x
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
---
|
||||
sidebar_position: 101
|
||||
slug: /dev/snat
|
||||
---
|
||||
|
||||
# 98.101、单独使用应用层SNAT
|
||||
|
||||
|
||||
:::tip[说明]
|
||||
|
||||
|
||||
### 1、使用
|
||||
|
||||
有效解决win7/8,win server2008/2012无法使用`NetNat`的问题
|
||||
|
||||
如果你使用的是`linker.tun`类库,已经集成应用层SNAT,使用`LinkerTunDeviceAdapter.SetSystemNat`使用系统NAT和`LinkerTunDeviceAdapter.SetAppNat`使用应用层SNAT即可
|
||||
|
||||
|
||||
去<a href="https://reqrypt.org/windivert.html">windivert</a>下载抓包驱动,放置合适的`WinDivert.dll`和`WinDivert.sys`到程序根目录,然后 nuget 安装 `linker.snat`,然后编写代码
|
||||
|
||||
```c#
|
||||
|
||||
internal class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
//初始化
|
||||
LinkerSrcNat linkerSrcNat = new LinkerSrcNat();
|
||||
bool result = linkerSrcNat.Setup(new SetupInfo{
|
||||
//虚拟网卡IP
|
||||
Src = IPAddress.Parse("10.18.18.2"),
|
||||
//仅访问192.168.1.0/24时NAT
|
||||
Dsts = new AddrInfo[]{
|
||||
new AddrInfo(IPAddress.Parse("192.168.1.0"),24)
|
||||
},
|
||||
//本机局域网IP,用于替换为源IP
|
||||
InterfaceIp = IPAddress.Parse("192.168.1.2")
|
||||
},out string error);
|
||||
|
||||
//在将TCP/IP数据包写入网卡前增加一个操作
|
||||
if(linkerSrcNat.Inject(packet) == false)
|
||||
{
|
||||
//不需要NAT或者NAT失败,这里可以继续把数据包写入虚拟网卡
|
||||
}
|
||||
|
||||
//关闭
|
||||
linkerSrcNat.Shutdown();
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
### 1、原理图
|
||||
|
||||

|
||||
:::
|
||||
@@ -1,55 +0,0 @@
|
||||
---
|
||||
sidebar_position: 102
|
||||
slug: /dev/smap
|
||||
---
|
||||
|
||||
# 98.102、单独使用网段映射
|
||||
|
||||
:::tip[说明]
|
||||
|
||||
### 1、使用
|
||||
|
||||
有效解决使用虚拟网卡组网时,多个设备内网网段冲突的问题
|
||||
|
||||
如果你使用的是`linker.tun`类库,已经集成网段映射,使用`LinkerTunDeviceAdapter.SetMap`设置映射即可
|
||||
|
||||
在nuget 安装 `linker.snat`,然后编写代码
|
||||
|
||||
```c#
|
||||
|
||||
internal class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
//初始化
|
||||
LinkerDstMapping linkerDstMapping = new LinkerDstMapping();
|
||||
|
||||
//在喜欢的时候设置映射,随时都可以,设置为空数组就不启用了
|
||||
linkerDstMapping.SetDsts(new DstMapInfo[]{
|
||||
new DstMapInfo{
|
||||
//一个假IP。比如对方访问 192.168.188.2
|
||||
FakeIP = IPAddress.Parse("192.168.188.0"),
|
||||
//真实IP,实际访问到的IP
|
||||
RealIP = IPAddress.Parse("192.168.1.0"),
|
||||
//掩码,24替换前三段
|
||||
//当问192.168.188.2的时候,将会访问到192.168.1.2
|
||||
PrefixLength = 24,
|
||||
}
|
||||
});
|
||||
|
||||
//在收到对方发来的数据包写入网卡前使用,替换为真IP
|
||||
linkerDstMapping.ToRealDst(packet);
|
||||
//在从虚拟网卡读取到数据包发送给对方之前调用,还原为假IP
|
||||
linkerDstMapping.ToFakeDst(packet);
|
||||
|
||||
Console.ReadLine();
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
### 2、原理图
|
||||
|
||||

|
||||
|
||||
:::
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
|
Before Width: | Height: | Size: 153 KiB |
73
src/linker.doc.web/docs/9、公开数据api.md
Normal file
73
src/linker.doc.web/docs/9、公开数据api.md
Normal file
@@ -0,0 +1,73 @@
|
||||
---
|
||||
sidebar_position: 9
|
||||
slug: /webapi
|
||||
---
|
||||
|
||||
# 9、公开数据api
|
||||
|
||||
服务端默认监听1803端口,对外提供一些公开数据接口
|
||||
|
||||
公共服务器公开数据接口(使用了反向代理) https://api.linker.snltty.com
|
||||
|
||||
:::tip[1、在线设备数]
|
||||
|
||||
/flow/online.json
|
||||
|
||||
```
|
||||
{
|
||||
//当前服务器
|
||||
"CurrentServer": {
|
||||
"Online7day": 499, //七天内上线
|
||||
"Online": 197 //当前在线
|
||||
},
|
||||
//所有服务器
|
||||
"AllServer": {
|
||||
"Online7day": 1468, //七天内上线
|
||||
"Online": 644, //当前在线
|
||||
"Server": 285 //服务器数
|
||||
}
|
||||
}
|
||||
```
|
||||
:::
|
||||
|
||||
:::tip[2、设备区域信息]
|
||||
|
||||
/flow/citys.json
|
||||
|
||||
```
|
||||
[
|
||||
{
|
||||
"City": "Beijing", //城市
|
||||
"Lat": 39.938884, //纬度
|
||||
"Lon": 116.397459, //经度
|
||||
"Count": 56 //设备数
|
||||
}
|
||||
]
|
||||
```
|
||||
:::
|
||||
|
||||
:::tip[3、中继节点]
|
||||
|
||||
/relay/nodes.json
|
||||
|
||||
```
|
||||
[
|
||||
{
|
||||
|
||||
"AllowProtocol": 3, //允许的协议,1TCP 2UDP 3TCP+UDP
|
||||
"Name": "天龙上人-湖北-主服务器", //节点名称
|
||||
"Version": "v1.9.1", //节点版本
|
||||
"BandwidthMaxMbps": 300, //最大带宽
|
||||
"BandwidthConnMbps": 3, //连接带宽
|
||||
"BandwidthCurrentMbps": 0.03, //当前带宽负载
|
||||
"BandwidthGbMonth": 100, //每月流量
|
||||
"BandwidthByteAvailable": 12345,//可用流量字节
|
||||
"ConnectionMaxNum": 1000, //最大连接数
|
||||
"ConnectionCurrentNum": 6, //当前连接数
|
||||
"EndPoint": "0.0.0.0:0", //节点地址
|
||||
"Url": "https://linker-doc.snltty.com" //一个url
|
||||
}
|
||||
]
|
||||
```
|
||||
:::
|
||||
|
||||
@@ -14,9 +14,9 @@
|
||||
<Copyright>snltty</Copyright>
|
||||
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
|
||||
<Version>1.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
<DebugType>full</DebugType>
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
@@ -45,7 +45,6 @@
|
||||
<ProjectReference Include="..\linker.messenger.sync\linker.messenger.sync.csproj" />
|
||||
<ProjectReference Include="..\linker.messenger\linker.messenger.csproj" />
|
||||
<ProjectReference Include="..\linker.nat\linker.nat.csproj" />
|
||||
<ProjectReference Include="..\linker.snat\linker.nat.csproj" />
|
||||
<ProjectReference Include="..\linker.tun\linker.tun.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -15,7 +15,12 @@ namespace linker.messenger.tunnel
|
||||
}
|
||||
public async Task<string> Invoke(string host, Dictionary<string, string> args)
|
||||
{
|
||||
args.TryAdd("tunnelNet", new SignInArgsNetInfo { Lat = tunnelClientStore.Network.Net.Lat, Lon = tunnelClientStore.Network.Net.Lon, City = tunnelClientStore.Network.Net.City }.ToJson());
|
||||
args.TryAdd("tunnelNet", new SignInArgsNetInfo
|
||||
{
|
||||
Lat = tunnelClientStore.Network.Net.Lat,
|
||||
Lon = tunnelClientStore.Network.Net.Lon,
|
||||
City = tunnelClientStore.Network.Net.City,
|
||||
}.ToJson());
|
||||
return await Task.FromResult(string.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -45,7 +45,6 @@ namespace linker.messenger.tuntap
|
||||
serviceCollection.AddSingleton<TuntapCidrMapfileManager>();
|
||||
|
||||
|
||||
serviceCollection.AddSingleton<LinkerFakeAckTransfer>();
|
||||
serviceCollection.AddSingleton<FakeAckTransfer>();
|
||||
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ namespace linker.messenger.tuntap
|
||||
/*
|
||||
if (connection.ProtocolType == TunnelProtocolType.Tcp && tuntapConfigTransfer.Info.FakeAck && tuntapDecenter.HasSwitchFlag(connection.RemoteMachineId, TuntapSwitch.FakeAck))
|
||||
{
|
||||
connection.PacketBuffer = new byte[1];
|
||||
connection.PacketBuffer = new byte[4 * 1024];
|
||||
}
|
||||
*/
|
||||
Add(connection);
|
||||
@@ -68,7 +68,7 @@ namespace linker.messenger.tuntap
|
||||
public async Task Receive(ITunnelConnection connection, ReadOnlyMemory<byte> buffer, object state)
|
||||
#pragma warning restore CS1998 // 异步方法缺少 "await" 运算符,将以同步方式运行
|
||||
{
|
||||
//if (connection.PacketBuffer.Length > 0) fakeAckTransfer.Write(buffer, connection.SendBufferFree);
|
||||
//if (connection.PacketBuffer.Length > 0) fakeAckTransfer.Write(buffer);
|
||||
Callback.Receive(connection, buffer);
|
||||
}
|
||||
/// <summary>
|
||||
@@ -91,12 +91,9 @@ namespace linker.messenger.tuntap
|
||||
public async Task InputPacket(LinkerTunDevicPacket packet)
|
||||
{
|
||||
//IPV4广播组播、IPV6 多播
|
||||
if ((packet.IPV4Broadcast || packet.IPV6Multicast) && tuntapConfigTransfer.Info.Multicast == false && connections.IsEmpty == false)
|
||||
if ((packet.IPV4Broadcast /*|| packet.IPV6Multicast*/) && tuntapConfigTransfer.Info.Multicast == false && connections.IsEmpty == false)
|
||||
{
|
||||
//if (packet.DecrementTtl())
|
||||
//{
|
||||
await Task.WhenAll(connections.Values.Where(c => c != null && c.Connected).Select(c => c.SendAsync(packet.Buffer, packet.Offset, packet.Length)));
|
||||
//}
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -107,7 +104,15 @@ namespace linker.messenger.tuntap
|
||||
/*
|
||||
if (connection.PacketBuffer.Length > 0)
|
||||
{
|
||||
fakeAckTransfer.Read(packet.IPPacket);
|
||||
ushort faleLength = 0;
|
||||
if (fakeAckTransfer.Read(packet.IPPacket, connection.PacketBuffer, connection.SendBufferFree, out faleLength))
|
||||
{
|
||||
return;
|
||||
}
|
||||
if (faleLength > 0)
|
||||
{
|
||||
Callback.Receive(connection, connection.PacketBuffer.AsMemory(0, faleLength));
|
||||
}
|
||||
}
|
||||
*/
|
||||
await connection.SendAsync(packet.Buffer, packet.Offset, packet.Length).ConfigureAwait(false);
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -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.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
|
||||
<PackageReleaseNotes>linker messenger</PackageReleaseNotes>
|
||||
<Version>1.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -66,7 +66,7 @@ namespace linker.nat
|
||||
public void ToFakeDst(ReadOnlyMemory<byte> packet)
|
||||
{
|
||||
//只支持映射IPV4
|
||||
if ((byte)(packet.Span[0] >> 4 & 0b1111) != 4) return;
|
||||
//if ((byte)(packet.Span[0] >> 4 & 0b1111) != 4) return;
|
||||
//映射表不为空
|
||||
if (natDic.IsEmpty) return;
|
||||
|
||||
@@ -86,7 +86,7 @@ namespace linker.nat
|
||||
public void ToRealDst(ReadOnlyMemory<byte> packet)
|
||||
{
|
||||
//只支持映射IPV4
|
||||
if ((byte)(packet.Span[0] >> 4 & 0b1111) != 4) return;
|
||||
//if ((byte)(packet.Span[0] >> 4 & 0b1111) != 4) return;
|
||||
//映射表不为空
|
||||
if (masks.Length == 0 || mapDic.Count == 0) return;
|
||||
//广播包
|
||||
|
||||
@@ -34,6 +34,7 @@ namespace linker.nat
|
||||
|
||||
public bool Setup(IPAddress dstAddr, ValueTuple<IPAddress, byte>[] dsts, ref string error)
|
||||
{
|
||||
Shutdown();
|
||||
try
|
||||
{
|
||||
if (dsts == null || dsts.Length == 0)
|
||||
@@ -70,6 +71,7 @@ namespace linker.nat
|
||||
}
|
||||
private async Task ReceiveTcp()
|
||||
{
|
||||
int hashcode = listenSocketTcp.GetHashCode();
|
||||
try
|
||||
{
|
||||
while (true)
|
||||
@@ -90,6 +92,7 @@ namespace linker.nat
|
||||
catch (Exception ex)
|
||||
{
|
||||
LoggerHelper.Instance.Error(ex);
|
||||
if (listenSocketTcp != null && listenSocketTcp.GetHashCode() == hashcode)
|
||||
Shutdown();
|
||||
}
|
||||
}
|
||||
@@ -146,6 +149,7 @@ namespace linker.nat
|
||||
|
||||
private async Task ReceiveUdp()
|
||||
{
|
||||
int hashcode = listenSocketUdp.GetHashCode();
|
||||
try
|
||||
{
|
||||
using IMemoryOwner<byte> memory = MemoryPool<byte>.Shared.Rent(65535);
|
||||
@@ -183,6 +187,7 @@ namespace linker.nat
|
||||
catch (Exception ex)
|
||||
{
|
||||
LoggerHelper.Instance.Error(ex);
|
||||
if (listenSocketUdp != null && listenSocketUdp.GetHashCode() == hashcode)
|
||||
Shutdown();
|
||||
}
|
||||
}
|
||||
@@ -225,11 +230,11 @@ namespace linker.nat
|
||||
/// <param name="needChecksum"></param>
|
||||
public unsafe void Read(ReadOnlyMemory<byte> packet)
|
||||
{
|
||||
if (listenSocketTcp == null) return;
|
||||
if (Running == false) return;
|
||||
fixed (byte* ptr = packet.Span)
|
||||
{
|
||||
DstProxyPacket p = new DstProxyPacket(ptr);
|
||||
if (p.Version != 4) return;
|
||||
//if (p.Version != 4) return;
|
||||
|
||||
if (p.Protocol == ProtocolType.Tcp || p.Protocol == ProtocolType.Udp)
|
||||
{
|
||||
@@ -257,11 +262,11 @@ namespace linker.nat
|
||||
/// <returns></returns>
|
||||
public unsafe bool Write(ReadOnlyMemory<byte> packet)
|
||||
{
|
||||
if (listenSocketTcp == null) return true;
|
||||
if (Running == false) return true;
|
||||
fixed (byte* ptr = packet.Span)
|
||||
{
|
||||
DstProxyPacket p = new DstProxyPacket(ptr);
|
||||
if (p.Version != 4 || p.DstAddr == tunIp || p.DstAddrSpan.IsCast()) return true;
|
||||
if (/*p.Version != 4 ||*/ p.DstAddr == tunIp || p.DstAddrSpan.IsCast()) return true;
|
||||
|
||||
if (lans.Any(c => p.DstAddr >= c.Item1 && p.DstAddr <= c.Item2) == false)
|
||||
{
|
||||
|
||||
@@ -9,7 +9,7 @@ namespace linker.nat
|
||||
/// <summary>
|
||||
/// 伪造ACK操作类
|
||||
/// </summary>
|
||||
public unsafe sealed class LinkerFakeAckTransfer
|
||||
public unsafe sealed class FakeAckTransfer
|
||||
{
|
||||
private readonly ConcurrentDictionary<FaceAckKey, FackAckState> dic = new(new FackAckKeyComparer());
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace linker.nat
|
||||
fixed (byte* ptr = packet.Span)
|
||||
{
|
||||
FakeAckPacket originPacket = new(ptr);
|
||||
if (originPacket.Version != 4 || originPacket.Protocol != ProtocolType.Tcp)
|
||||
if (originPacket.Protocol != ProtocolType.Tcp)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
@@ -42,14 +42,18 @@ namespace linker.nat
|
||||
return state.Ack++ > 0;
|
||||
}
|
||||
|
||||
//originPacket.ClearConfirmNum(ptr);
|
||||
|
||||
fixed (byte* pptr = fakeBuffer.Span)
|
||||
{
|
||||
ushort win = (ushort)Math.Max(Math.Min(bufferFree * 0.8 / state.WindowScale, 32 * 1024), 4);
|
||||
ushort win = (ushort)Math.Max(Math.Min(bufferFree / state.WindowScale, 65535), 4);
|
||||
fakeLength = originPacket.ToAck(state.Seq, win, pptr);
|
||||
/*
|
||||
if (new FakeAckPacket(pptr).Cq <= state.Cq)
|
||||
{
|
||||
fakeLength = 0;
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
else if (originPacket.TcpFlagFin || originPacket.TcpFlagRst)
|
||||
@@ -69,7 +73,7 @@ namespace linker.nat
|
||||
fixed (byte* ptr = packet.Span)
|
||||
{
|
||||
FakeAckPacket originPacket = new(ptr);
|
||||
if (originPacket.Version != 4 || originPacket.Protocol != ProtocolType.Tcp)
|
||||
if (originPacket.Protocol != ProtocolType.Tcp)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -283,6 +287,16 @@ namespace linker.nat
|
||||
return totalLength;
|
||||
}
|
||||
|
||||
public void ClearConfirmNum(byte* ipPtr)
|
||||
{
|
||||
byte* tcpPtr = ipPtr + (*ptr & 0b1111) * 4;
|
||||
|
||||
*(tcpPtr + 13) = 0b00011000;
|
||||
*(uint*)(tcpPtr + 8) = 0;
|
||||
//计算校验和
|
||||
ChecksumHelper.Checksum(ipPtr);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 从TCP的SYN包或SYN+ACK包中,获取窗口缩放比例
|
||||
/// </summary>
|
||||
@@ -327,7 +341,7 @@ namespace linker.nat
|
||||
}
|
||||
|
||||
|
||||
public unsafe sealed class FakeAckTransfer
|
||||
public unsafe sealed class FakeAckTransfer1
|
||||
{
|
||||
private readonly ConcurrentDictionary<FaceAckKey, int> dic = new(new FackAckKeyComparer());
|
||||
|
||||
@@ -341,7 +355,7 @@ namespace linker.nat
|
||||
fixed (byte* ptr = packet.Span)
|
||||
{
|
||||
FakeAckPacket originPacket = new(ptr);
|
||||
if (originPacket.Version != 4 || originPacket.Protocol != ProtocolType.Tcp)
|
||||
if (/*originPacket.Version != 4 ||*/ originPacket.Protocol != ProtocolType.Tcp)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -362,7 +376,7 @@ namespace linker.nat
|
||||
fixed (byte* ptr = packet.Span)
|
||||
{
|
||||
FakeAckPacket originPacket = new(ptr);
|
||||
if (originPacket.Version != 4 || originPacket.Protocol != ProtocolType.Tcp)
|
||||
if (/*originPacket.Version != 4 ||*/ originPacket.Protocol != ProtocolType.Tcp)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -128,7 +128,7 @@ namespace linker.nat
|
||||
if (state != LinkerFirewallState.Enabled) return;
|
||||
|
||||
IPV4Packet ipv4 = new IPV4Packet(packet.Span);
|
||||
if (ipv4.Version == 4 && (ipv4.Protocol == ProtocolType.Udp || ipv4.Protocol == ProtocolType.Tcp))
|
||||
if (/*ipv4.Version == 4 &&*/ (ipv4.Protocol == ProtocolType.Udp || ipv4.Protocol == ProtocolType.Tcp))
|
||||
{
|
||||
(uint src, ushort srcPort, uint dst, ushort dstPort, ProtocolType pro) key = (ipv4.SrcAddr, ipv4.SrcPort, ipv4.DstAddr, ipv4.DstPort, ipv4.Protocol);
|
||||
if (cacheSrcMap.TryGetValue(key, out SrcCacheInfo cache) == false)
|
||||
@@ -176,7 +176,7 @@ namespace linker.nat
|
||||
|
||||
IPV4Packet ipv4 = new IPV4Packet(packet.Span);
|
||||
//IPV4 TCP 和 UDP
|
||||
if (ipv4.Version == 4 && (ipv4.Protocol == ProtocolType.Udp || ipv4.Protocol == ProtocolType.Tcp))
|
||||
if (/*ipv4.Version == 4 &&*/ (ipv4.Protocol == ProtocolType.Udp || ipv4.Protocol == ProtocolType.Tcp))
|
||||
{
|
||||
//连接状态
|
||||
(uint src, ushort srcPort, uint dst, ushort dstPort, ProtocolType pro) key = (ipv4.DstAddr, ipv4.DstPort, ipv4.SrcAddr, ipv4.SrcPort, ipv4.Protocol);
|
||||
|
||||
@@ -196,7 +196,7 @@ namespace linker.nat
|
||||
|
||||
IPV4Packet ipv4 = new IPV4Packet(packet.Span);
|
||||
//不是 ipv4,是虚拟网卡ip,是广播,不nat
|
||||
if (ipv4.Version != 4 || ipv4.DstAddr == srcIp || ipv4.DstAddrSpan.IsCast())
|
||||
if (/*ipv4.Version != 4 ||*/ ipv4.DstAddr == srcIp || ipv4.DstAddrSpan.IsCast())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
|
||||
<PackageReleaseNotes>linker nat</PackageReleaseNotes>
|
||||
<Version>1.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -34,7 +34,7 @@ namespace linker.tun
|
||||
}
|
||||
private unsafe void TCPUDPRead(LinkerTunDevicPacket packet)
|
||||
{
|
||||
if (packet.Version != 4) return;
|
||||
//if (packet.Version != 4) return;
|
||||
|
||||
Memory<byte> writableMemory = packet.Buffer.AsMemory(packet.Offset + 4, packet.Length);
|
||||
fixed (byte* ptr = writableMemory.Span)
|
||||
|
||||
@@ -298,7 +298,7 @@ namespace linker.tun
|
||||
}
|
||||
|
||||
packet.Unpacket(buffer, 0, length);
|
||||
if (packet.DistIPAddress.Length == 0) continue;
|
||||
if (packet.DistIPAddress.Length == 0 || packet.Version != 4) continue;
|
||||
|
||||
for (int i = 0; i < hooks1.Length; i++) if (hooks1[i].Read(packet.IPPacket) == false) goto end;
|
||||
ChecksumHelper.ChecksumWithZero(packet.IPPacket);
|
||||
|
||||
@@ -180,8 +180,6 @@ namespace linker.tun.device
|
||||
/// </summary>
|
||||
public byte Version { get; private set; }
|
||||
|
||||
public byte TTL { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// 协议
|
||||
/// </summary>
|
||||
@@ -195,10 +193,6 @@ namespace linker.tun.device
|
||||
/// 源端口
|
||||
/// </summary>
|
||||
public ushort SourcePort { get; private set; }
|
||||
/// <summary>
|
||||
/// 源
|
||||
/// </summary>
|
||||
public IPEndPoint Source => new IPEndPoint(new IPAddress(SourceIPAddress.Span), SourcePort);
|
||||
|
||||
/// <summary>
|
||||
/// 目标IP
|
||||
@@ -208,10 +202,6 @@ namespace linker.tun.device
|
||||
/// 目标端口
|
||||
/// </summary>
|
||||
public ushort DistPort { get; private set; }
|
||||
/// <summary>
|
||||
/// 目标
|
||||
/// </summary>
|
||||
public IPEndPoint Dist => new IPEndPoint(new IPAddress(DistIPAddress.Span), DistPort);
|
||||
|
||||
public bool IPV4Broadcast => Version == 4 && DistIPAddress.IsCast();
|
||||
public bool IPV6Multicast => Version == 6 && (DistIPAddress.Span[0] & 0xFF) == 0xFF;
|
||||
@@ -219,17 +209,13 @@ namespace linker.tun.device
|
||||
public LinkerTunDevicPacket()
|
||||
{
|
||||
}
|
||||
public LinkerTunDevicPacket(byte[] buffer, int offset, int length)
|
||||
{
|
||||
Unpacket(buffer, offset, length);
|
||||
}
|
||||
public void Unpacket(byte[] buffer, int offset, int length)
|
||||
{
|
||||
Buffer = buffer;
|
||||
Offset = offset;
|
||||
Length = length;
|
||||
|
||||
ReadOnlyMemory<byte> ipPacket = Buffer.AsMemory(Offset + 4);
|
||||
ReadOnlyMemory<byte> ipPacket = Buffer.AsMemory(Offset + 4, Length - 4);
|
||||
Version = (byte)(ipPacket.Span[0] >> 4 & 0b1111);
|
||||
|
||||
SourceIPAddress = Helper.EmptyArray;
|
||||
@@ -241,7 +227,6 @@ namespace linker.tun.device
|
||||
DistIPAddress = ipPacket.Slice(16, 4);
|
||||
|
||||
ProtocolType = (ProtocolType)ipPacket.Span[9];
|
||||
TTL = ipPacket.Span[8];
|
||||
|
||||
if (ProtocolType == ProtocolType.Tcp || ProtocolType == ProtocolType.Udp)
|
||||
{
|
||||
@@ -255,7 +240,6 @@ namespace linker.tun.device
|
||||
DistIPAddress = ipPacket.Slice(24, 16);
|
||||
|
||||
ProtocolType = (ProtocolType)ipPacket.Span[6];
|
||||
TTL = ipPacket.Span[7];
|
||||
|
||||
if (ProtocolType == ProtocolType.Tcp || ProtocolType == ProtocolType.Udp)
|
||||
{
|
||||
@@ -265,19 +249,6 @@ namespace linker.tun.device
|
||||
}
|
||||
}
|
||||
|
||||
public bool DecrementTtl()
|
||||
{
|
||||
if (TTL <= 0) return false;
|
||||
|
||||
Span<byte> ipPacket = Buffer.AsSpan(Offset + 4);
|
||||
if (Version == 4) TTL = --ipPacket[8];
|
||||
else if (Version == 6) TTL = --ipPacket[7];
|
||||
ChecksumHelper.Checksum(ipPacket, true, false);
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
public struct LinkerTunDevicValidatePacket
|
||||
{
|
||||
@@ -287,7 +258,7 @@ namespace linker.tun.device
|
||||
if (packet.Length >= 1)
|
||||
{
|
||||
byte version = (byte)(packet.Span[0] >> 4 & 0b1111);
|
||||
int headLength = version == 4 ? (packet.Span[0] & 0b1111) * 4 : 40;
|
||||
int headLength = /*version == 4 ?*/ (packet.Span[0] & 0b1111) * 4 /*: 40*/;
|
||||
if (packet.Length < headLength) return;
|
||||
|
||||
ProtocolType protocolType = version switch
|
||||
|
||||
@@ -22,7 +22,7 @@ namespace linker.tun.hook
|
||||
|
||||
if (address == null || address.Equals(IPAddress.Any) || prefixLength == 0)
|
||||
{
|
||||
error = "DProxy need CIDR,like 10.18.18.0/24";
|
||||
error = "DstProxy need CIDR,like 10.18.18.0/24";
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -40,7 +40,6 @@ namespace linker.tun.hook
|
||||
LoggerHelper.Instance.Error(ex);
|
||||
}
|
||||
|
||||
Shutdown();
|
||||
linkerDstNat.Setup(address, items.Select(c => new ValueTuple<IPAddress, byte>(c.IP, c.PrefixLength)).ToArray(), ref error);
|
||||
}
|
||||
public void Shutdown()
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
|
||||
<PackageReleaseNotes>linker tun</PackageReleaseNotes>
|
||||
<Version>1.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
|
||||
<PackageReleaseNotes>linker tunnel</PackageReleaseNotes>
|
||||
<Version>1.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -20,17 +20,18 @@
|
||||
<Title>linker</Title>
|
||||
<Authors>snltty</Authors>
|
||||
<Company>snltty</Company>
|
||||
<Description>1. 一些累计更新
|
||||
2. 服务器转发多节点
|
||||
3. 新增一个UDP同时打开的打洞协议,优化了一下其它打洞协议
|
||||
4. 一些代码优化,修复一些错误,其它一些小改变</Description>
|
||||
<Description>1. 一些累计更新,一些BUG修复
|
||||
2. 使用代理方式重写应用层NAT
|
||||
3. 新增服务端webapi,对外提供公开数据,监听1803端口,设置为0则不监听
|
||||
4. 去除TCP包合并选项,TCP隧道默认使用pipelines管道
|
||||
5. 修复中继列表能看到节点但无法中继的BUG</Description>
|
||||
<Copyright>snltty</Copyright>
|
||||
<PackageProjectUrl>https://github.com/snltty/linker</PackageProjectUrl>
|
||||
<RepositoryUrl>https://github.com/snltty/linker</RepositoryUrl>
|
||||
<PackageReleaseNotes>linker</PackageReleaseNotes>
|
||||
<Version>1.9.1</Version>
|
||||
<AssemblyVersion>1.9.1</AssemblyVersion>
|
||||
<FileVersion>1.9.1</FileVersion>
|
||||
<Version>1.9.2</Version>
|
||||
<AssemblyVersion>1.9.2</AssemblyVersion>
|
||||
<FileVersion>1.9.2</FileVersion>
|
||||
<DelaySign>False</DelaySign>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
13
version.txt
13
version.txt
@@ -1,6 +1,7 @@
|
||||
v1.9.1
|
||||
2025-09-22 10:09:16
|
||||
1. 一些累计更新
|
||||
2. 服务器转发多节点
|
||||
3. 新增一个UDP同时打开的打洞协议,优化了一下其它打洞协议
|
||||
4. 一些代码优化,修复一些错误,其它一些小改变
|
||||
v1.9.2
|
||||
2025-09-23 16:48:18
|
||||
1. 一些累计更新,一些BUG修复
|
||||
2. 使用代理方式重写应用层NAT
|
||||
3. 新增服务端webapi,对外提供公开数据,监听1803端口,设置为0则不监听
|
||||
4. 去除TCP包合并选项,TCP隧道默认使用pipelines管道
|
||||
5. 修复中继列表能看到节点但无法中继的BUG
|
||||
Reference in New Issue
Block a user