diff --git a/package.json b/package.json index 02bd9c538..ed0169e9a 100644 --- a/package.json +++ b/package.json @@ -15,8 +15,7 @@ "vitepress-plugin-lightbox": "^1.0.2" }, "scripts": { - "start": "lerna bootstrap --hoist", - "start:server": "cd ./packages/ui/certd-server && pnpm start", + "start": "cd ./packages/ui/certd-server && pnpm start", "devb": "lerna run dev-build", "i-all": "lerna link && lerna exec npm install ", "publish": "pnpm run prepublishOnly2 && lerna publish --force-publish=pro/plus-core --conventional-commits && pnpm run afterpublishOnly ", diff --git a/packages/ui/Dockerfile b/packages/ui/Dockerfile index a964a1581..f530473e6 100644 --- a/packages/ui/Dockerfile +++ b/packages/ui/Dockerfile @@ -56,9 +56,7 @@ RUN apt-get update && \ WORKDIR /app/ -COPY --from=builder /workspace/certd-server/ /app/ -COPY ./patch/ssh2/*.js /app/node_modules/.pnpm/node_modules/ssh2/lib/protocol/ ENV LEGO_VERSION=4.30.1 ENV LEGO_DOWNLOAD_DIR=/app/tools/lego @@ -81,6 +79,9 @@ RUN ARCH=$(uname -m) && \ ENV TZ=Asia/Shanghai ENV NODE_ENV=production ENV MIDWAY_SERVER_ENV=production + +COPY --from=builder /workspace/certd-server/ /app/ +COPY ./patch/ssh2/*.js /app/node_modules/.pnpm/node_modules/ssh2/lib/protocol/ CMD ["node", "--optimize-for-size", "./bootstrap.js"] diff --git a/packages/ui/certd-server/src/modules/sys/nettest/nettest-service.test.ts b/packages/ui/certd-server/src/modules/sys/nettest/nettest-service.test.ts new file mode 100644 index 000000000..e6ee685f8 --- /dev/null +++ b/packages/ui/certd-server/src/modules/sys/nettest/nettest-service.test.ts @@ -0,0 +1,29 @@ +import assert from "assert"; +import esmock from "esmock"; + +describe("NetTestService.telnet", () => { + it("treats nc succeeded output as a successful port connection", async () => { + const { NetTestService } = await esmock("./nettest-service.js", { + "@certd/basic": { + http: {}, + logger: { + error() {}, + }, + utils: { + sp: { + async spawn() { + return "Connection to baidu.com (110.242.74.102) 443 port [tcp/*] succeeded!"; + }, + }, + }, + }, + }); + const service = new NetTestService(); + (service as any).isWindows = () => false; + + const result = await service.telnet("baidu.com", 443); + + assert.equal(result.success, true); + assert.equal(result.message, "端口连接测试成功"); + }); +}); diff --git a/packages/ui/certd-server/src/modules/sys/nettest/nettest-service.ts b/packages/ui/certd-server/src/modules/sys/nettest/nettest-service.ts index b269fff6e..c40c8eb60 100644 --- a/packages/ui/certd-server/src/modules/sys/nettest/nettest-service.ts +++ b/packages/ui/certd-server/src/modules/sys/nettest/nettest-service.ts @@ -40,7 +40,11 @@ export class NetTestService { }); // 判断测试是否成功 - const success = this.isWindows() ? output.includes("端口连接成功") : output.includes(" open"); + const normalizedOutput = output.toLowerCase(); + const success = this.isWindows() + ? normalizedOutput.includes("端口连接成功") + : normalizedOutput.includes("succeeded!") || normalizedOutput.includes("connected to") || normalizedOutput.includes(" open"); + // 处理结果 return {