diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index 5e7c13af..e97491cc 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.6.6 snltty/linker-musl:amd64 snltty/linker-musl:arm64 snltty/linker-musl:arm && \
+        docker manifest create snltty/linker-musl:v1.6.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.6.6 && \
+        docker manifest push snltty/linker-musl:v1.6.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.6.6 snltty/linker-debian:amd64 snltty/linker-debian:arm64 snltty/linker-debian:arm && \
+        docker manifest create snltty/linker-debian:v1.6.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.6.6
\ No newline at end of file
+        docker manifest push snltty/linker-debian:v1.6.7
\ No newline at end of file
diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml
index 4f490426..ef32299e 100644
--- a/.github/workflows/dotnet.yml
+++ b/.github/workflows/dotnet.yml
@@ -31,11 +31,11 @@ jobs:
         env:
           GITHUB_TOKEN: ${{ secrets.ACTIONS_TOKEN }}
         with:
-          tag_name: v1.6.6
-          release_name: v1.6.6.${{ steps.date.outputs.today }}
+          tag_name: v1.6.7
+          release_name: v1.6.7.${{ steps.date.outputs.today }}
           draft: false
           prerelease: false
-          body: "1. 适配OpenWrt的NAT\r\n2. 打包ipk\r\n3. 修复首次启动网卡未启动bug\r\n4. 设置工作目录\r\n5. 接口密码BUG\r\n6. 自定义网卡名\r\n7. 可禁用NAT\r\n8. 修复网卡端口转发BUG"
+          body: "1. 修复首次启动网卡未启动bug\r\n2. 自定义网卡名\r\n3. 可禁用NAT\r\n4. 修复网卡端口转发BUG"
       - name: publish projects
         run: ./publish.bat
       - name: upload-win-x86-oss
@@ -47,7 +47,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.6.6/linker-win-x86.zip
+          target-path: /downloads/linker/v1.6.7/linker-win-x86.zip
       - name: upload-win-x86
         id: upload-win-x86
         uses: actions/upload-release-asset@master
@@ -67,7 +67,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.6.6/linker-win-x64.zip
+          target-path: /downloads/linker/v1.6.7/linker-win-x64.zip
       - name: upload-win-x64
         id: upload-win-x64
         uses: actions/upload-release-asset@master
@@ -87,7 +87,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.6.6/linker-win-arm64.zip
+          target-path: /downloads/linker/v1.6.7/linker-win-arm64.zip
       - name: upload-win-arm64
         id: upload-win-arm64
         uses: actions/upload-release-asset@master
@@ -107,7 +107,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.6.6/linker-linux-x64.zip
+          target-path: /downloads/linker/v1.6.7/linker-linux-x64.zip
       - name: upload-linux-x64
         id: upload-linux-x64
         uses: actions/upload-release-asset@master
@@ -127,7 +127,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.6.6/linker-linux-arm.zip
+          target-path: /downloads/linker/v1.6.7/linker-linux-arm.zip
       - name: upload-linux-arm
         id: upload-linux-arm
         uses: actions/upload-release-asset@master
@@ -147,7 +147,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.6.6/linker-linux-arm64.zip
+          target-path: /downloads/linker/v1.6.7/linker-linux-arm64.zip
       - name: upload-linux-arm64
         id: upload-linux-arm64
         uses: actions/upload-release-asset@master
@@ -167,7 +167,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.6.6/linker-linux-musl-x64.zip
+          target-path: /downloads/linker/v1.6.7/linker-linux-musl-x64.zip
       - name: upload-linux-musl-x64
         id: upload-linux-musl-x64
         uses: actions/upload-release-asset@master
@@ -187,7 +187,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.6.6/linker-linux-musl-arm.zip
+          target-path: /downloads/linker/v1.6.7/linker-linux-musl-arm.zip
       - name: upload-linux-musl-arm
         id: upload-linux-musl-arm
         uses: actions/upload-release-asset@master
@@ -207,7 +207,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.6.6/linker-linux-musl-arm64.zip
+          target-path: /downloads/linker/v1.6.7/linker-linux-musl-arm64.zip
       - name: upload-linux-musl-arm64
         id: upload-linux-musl-arm64
         uses: actions/upload-release-asset@master
@@ -227,7 +227,7 @@ jobs:
           key-secret: ${{ secrets.ALIYUN_OSS_SECRET }}
           bucket: ide-qbcode
           asset-path: ./public/publish-zip/linker-osx-x64.zip
-          target-path: /downloads/linker/v1.6.6/linker-osx-x64.zip
+          target-path: /downloads/linker/v1.6.7/linker-osx-x64.zip
       - name: upload-osx-x64
         id: upload-osx-x64
         uses: actions/upload-release-asset@master
@@ -247,7 +247,7 @@ jobs:
           key-secret: ${{ secrets.ALIYUN_OSS_SECRET }}
           bucket: ide-qbcode
           asset-path: ./public/publish-zip/linker-osx-arm64.zip
-          target-path: /downloads/linker/v1.6.6/linker-osx-arm64.zip
+          target-path: /downloads/linker/v1.6.7/linker-osx-arm64.zip
       - name: upload-osx-arm64
         id: upload-osx-arm64
         uses: actions/upload-release-asset@master
@@ -277,7 +277,7 @@ jobs:
           key-secret: ${{ secrets.ALIYUN_OSS_SECRET }}
           bucket: ide-qbcode
           asset-path: ./public/publish-zip/linker-windows-route.zip
-          target-path: /downloads/linker/v1.6.6/linker-windows-route.zip
+          target-path: /downloads/linker/v1.6.7/linker-windows-route.zip
       - name: upload-version-oss
         id: upload-version-oss
         uses: tvrcgo/oss-action@v0.1.1
diff --git a/.github/workflows/ipk.yml b/.github/workflows/ipk.yml
index bcae3f85..3f3ebf42 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.6.6/linker-x64.ipk
+          target-path: /downloads/linker/v1.6.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.6.6/linker-arm.ipk
+          target-path: /downloads/linker/v1.6.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.6.6/linker-arm64.ipk
+          target-path: /downloads/linker/v1.6.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 05076af5..d3db54eb 100644
--- a/.github/workflows/nuget.yml
+++ b/.github/workflows/nuget.yml
@@ -79,29 +79,29 @@ jobs:
         
     - name: Push
       run: |
-        dotnet nuget push ./src/linker.libs/bin/release/linker.libs.1.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.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.6.7.nupkg --source https://api.nuget.org/v3/index.json --skip-duplicate --api-key ${{ secrets.NUGET_KEY }} --no-symbols
diff --git a/publish-docker.sh b/publish-docker.sh
index 6abdc32c..2e50ae5c 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.6.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.6.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.6.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.6.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.6.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.6.7" . --push
 		cd ../../../../../
 	done
 done
\ No newline at end of file
diff --git a/publish-ipk.sh b/publish-ipk.sh
index 13e8eb4e..7cbf4063 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.6.6|g" public/publish-ipk/${r}/control/control
+    sed -i "s|{version}|1.6.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/src/linker.libs/linker.libs.csproj b/src/linker.libs/linker.libs.csproj
index 1060715f..9a91fa32 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 	
 		full
diff --git a/src/linker.messenger.access/linker.messenger.access.csproj b/src/linker.messenger.access/linker.messenger.access.csproj
index b6f2e573..a56492d8 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger.action/linker.messenger.action.csproj b/src/linker.messenger.action/linker.messenger.action.csproj
index bbc666d9..a08ae898 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger.api/linker.messenger.api.csproj b/src/linker.messenger.api/linker.messenger.api.csproj
index 19d49458..18df391c 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger.channel/linker.messenger.channel.csproj b/src/linker.messenger.channel/linker.messenger.channel.csproj
index 9307b397..d19efd96 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger.decenter/linker.messenger.decenter.csproj b/src/linker.messenger.decenter/linker.messenger.decenter.csproj
index de9c2c52..a16a8df2 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger.entry/linker.messenger.entry.csproj b/src/linker.messenger.entry/linker.messenger.entry.csproj
index 2d67305c..86aab3c8 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger.exroute/linker.messenger.exroute.csproj b/src/linker.messenger.exroute/linker.messenger.exroute.csproj
index 178286b3..bf094016 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger.flow/linker.messenger.flow.csproj b/src/linker.messenger.flow/linker.messenger.flow.csproj
index 0346b801..f6018aea 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger.forward/linker.messenger.forward.csproj b/src/linker.messenger.forward/linker.messenger.forward.csproj
index 4c4f143e..3e4e5f62 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger.listen/linker.messenger.listen.csproj b/src/linker.messenger.listen/linker.messenger.listen.csproj
index 4f6b3a7d..8930d0c9 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger.logger/linker.messenger.logger.csproj b/src/linker.messenger.logger/linker.messenger.logger.csproj
index ca5681fe..78bc8b35 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger.pcp/linker.messenger.pcp.csproj b/src/linker.messenger.pcp/linker.messenger.pcp.csproj
index a3385a6b..4c54f28a 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger.relay/linker.messenger.relay.csproj b/src/linker.messenger.relay/linker.messenger.relay.csproj
index 80c186e8..9f0e6c63 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.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 76f013dd..15b09932 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.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 1d93bf4a..dcce0eda 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger.sforward/linker.messenger.sforward.csproj b/src/linker.messenger.sforward/linker.messenger.sforward.csproj
index 6c58afb4..6e5c447d 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger.signin/linker.messenger.signin.csproj b/src/linker.messenger.signin/linker.messenger.signin.csproj
index 1647e3cc..6fb54b60 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger.socks5/linker.messenger.socks5.csproj b/src/linker.messenger.socks5/linker.messenger.socks5.csproj
index b86d8db0..7c07bb28 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.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 c3d4c167..1184151d 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger.sync/linker.messenger.sync.csproj b/src/linker.messenger.sync/linker.messenger.sync.csproj
index e2999bc3..9da2adf4 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger.tunnel/linker.messenger.tunnel.csproj b/src/linker.messenger.tunnel/linker.messenger.tunnel.csproj
index 869b40dd..0d6df2d9 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger.tuntap/TuntapAdapter.cs b/src/linker.messenger.tuntap/TuntapAdapter.cs
index 437423dc..c248a4a7 100644
--- a/src/linker.messenger.tuntap/TuntapAdapter.cs
+++ b/src/linker.messenger.tuntap/TuntapAdapter.cs
@@ -37,6 +37,7 @@ namespace linker.messenger.tuntap
             //网卡状态发生变化,同步一下信息
             tuntapTransfer.OnSetupBefore += () =>
             {
+                tuntapConfigTransfer.SetRunning(true);
                 tuntapDecenter.Refresh();
                 if (LoggerHelper.Instance.LoggerLevel <= LoggerTypes.DEBUG)
                     LoggerHelper.Instance.Warning("tuntap setup before");
@@ -50,7 +51,6 @@ namespace linker.messenger.tuntap
             tuntapTransfer.OnSetupSuccess += () =>
             {
                 AddForward();
-                tuntapConfigTransfer.SetRunning(true);
             };
             tuntapTransfer.OnShutdownBefore += () =>
             {
@@ -60,9 +60,10 @@ namespace linker.messenger.tuntap
             };
             tuntapTransfer.OnShutdownAfter += () =>
             {
-                tuntapDecenter.Refresh(); DeleteForward(); tuntapConfigTransfer.SetRunning(false);
+                tuntapDecenter.Refresh(); DeleteForward(); 
                 if (LoggerHelper.Instance.LoggerLevel <= LoggerTypes.DEBUG)
                     LoggerHelper.Instance.Warning("tuntap shutdown after");
+                tuntapConfigTransfer.SetRunning(false);
             };
 
             //配置有更新,去同步一下
@@ -177,9 +178,12 @@ namespace linker.messenger.tuntap
                 tuntapTransfer.RemoveForward(removes.ToList());
             }
             forwardItems = temp;
-            if (LoggerHelper.Instance.LoggerLevel <= LoggerTypes.DEBUG)
-                LoggerHelper.Instance.Debug($"add tuntap forward {forwardItems.ToJson()}");
-            tuntapTransfer.AddForward(forwardItems);
+            if (tuntapTransfer.Status != TuntapStatus.Normal)
+            {
+                if (LoggerHelper.Instance.LoggerLevel <= LoggerTypes.DEBUG)
+                    LoggerHelper.Instance.Debug($"add tuntap forward {forwardItems.ToJson()}");
+                tuntapTransfer.AddForward(forwardItems);
+            }
         }
         /// 
         /// 删除端口转发
diff --git a/src/linker.messenger.tuntap/TuntapTransfer.cs b/src/linker.messenger.tuntap/TuntapTransfer.cs
index b7450a62..232a2710 100644
--- a/src/linker.messenger.tuntap/TuntapTransfer.cs
+++ b/src/linker.messenger.tuntap/TuntapTransfer.cs
@@ -51,13 +51,13 @@ namespace linker.messenger.tuntap
             }
             TimerHelper.Async(() =>
             {
-                OnSetupBefore();
                 try
                 {
                     if (ip.Equals(IPAddress.Any))
                     {
                         return;
                     }
+                    OnSetupBefore();
                     linkerTunDeviceAdapter.Setup(name, ip, prefixLength, 1400);
                     if (string.IsNullOrWhiteSpace(linkerTunDeviceAdapter.SetupError) == false)
                     {
@@ -81,8 +81,9 @@ namespace linker.messenger.tuntap
                 }
                 finally
                 {
-                    operatingManager.StopOperation();
+
                     OnSetupAfter();
+                    operatingManager.StopOperation();
                 }
             });
         }
@@ -112,8 +113,8 @@ namespace linker.messenger.tuntap
             }
             finally
             {
-                operatingManager.StopOperation();
                 OnShutdownAfter();
+                operatingManager.StopOperation();
             }
         }
 
diff --git a/src/linker.messenger.tuntap/linker.messenger.tuntap.csproj b/src/linker.messenger.tuntap/linker.messenger.tuntap.csproj
index dc74827e..399c84d2 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger.updater/UpdaterClientTransfer.cs b/src/linker.messenger.updater/UpdaterClientTransfer.cs
index 0bb8d86f..0475bd11 100644
--- a/src/linker.messenger.updater/UpdaterClientTransfer.cs
+++ b/src/linker.messenger.updater/UpdaterClientTransfer.cs
@@ -125,8 +125,6 @@ namespace linker.messenger.updater
             {
                 if (updaterCommonTransfer.CheckUpdate)
                 {
-                    if (LoggerHelper.Instance.LoggerLevel <= LoggerTypes.DEBUG)
-                        LoggerHelper.Instance.Info($"auto check update");
                     await updaterHelper.GetUpdateInfo(updateInfo);
                 }
                 return true;
diff --git a/src/linker.messenger.updater/linker.messenger.updater.csproj b/src/linker.messenger.updater/linker.messenger.updater.csproj
index 641dd5c2..f4cabac1 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.messenger/linker.messenger.csproj b/src/linker.messenger/linker.messenger.csproj
index 1ac089dd..3be4c539 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.tun/LinkerTunDeviceAdapter.cs b/src/linker.tun/LinkerTunDeviceAdapter.cs
index 88f3274b..484b61ca 100644
--- a/src/linker.tun/LinkerTunDeviceAdapter.cs
+++ b/src/linker.tun/LinkerTunDeviceAdapter.cs
@@ -19,14 +19,14 @@ namespace linker.tun
         public string NatError => natError;
 
 
-        private uint operating = 0;
+        private OperatingManager operatingManager = new OperatingManager();
         public LinkerTunDeviceStatus Status
         {
             get
             {
                 if (linkerTunDevice == null) return LinkerTunDeviceStatus.Normal;
 
-                return operating == 1
+                return operatingManager.Operating
                     ? LinkerTunDeviceStatus.Operating
                     : linkerTunDevice.Running
                         ? LinkerTunDeviceStatus.Running
@@ -42,7 +42,7 @@ namespace linker.tun
         /// 初始化
         /// 
         /// 读取数据回调
-        public void Initialize( ILinkerTunDeviceCallback linkerTunDeviceCallback)
+        public void Initialize(ILinkerTunDeviceCallback linkerTunDeviceCallback)
         {
             this.linkerTunDeviceCallback = linkerTunDeviceCallback;
             if (linkerTunDevice == null)
@@ -73,7 +73,7 @@ namespace linker.tun
         /// mtu
         public bool Setup(string deviceName, IPAddress address, byte prefixLength, int mtu)
         {
-            if (Interlocked.CompareExchange(ref operating, 1, 0) == 1)
+            if (operatingManager.StartOperation() == false)
             {
                 setupError = $"setup are operating";
                 return false;
@@ -85,23 +85,22 @@ namespace linker.tun
                     setupError = $"{System.Runtime.InteropServices.RuntimeInformation.OSDescription} not support";
                     return false;
                 }
-                linkerTunDevice.Setup(deviceName,address, NetworkHelper.ToGatewayIP(address, prefixLength), prefixLength, out setupError);
+                linkerTunDevice.Setup(deviceName, address, NetworkHelper.ToGatewayIP(address, prefixLength), prefixLength, out setupError);
                 if (string.IsNullOrWhiteSpace(setupError) == false)
                 {
                     return false;
                 }
-                //mtu = 4 * 1024 - 4;
                 linkerTunDevice.SetMtu(mtu);
                 Read();
                 return true;
             }
             catch (Exception ex)
             {
-                setupError = ex + "";
+                setupError = ex.Message;
             }
             finally
             {
-                Interlocked.Exchange(ref operating, 0);
+                operatingManager.StopOperation();
             }
             return false;
         }
@@ -111,7 +110,7 @@ namespace linker.tun
         /// 
         public bool Shutdown()
         {
-            if (Interlocked.CompareExchange(ref operating, 1, 0) == 1)
+            if (operatingManager.StartOperation() == false)
             {
                 setupError = $"shutdown are operating";
                 return false;
@@ -124,10 +123,11 @@ namespace linker.tun
             catch (Exception)
             {
             }
-
+            finally
+            {
+                operatingManager.StopOperation();
+            }
             setupError = string.Empty;
-            Interlocked.Exchange(ref operating, 0);
-
             return true;
         }
 
diff --git a/src/linker.tun/linker.tun.csproj b/src/linker.tun/linker.tun.csproj
index 02a69628..2b43029f 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker.tunnel/connection/TunnelConnectionMsQuic.cs b/src/linker.tunnel/connection/TunnelConnectionMsQuic.cs
index 2c365612..70369f51 100644
--- a/src/linker.tunnel/connection/TunnelConnectionMsQuic.cs
+++ b/src/linker.tunnel/connection/TunnelConnectionMsQuic.cs
@@ -165,13 +165,7 @@ namespace linker.tunnel.connection
             }
             else
             {
-                try
-                {
-                    callback.Receive(this, packet, this.userToken);
-                }
-                catch (Exception)
-                {
-                }
+                await callback.Receive(this, packet, this.userToken);
             }
         }
 
diff --git a/src/linker.tunnel/connection/TunnelConnectionTcp.cs b/src/linker.tunnel/connection/TunnelConnectionTcp.cs
index ce757530..2742b1f7 100644
--- a/src/linker.tunnel/connection/TunnelConnectionTcp.cs
+++ b/src/linker.tunnel/connection/TunnelConnectionTcp.cs
@@ -178,13 +178,7 @@ namespace linker.tunnel.connection
                     return;
                 }
             }
-            try
-            {
-                callback.Receive(this, packet, this.userToken);
-            }
-            catch (Exception)
-            {
-            }
+            await callback.Receive(this, packet, this.userToken);
         }
 
         private async Task ProcessHeart()
diff --git a/src/linker.tunnel/connection/TunnelConnectionUdp.cs b/src/linker.tunnel/connection/TunnelConnectionUdp.cs
index 7ab19373..31c2ff75 100644
--- a/src/linker.tunnel/connection/TunnelConnectionUdp.cs
+++ b/src/linker.tunnel/connection/TunnelConnectionUdp.cs
@@ -154,19 +154,13 @@ namespace linker.tunnel.connection
             }
             else
             {
-                try
+                if (SSL)
                 {
-                    if (SSL)
-                    {
-                        packet.CopyTo(decodeBuffer);
-                        packet = Crypto.Decode(decodeBuffer, 0, packet.Length);
-                    }
+                    packet.CopyTo(decodeBuffer);
+                    packet = Crypto.Decode(decodeBuffer, 0, packet.Length);
+                }
 
-                    callback.Receive(this, packet.Slice(4), this.userToken);
-                }
-                catch (Exception)
-                {
-                }
+                await callback.Receive(this, packet.Slice(4), this.userToken);
             }
         }
 
diff --git a/src/linker.tunnel/linker.tunnel.csproj b/src/linker.tunnel/linker.tunnel.csproj
index b5396772..c4a289ce 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.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 	
 
 	
diff --git a/src/linker/linker.csproj b/src/linker/linker.csproj
index 47e6113b..d253a1e9 100644
--- a/src/linker/linker.csproj
+++ b/src/linker/linker.csproj
@@ -20,21 +20,17 @@
 		linker
 		snltty
 		snltty
-		1. 适配OpenWrt的NAT
-2. 打包ipk
-3. 修复首次启动网卡未启动bug
-4. 设置工作目录
-5. 接口密码BUG
-6. 自定义网卡名
-7. 可禁用NAT
-8. 修复网卡端口转发BUG
+		1. 修复首次启动网卡未启动bug
+2. 自定义网卡名
+3. 可禁用NAT
+4. 修复网卡端口转发BUG
 		snltty
 		https://github.com/snltty/linker
 		https://github.com/snltty/linker
 		linker
-		1.6.6
-		1.6.6
-		1.6.6
+		1.6.7
+		1.6.7
+		1.6.7
 		False
 	
 
diff --git a/version.txt b/version.txt
index 88ec2bf9..d88162e0 100644
--- a/version.txt
+++ b/version.txt
@@ -1,10 +1,6 @@
-v1.6.6
-2025-02-14 16:16:47
-1. 适配OpenWrt的NAT
-2. 打包ipk
-3. 修复首次启动网卡未启动bug
-4. 设置工作目录
-5. 接口密码BUG
-6. 自定义网卡名
-7. 可禁用NAT
-8. 修复网卡端口转发BUG
\ No newline at end of file
+v1.6.7
+2025-02-15 15:27:23
+1. 修复首次启动网卡未启动bug
+2. 自定义网卡名
+3. 可禁用NAT
+4. 修复网卡端口转发BUG
\ No newline at end of file