DevOps进阶:SonarQube 代码审计与 Harbor 镜像仓库实战

第2部:DevOps进阶

代码审计

SonarQube 是一个开源的代码质量管理平台,用于自动化检测代码中的质量问题和安全漏洞,帮助团队持续提升代码质量。

官方地址:https://www.sonarsource.com/products/sonarqube/downloads/

*核心功能*

  1. *静态代码分析*

自动识别代码缺陷(如空指针异常)、安全漏洞(如SQL注入)和代码异味(不良设计),支持30+编程语言(Java、C#、 Python等)。

集成PMD、 FindBugs、Checkstyle等插件增强检测能力,提供深度规则定制。

  1. *多维质量指标*

分析代码重复率、复杂度(圈复杂度)、注释覆盖率及单元测试覆盖率(需集成JaCoCo等工具)。

量化技术债务,生成修复优先级建议。

  1. *开发流程集成*

无缝对接CI/CD工具(Jenkins、GitLab CI、GitHub Actions),提交代码后自动触发扫描。

通过IDE插件(SonarLint)实时反馈问题,支持开发阶段即时修复。

  1. *质量门禁(* *Quality* *Gate* *)*

定义质量阈值(如漏洞数量上限),未达标代码自动阻断合并或部署。

*部署*

在Jenkins服务器上,拉取postgres数据库和代码审计sonarqube镜像

bash 复制代码
[root@jenkins ~]# docker pull postgres:12.6    #支持版本[root@jenkins ~]# docker pull sonarqube:8.9.6-community     //此版本为TLS长期稳定版
创建代码审计容器创建脚本
[root@jenkins docker]# pwd /usr/local/docker[root@jenkins docker]# mkdir sonarqube_docker[root@jenkins docker]# l sjenkins_docker sonarqube_docker[root@jenkins docker]# cd sonarqube_docker/[root@jenkins sonarqube_docker]# vim docker-compose.yml

脚本内容如下:

启动脚本

bash 复制代码
[root@jenkins sonarqube_docker]# docker-compose up -dCreating network "sonarqube_docker_sonarnet" with driver "bridge" Creating db ... doneCreating sonarqube ... done

查看日志

[root@jenkins sonarqube_docker]# docker logs -f 

sonarqube...ERROR: [1] bootstrap checks failed. You must address the points described i n the following [1] lines before starting Elasticsearch.bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] i s too low, i ncrease to at least [262144]ERROR: Elasticsearch did not exit normally - check the logs at /opt/sonarqube/logs/sonarqube.log2025.06.29 13:31:49 INFO es stopping ...2025.06.29 13:31:49 INFO es stopped2025.06.29 13:31:49 INFO es closing ...2025.06.29 13:31:49 INFO es closed2025.06.29 13:31:49 WARN app Process exited with exit value [es]: 782025.06.29 13:31:49 INFO app Process[es] is stopped2025.06.29 13:31:49 INFO app SonarQube is stopped

解决问题:虚拟内存太小, max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] ,需要扩容

[root@jenkins sonarqube_docker]# vim /etc/sysctl.conf ...vm.max_map_count=262144    //最末尾追加[root@jenkins sonarqube_docker]# sysctl -p

重新创建
[root@jenkins sonarqube_docker]# docker-compose up -d db is up-to-dateStarting sonarqube ... done

再次查看日志,资源顺利启动
[root@jenkins sonarqube_docker]# docker logs -f 
sonarqube...2025.06.29 13:44:06 INFO web Counting number of projects in warning will be disabled as there are no more projects i nwarning.2025.06.29 13:44:07 INFO ce Starting ce2025.06.29 13:44:07 INFO ce(o.s.ce.app.CeServer)] Compute Engine starting up...2025.06.29 13:44:08 INFO ce Connected to local Elasticsearch: [http://localhost:9001]2025.06.29 13:44:09 INFO ce Create JDBC data source for jdbc:postgresql://db:5432/sonar2025.06.29 13:44:11 INFO ce SonarQube home: /opt/sonarqube2025.06.29 13:44:12 INFO ce Load plugins2025.06.29 13:44:14 INFO ce Running Community edition2025.06.29 13:44:14 INFO ce(o.s.ce.app.CeServer)] Compute Engine is operational2025.06.29 13:44:14 INFO app Process[ce] i s up2025.06.29 13:44:14 INFO app SonarQube i s up

访问地址: http://192.168.100.154:9000/

进行登录

更新密码

登录到sonarqube首页界面

下载并安装中文插件

下载并安装

出现报错: Error while downloading plugin '10nzh' with version '10.7'. No compatible plugin found.

问题解决:

修正docker-compose.yml文件:

本地中文插件sonar-l10n-zh-plugin-8.9.jar放入,并服务重启

bash 复制代码
[root@jenkins sonarqube_docker]# docker-compose stop
[root@jenkins sonarqube_docker]# docker-compose up -d
[root@jenkins sonarqube_docker]# ls docker-compose.yml 
plugins//插件复制到plugins目录中,并再次重新启动
[root@jenkins plugins]# rz -Erz waiting to receive.
[root@jenkins plugins]# l ssonar-l10n-zh-plugin-8.9.jar
[root@jenkins plugins]# docker-compose restart Restarting sonarqube ... doneRestarting db    ...done
#注意:如果出现sonar无法正常启动,需要把原来启动的sonarqube和postgre容器删除掉,再重新使用docker-compose拉起来

*代码测试*

回到Windows系统的idea上

sonarqube会支持两种方式测试代码:

*maven* *方式*

1: maven方式, sonarqube对maven有支持,可以使用maven命令对代码测试。修改maven 目录下的settings.xml文件

指定位置插入如下内容: sonarqube的用户名、密码和Jenkins主机节点

代码: (放在文件最后一个profiles中)

sonar true <sonar.login>admin</sonar.login> <sonar.password>abc123 ! !</sonar.password><<sonar.host.url>>http://192.168.100.154:9000%3C/<sonar.host.url>>

设置maven环境变量

在idea当前终端命令行进行输入:

执行

E:\IdeaProjects\demo_web>mvn sonar:sonar

版本报错

原因: sonar-maven-plugin:4.0.0.4121默认支持jdk11,而项目中使用的是jdk8,导致版本出错

解决问题:

可以采用下载对应的sonar-maven-plugin:3.11.0.3922版本来解决在pom.xml中插入以下内容:

插件代码如下:

org.sonarsource.scanner.maven sonar-maven-plugin3.11.0.3922

重新执行mvn sonar:sonar ,进行加载

打开sonarqube网页,完成项目代码审计

查看检测结果

选择查看到的问题点

*sonar* *-* *scanner* *方式*

官方插件下载地址:https://docs.sonarsource.com/sonarqube-server/latest/analyzing-source-code/scanners/sonarscanner/

在Jenkins服务器上操作,把压缩包sonar-scanner-cli-4.6.0.2311-linux.zip解压到Jenkins的data目录中

bash 复制代码
[root@jenkins ~]# unzip sonar-scanner-cli-4.6.0.2311-linux.zip
[root@jenkins ~]# mv sonar-scanner-4.6.0.2311-linux/ sonar-scanner
[root@jenkins ~]# mv sonar-scanner /usr/local/docker/jenkins_docker/data/

修改配置



[root@jenkins data]# cd /usr/local/docker/jenkins_docker/data/sonar- scanner/conf/
[root@jenkins conf]# ls 
[sonar-scanner.properties](sonar-scanner.properties)
[root@jenkins conf]# vim [sonar-scanner.properties](sonar-scanner.properties)
#Configure here general information about the environment, such as SonarQube server connection details for example#No information about specific project should appear here 
#----- Default SonarQube server[sonar.host.url=](sonar.host.url=)[http://192.168.100.154:9000        //](http://192.168.100.154:9000//)去掉注释,修改为Jenkins的IP地址 #----- Default source code encodingsonar.sourceEncoding=UTF-8              //去掉注释

进行项目代码测试

需要使用token令牌进行身份验证点击右上角,用户-我的账号

添加参数,再次执行,需要添加编译过后内容的位置

bash 复制代码
[root@jenkins mytest]# /usr/local/docker/jenkins_docker/data/sonar-scanner/bin/sonar-scanner -Dsonar.sources=./ -Dsonar.projectname=linux-test -Dsonar.login=756ecd2921adb03b586562f76b62815ad234081d -Dsonar.projectKey=linux- test...ERROR: Error during SonarScanner execution[org.sonar.java.AnalysisException:](org.sonar.java.AnalysisException:) Your project [contains .java](contains.java) files, pleaseprovide compiled classes with [sonar.java.binaries](sonar.java.binaries) property, or exclude them from the analysis with sonar.exclusions property.

继续添加参数,则测试成功(注意: 756ecd2921adb03b586562f76b62815ad234081d,这个密钥后面整合Jenkins要用到)

回到sonarqube网页中查看

*代码审计整合* *Jenkins*

使用插件导入sonar.hpi

搜索已安装插件

系统配置-SonarQube servers

注意:先应用再保存后,再回到系统配置中

添加凭据信息

应用凭据

Jenkins中调用sonar-scanner工具系统管理-全局工具配置

添加名称和容器内部路径

在项目中进行配置

构建位置进行添加构建步骤

添加内容如下

sonar.projectname= J O B N A M E s o n a r . p r o j e c t K e y = {JOB_NAME} sonar.projectKey= JOBNAMEsonar.projectKey={JOB_NAME} sonar.source=./<sonar.java.binaries=target>

进行构建

构建报错:

解决问题:因为之前在Jenkins服务器上使用命令进行了构建,产生过隐藏文件.scannerwork夹需要删除

root@jenkins mytest# l s -a. ... demo_web.iml docker .git .gitattributes .gitignore HELP.md .idea pom.xml .scannerwork src targetroot@jenkins mytest# rm -rf .scannerwork/root@jenkins mytest# l s -a. ... demo_web.iml docker .git .gitattributes .gitignore HELP.md .idea pom.xml src target

再次构建

过程中调用了sonarqube

完成构建

查看sonarqube网页,观察到代码测试结果

*harbor* *镜像仓库*

*部署*

在Jenkins服务器上把harbor压缩包进行解压缩,进行设置后,启动安装

bash 复制代码
[root@jenkins ~]# tar zxvf harbor-offline-installer-v2.8.2.tgz -C /usr/local/ [root@jenkins ~]# cd /usr/local/harbor/

//生成配置脚本

[root@jenkins harbor]# cp -p harbor.yml.tmpl harbor.yml //编辑配置脚本

[root@jenkins harbor]# vim harbor.yml

//设置Jenkins节点IP

hostname: 192.168.100.154 //注释掉所有关于[https](https)选项

\#https:

\# [https](https) port for harbor, default is 443

\# port: 443

\# The path of cert and key files for nginx

\#  certificate: /your/certificate/path

\#  private_key: /your/private/key/path

//设置账户密码

harbor_admin_password: harbor123 //启动安装脚本

[root@jenkins harbor]# ./install.sh

WARN[[0000](#bookmark8)] /usr/local/harbor/docker-compose.yml: `version` is obsolete

 
+ Running 10/10✔ Network harbor_harbor Created
0.1s ✔ Container harbor-log Started
0.5s ✔ Container registryctl Started
1.4s ✔ Container harbor-db Started
1.5s ✔ Container redis Started
1.3s ✔ Container harbor-portal Started
1.3s ✔ Container registry 1.4s Started

打开harbor镜像仓库地址网页,默认端口80 http://192.168.100.154/

输入用户名: admin

密码: harbor123

登录成功后进入首页

创建项目

点击新建好的repo项目,默认没有任何镜像

修改docker配置文件,添加仓库地址

bash 复制代码
[root@jenkins docker]# vim /etc/docker/daemon.j son {

"insecure-registries": ["192.168.100.154:80"],      //添加仓库节点地址及端口

"registry-mirrors": [

"https://05vz3np5.mirror.aliyuncs.com",

"https://do.nark.eu.org",

"https://dc.j8.work",

"https://docker.m.daocloud.io",

"https://dockerproxy.com",

"https://docker.mirrors.ustc.edu.cn",

"https://docker.nju.edu.cn",

"https://registry.docker-cn.com",

"https://hub-mirror.c.163.com",

"https://hub.uuuadc.top",

"https://docker.anyhub.us.kg",

"https://dockerhub.jobcher.com",

"https://dockerhub.icu",

"https://docker.ckyl.me",

"https://docker.awsl9527.cn",

"https://mirror.baidubce.com",

"https://docker.1panel.live"

]

}

//重启docker服务 ,后面需要把运行容器服务都进行重启(harbor,Jenkins,sonarqube) [root@jenkins docker]# systemctl restart docker

//重启harbor

[root@jenkins docker]# cd /usr/local/harbor/

[root@jenkins harbor]# docker-compose restart Restarting harbor-jobservice ... done

Restarting nginx        ... done

Restarting harbor-core    ... done

Restarting registry     ... done

Restarting harbor-portal   ... done

Restarting registryctl    ... done

Restarting harbor-db     ... done

Restarting redis       ... done

Restarting harbor-log    ... done

[root@jenkins harbor]# docker ps -a

CONTAINER ID  IMAGE                 COMMAND

CREATED     STATUS                PORTS

NAMES

74ded759a05c  goharbor/harbor-jobservice:v2.8.2   "/harbor/entrypoint.... "  20

minutes ago  Up 10 seconds (health: starting) harbor-jobservice

f0ad6c2766b6  goharbor/nginx-photon:v2.8.2     "nginx -g 'daemon of... "  20

minutes ago  Up 13 seconds (health: starting)  0.0.0.0:80->8080/tcp, :::80- >8080/tcp  nginx
b2639a702871 goharbor/harbor-core:v2.8.2 "/harbor/entrypoint.... " 20
minutes ago Up 13 seconds (health: starting) harbor-coref64c95413632 goharbor/registry-photon:v2.8.2 "/home/harbor/entryp... " 20
minutes ago Up 14 seconds (health: starting) registry

重启Jenkins服务

bash 复制代码
[root@jenkins jenkins_docker]# cd /usr/local/docker/jenkins_docker/[root@jenkins jenkins_docker]# docker-compose restart Restarting jenkins ... done
重启sonarqube服务
[root@jenkins jenkins_docker]# cd ../sonarqube_docker/[root@jenkins sonarqube_docker]# docker-compose restart Restarting sonarqube ... doneRestarting db    ... done

***\*推送镜像\****

Jenkins服务器本地登录harbor

[root@jenkins sonarqube_docker]# docker login -u admin -p harbor123192.168.100.154:80WARNING ! Using --password via the CLI i s i nsecure. Use --password-stdin.WARNING ! Your password will be stored unencrypted i n /root/.docker/config.j son. Configure a credential helper to remove this warning. Seehttps://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded

下载测试镜像nginx

[root@jenkins sonarqube_docker]# docker pull nginx

修改tag标签

镜像命名规范:仓库IP地址/项目名称/镜像名称:版本号

[root@jenkins sonarqube_docker]# docker tag nginx:latest 192.168.100.154:80/repo/nginx:test

推送镜像到harbor


[root@jenkins sonarqube_docker]# docker push 192.168.100.154:80/repo/nginx:test The push refers to repository [192.168.100.154:80/repo/nginx]07eaefc6ebf2: Pushedde2ef8ceb76a: Pushede6c40b7bdc83: Pushedf941308035cf: Pushed81a9d30670ec: Pushed1bf33238ab09: Pushed1bb35e8b4de1: Pushed test: digest:sha256:ccde53834eab53e85b35526a647cdb714ea4521b1ddf5a07b5c8787298d13087 size: 1778

查看harbor的repo中已经有了nginx:test镜像

*拉取镜像*

在本地Jenkins服务器中测试拉取,在拉取前先删除原有镜像

//查看本地镜像

bash 复制代码
[root@jenkins sonarqube_docker]# docker images
REPOSITORY TAG IMAGE ID CREATED
SIZE192.168.100.154:80/repo/nginx test 9592f5595f2b 6 days ago
192MBnginx latest 9592f5595f2b 6 days ago
192MBpostgres latest fbd9a209d4e8 3 weeks ago
438MBgoharbor/harbor-exporter v2.8.2 63341a78f287 2 years ago
98.1MBgoharbor/redis-photon v2.8.2 6f4498a430ca 2 years ago
121MBgoharbor/trivy-adapter-photon v2.8.2 06de9f1c733d 2 years ago
460MBgoharbor/notary-server-photon v2.8.2 ef7c8ea2dc49 2 years ago
114MBgoharbor/notary-signer-photon v2.8.2 4e5b1746a124 2 years ago
111MBgoharbor/harbor-registryctl v2.8.2 fa61a236a6d6 2 years ago
142MBgoharbor/registry-photon v2.8.2 f80e71363231 2 years ago
79.3MBgoharbor/nginx-photon v2.8.2 3d009028f260 2 years ago
120MB
goharbor/harbor-log v2.8.2 2914d282d9bf 2 years ago
127MBgoharbor/harbor-jobservice v2.8.2 40118f1568a8 2 years ago
141MBgoharbor/harbor-core v2.8.2 0bbbd1f379fc 2 years ago
165MBgoharbor/harbor-portal v2.8.2 3e74e0758aa4 2 years ago
127MBgoharbor/harbor-db v2.8.2 5126635ae9f0 2 years ago
174MBgoharbor/prepare v2.8.2 eb3cf3cdd17a 2 years ago
163MBjenkins/jenkins 2.346.3-lts-jdk8 d2378ff7630c 2 years ago
570MBsonarqube 8.9.6-community 3f623568fa64 3 years ago
497MB//删除已有的镜像
bash 复制代码
[root@jenkins sonarqube_docker]# docker rmi 192.168.100.154:80/repo/nginx:test

Untagged: 192.168.100.154:80/repo/nginx:test Untagged:

192.168.100.154:80/repo/nginx@sha256:ccde53834eab53e85b35526a647cdb714ea4521b1dd f5a07b5c8787298d13087

//测试拉取

[root@jenkins sonarqube_docker]# docker pull 192.168.100.154:80/repo/nginx:test test: Pulling from repo/nginx

Digest: sha256:ccde53834eab53e85b35526a647cdb714ea4521b1ddf5a07b5c8787298d13087 Status: Downloaded newer image for 192.168.100.154:80/repo/nginx:test

192.168.100.154:80/repo/nginx:test //再次查看,拉取成功

[root@jenkins sonarqube_docker]# docker images
REPOSITORY TAG IMAGE ID CREATED
SIZE192.168.100.154:80/repo/nginx test 9592f5595f2b 6 days ago
192MBnginx latest 9592f5595f2b 6 days ago
192MBpostgres latest fbd9a209d4e8 3 weeks ago
438MBgoharbor/harbor-exporter v2.8.2 63341a78f287 2 years ago
98.1MBgoharbor/redis-photon v2.8.2 6f4498a430ca 2 years ago
121MBgoharbor/trivy-adapter-photon v2.8.2 06de9f1c733d 2 years ago
460MBgoharbor/notary-server-photon v2.8.2 ef7c8ea2dc49 2 years ago
114MBgoharbor/notary-signer-photon v2.8.2 4e5b1746a124 2 years ago
111MBgoharbor/harbor-registryctl v2.8.2 fa61a236a6d6 2 years ago
142MBgoharbor/registry-photon v2.8.2 f80e71363231 2 years ago
79.3MBgoharbor/nginx-photon v2.8.2 3d009028f260 2 years ago
120MBgoharbor/harbor-log v2.8.2 2914d282d9bf 2 years ago
127MBgoharbor/harbor-jobservice v2.8.2 40118f1568a8 2 years ago
141MB
goharbor/harbor-core v2.8.2 0bbbd1f379fc 2 years ago
165MBgoharbor/harbor-portal v2.8.2 3e74e0758aa4 2 years ago
127MBgoharbor/harbor-db v2.8.2 5126635ae9f0 2 years ago
174MBgoharbor/prepare v2.8.2 eb3cf3cdd17a 2 years ago
163MBjenkins/jenkins 2.346.3-lts-jdk8 d2378ff7630c 2 years ago
570MBsonarqube 8.9.6-community 3f623568fa64 3 years ago
497MB

*Jenkins* *服务中使用* *docker*

Jenkins需要把镜像制作并推送到harbor中,就需要具备docker环境让Jenkins容器使用宿主机中docker环境

修改docker.sock的权限

bash 复制代码
[root@jenkins docker]# cd /var/run/[root@jenkins run]# ll...srw-rw----.  1 root      docker      0 6月  26 15:31 docker.sock...[root@jenkins run]# chown root:root docker.sock [root@jenkins run]# chmod o+rw docker.sock[root@jenkins run]# ll...srw-rw-rw-.  1 root      root       0 6月  26 15:31 docker.sock...

修改Jenkins脚本配置文件
[root@jenkins run]# cd /usr/local/docker/jenkins_docker/[root@jenkins jenkins_docker]# vim docker-compose.yml version: "3.1"services:jenkins:image: jenkins/jenkins:2.346.3-lts-jdk8container_name: jenkinsports:- 8080:8080- 50000:50000 volumes:- ./data/:/var/jenkins_home/- /var/run/docker.sock:/var/run/docker.sock        //添加- /usr/bin/docker:/usr/bin/docker             //添加- /etc/docker/daemon.json:/etc/docker/daemon.j son     //添加

启动Jenkins服务

[root@jenkins jenkins_docker]# docker-compose up -d Recreating jenkins ... done

验证:进入Jenkins容器内部执行docker命令


[root@jenkins jenkins_docker]# docker exec -it jenkins bash jenkins@0eb81fc79a4a:/$ docker versionClient: Docker Engine - Community Version:      26.1.4API version:    1.45Go version:     go1.21.11Git commit:    5650f9bBuilt:       Wed J un 5 11:32:04 2024OS/Arch:      linux/amd64Context:      default Server: Docker Engine - Community Engine:Version:     26.1.4API version:    1.45 (minimum version 1.24)Go version:    go1.21.11Git commit:    de5c9cfBuilt:      Wed J un 5 11:31:02 2024OS/Arch:      linux/amd64Experimental:   falsecontainerd:Version:     1.6.33GitCommit:     d2d58213f83a351ca8f528a95fbd145f5654e957runc:Version:     1.1.12GitCommit:     v1.1.12-0-g51d5e94docker-init:Version:      0.19.0GitCommit:     de40ad0

*Jenkins* *服务中构建镜像推送到* *harbor* *仓库*

到Windows系统的idea中,删除docker-compose文件

修改一下内容3.0重新提交

添加3.0标签

项目-配置-构建后操作

选择执行shell

命令内容如下:

mv target/*.jar docker/docker build -t mytest:$tag docker/

选择对应的标签进行构建

镜像构建成功

在Jenkins服务器中查看镜像

root@jenkins jenkins_docker# docker imagesREPOSITORY TAG IMAGE ID CREATEDSIZEmytest v3.0 07c0cd7efbf4 2 minutes ago543MB

推送到harbor配置

项目-配置-构建后操作

编辑内容如下:(登录harbor-定义镜像标签-推送harbor)

bash 复制代码
docker login -u admin -p harbor123 192.168.100.154:80docker tag mytest:$tag 192.168.100.154:80/repo/mytest:$tag docker push 192.168.100.154:80/repo/mytest:$tag

再次进行构建3.0项目

完成构建

查看harbor的repo项目中已成功存储mytest镜像

*镜像部署目标* *web* *服务器*

1:告知目标服务器拉取哪个镜像。 告知内容(harbor地址; harbor仓库名;镜像名;镜像版本;容器运行端口号)

2:判断当前服务器是否正在运行该容器,如果正在运行则需要删除。

3:如果目标服务器已经存在当前镜像,则需要删除该镜像。

4:目标服务器拉取harbor上的镜像。

5:将拉取的镜像运行为容器在Jenkins服务器中,编写脚本

打开项目-配置-General

添加字符参数,容器启动时,主机端口

再添加字符参数,添加容器端口

构建后操作

命令内容如下:(注意: <deploy.sh>脚本复制过去,并没有执行权限,需要重新赋予)

mv /usr/local/test/deploy.sh /usr/bin/chmod +x /usr/bin/deploy.sh<deploy.sh> <192.168.100.154> repo {JOB_NAME} tag container_port host_port

进行构建

查看构建结果

在目标web服务器中查看镜像

root@web \~# docker images REPOSITORY TAGIMAGE ID CREATEDSIZE192.168.100.154/repo/mytestv3.0734827ccc3539 minutes ago543MB

查看容器

root@web \~# docker ps -aCONTAINER ID IMAGE COMMANDCREATED STATUS PORTSNAMES525506d7cc30 192.168.100.154/repo/mytest:v3.0 "/bin/sh -c 'java -j... " minutes ago Up 10 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp 10mytest

查看网页

http://192.168.100.155:8080/test

相关推荐
Neighbor_OldY1 小时前
CSRF跨站请求伪造攻击检测与应急处置实战:伪造请求识别与防护落地
运维·安全·web安全
生活爱好者!1 小时前
NAS能批量做短视频?docker部署MoneyPrinterTurbo
运维·docker·容器
考虑考虑1 小时前
Redis8.8新特性
运维·redis·后端
云飞云共享云桌面2 小时前
钣金制造研发优化:不采购传统工作站,实现 SolidWorks 团队共用服务器开展三维建模
运维·服务器·网络·数据库·3d·制造
YUJIANYUE2 小时前
AspFox-类NetBox的ASP+Access迷你单文件服务器V202609
运维·服务器
harmony&2 小时前
DevOps 实战:从概念到 CI/CD 持续交付全流程
运维·ci/cd·devops
皮卡丘不断更2 小时前
视频自动剪、内容自动发:我的多平台营销自动化工作台
大数据·运维·自动化·视频剪辑·营销自动化·多平台运营·creatorhub
fengyehongWorld2 小时前
linux Capability中的CAP_NET_BIND_SERVICE
linux·运维·服务器
汉拓3D数字化2 小时前
SolidWorks PDM服务器配置怎么选?冷备份vs热备份vs分布式
运维·服务器·科技·自动化·系统·软件