T-Pot多功能蜜罐实践@debian12@FreeBSD
T-Pot介绍
T-Pot是一个集所有功能于一身的、可选择分布式的多构架(amd64,arm64)蜜罐平台,支持20多个蜜罐和很多可视化选项,使用弹性堆栈、动画实时攻击地图和许多安全工具来进一步改善欺骗体验。GitHub - telekom-security/tpotce: 🍯 T-Pot - The All In One Multi Honeypot Platform 🐝
可能是当前更新最及时的蜜罐系统了。

安装
发现需要编译安装,为了安全,不要在自己工作、学习的机器上安装,可以先装一个虚拟机,然后在虚拟机里安装。虚拟机安装debian见:Debian12 安装留档@Virtual Box_firmware-12.5.0-amd64-dvd-1.iso-CSDN博客
安装方法1
创建自己的iso ,个人实践不需要,只要按照方法2安装就行了。
git clone https://github.com/telekom-security/tpotcecd tpotcemakeiso.sh
创建好光盘后用这个光盘安装即可。
安装方法2
先安装好debian系统,然后在有sudo权限的个人账户下安装:
git clone https://github.com/telekom-security/tpotce
cd tpotce/iso/installer/
./install.sh
若github速度慢,可以使用--depth选项
git clone --depth https://github.com/telekom-security/tpotce
顺利的话前面3句就安装好了。如果不顺利,再根据报错解决问题。 以下步骤都是踩坑经历,可以忽略,一直到“开始使用”章节即可。
可以使用gitcode镜像:
git clone https://gitcode.com/telekom-security/tpotce
安装的东西可真不少... 整个过程耗时较长,尤其是国内。
也可以自动化安装
自动化安装需要把配置文件tpotce/iso/installer/tpot.conf.dist的dist去掉,安装的时候加上auto选项
git clone https://github.com/telekom-security/tpotce
cd tpotce/iso/installer/
cp tpot.conf.dist tpot.conf
./install.sh --type=auto --conf=tpot.conf
开始安装后,安装程序进行检测,若符合条件,就会显示:

ssh端口保护起来了,但其它端口都没有动。按确定键下一步。
checking https://hub.docker.com 这里报错,需要修改代码
修改myREMOTESITES="https://hub.docker.com https://github.com https://pypi.python.org https://debian.org https://listbot.sicherheitstacho.eu" 修改成
myREMOTESITES="https://mirror.baidubce.com https://github.com https://pypi.python.org https://debian.org https://listbot.sicherheitstacho.eu"
然后就是设置web的用户名和密码
用户名:testtpot 密码 123
设好之后选择安装包,(第一次选了MINI,后来选了第一项Hive),后面就是漫长的安装过程。如果选全部,大约需要100G空间。(实践最终硬盘占用带系统是11G空间。)
最后安装完成后,系统需要重启。
重启后端口开放:631 34801 64295
安装过程中发现/opt/tpot克隆失败,将github改成gitcode
myREMOTESITES="https://mirror.baidubce.com https://gitcode.com https://pypi.python.org https://debian.org https://listbot.sicherheitstacho.eu"
安装到最后出现提示
TASK [Change SSH Port to 64295 (AlmaLinux, Debian, Fedora, Raspbian, Rocky, Ubuntu)] ***
fatal: [127.0.0.1]: FAILED! => {"changed": false, "msg": "Destination /etc/ssh/sshd_confi
g does not exist !", "rc": 257}
PLAY RECAP *********************************************************************
127.0.0.1 : ok=22 changed=12 unreachable=0 failed=1 skipped=2
rescued=0 ignored=0
### Something went wrong with the Playbook, please review the output and / or install_tpot.log for clues.
### Aborting.
感觉爱是没有安装成功。
重新安装openssh-server ,终于能继续安装下去了,显示
### Playbook was successful.### Choose your T-Pot type:
### (H)ive - T-Pot Standard / HIVE installation.
### Includes also everything you need for a distributed setup with sensors.
### (S)ensor - T-Pot Sensor installation.
### Optimized for a distributed installation, without WebUI, Elasticsearch andKibana.
### (M)obile - T-Pot Mobile installation.
### Includes everything to run T-Pot Mobile (available separately).
最后终于安装成功:
### Done. Please reboot and re-connect via SSH on tcp/64295.
提示:
✔ mailoney Pulled 5125.4s ✔ fatt Pulled 10.8s ### Please review for possible honeypot port conflicts.
### While SSH is taken care of, other services such as
### SMTP, HTTP, etc. might prevent T-Pot from starting.[sudo] skywalk 的密码:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:64295 0.0.0.0:* LISTEN 0 140763 40997/sshd: /usr/sb
tcp6 0 0 :::64295 :::* LISTEN 0 140774 40997/sshd: /usr/sb
udp 0 0 0.0.0.0:68 0.0.0.0:* 0 13192 401/dhclient ### Done. Please reboot and re-connect via SSH on tcp/64295.
重启后发现这回终于安装成功了,所有的端口都出来了:
netstat -an |more
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:2404 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:465 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5555 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1433 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:81 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1080 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:42 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:20 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1025 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8443 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:135 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:11112 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1883 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:64294 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:64295 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:64297 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:64303 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:64299 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:64298 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:10001 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:9200 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:5060 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:50100 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:631 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:587 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:2575 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:1723 0.0.0.0:* LISTEN
整个系统安装好之后占用空间11G,系统负载还是比较高的 load average: 114.00, 53.68, 23.78
开始使用
安装好重启之后,使用安装时设置的用户来登录。SSH使用原来的系统账户登录,T-Pot使用 tpot这个用户名登录,其它都用<WEB_USER>用户名登录。
登录ssh
用系统用户名和密码登录
ssh -l username -p 64294 ipaddress
浏览器登录
https://ipaddress:64297
用户名是装机时设定的web_user ,比如testtpot,密码123
登录之后的web界面:

还没有受到攻击的攻击地图:
说图片违规了,那就删掉好了,具体大家可以看看官网的图片,就是一张世界地图,可以看到攻击的来源等图像信息。
执行deploy
发现64297还没有启动。
于是登录到64294 ,然后执行deploy.sh
提示
# Was a T-Pot SENSOR installed? (y/n): y
# Enter the remote username T-Pot SENSOR was installed with: skywa
# Enter the IP/domain name of the SENSOR: 192.168.1.21
# Has a SSH key been deployed to the SENSOR? (y/n): y
# Enter the IP/domain name of this HIVE: 192.168.1.21
# The following SENSOR credentials have been created:
# New SENSOR username: sensor-loathsome-referent
# New SENSOR passowrd: wh
BECOME password:
123456
然后有报错:
独立启动
There is not much to do except to login and check via dps.sh if all services and honeypots are starting up correctly and login to Kibana and / or Geoip Attack Map to monitor the attacks.
问题是根本就没有见到dps.sh文件啊!
第一次启动
另外T-Pot使用了Hive
Hive是基于Hadoop的数据仓库工具。可以用于存储在Hadoop集群中的HDFS文件数据集进行数据整理、特殊查询和分析处理。
使用docker启动
命令:docker-compose up
看看能否启动
总结
T-Pot是一个比较全面的蜜罐系统,最低需要11G硬盘空间,2G内存,1核cpu,这个配置是实践成功过的。但是即使在3G内存4核cpu下,还是有些服务会内存不够而退出。所以最终使用的时候还是建议按官网的硬件需求来:
| T-Pot Type | RAM | Storage | Description |
|---|---|---|---|
| Hive | 16GB | 256GB SSD | As a rule of thumb, the more sensors & data, the more RAM and storage is needed. |
T-Pot的安装,只需要三句话即可,git clone 下载代码,进入目录,然后执行.install.sh 。但是有时候可能会比较坎坷,主要碰到如下几个问题:
- 1 官网git clone就失败,可以用--depth 1参数解决
- 2 安装时需要再次git (git clone --origin origin https://github.com/telekom-security/tpotce /home/skywalk/tpotce)的时候可能失败 ,解决方法是第一步的时候要本地git下载,而不要采用在其它机器git然后cp到本地的方法,那样可能导致这步出错
- 3 docker慢以至于无法完成安装。用加速镜像,并耐心等待。加速镜像需要修改install.sh源码,找到myREMOTESITES变量,将docker.com换成镜像地址:
myREMOTESITES="https://mirror.baidubce.com https://github.com https://pypi.python.org https://debian.org https://listbot.sicherheitstacho.eu"
- 4 一定要用T-Pot的新版本,老版本会有各种各样的问题。比如gitcode网站的T-Pot就更新不及时,安装会失败。
调试
debian apt安装软件需要插cd
安装软件的时候提示——更换介质:请把标有xxx的盘片插入驱动器/media/cdrom 再按回车键
解决方法:打开/etc/apt/sources.list文件 ,把第一行“deb cdrom”去掉即可。
不明白为什么设计成没有cdrom就卡住....
install的时候报错:Aborting. Debian bookworm is not supported
晕啊,debian12就是bookworm ,难道非要降到11 bullseye版本吗?
听话,用debian11
但是官网明明说12.5是可以的啊!百思不得其解。看到作者说“For now this is intentional.” 也就是特意的?
到install.sh文件里,找到这句,把下面的exit注释掉
echo “Aborting. Debian $myLSB is not supported."
# exit
ps:T-Pot最新版本已经没有这个问题了,用老版本才会踩坑。
安装好后么有/opt/tpot目录
这不是白装了么? 原来是安装的时候就提示docker有问题,会安装失败。
checking https://hub.docker.com 这里报错,需要修改install.sh的代码
修改myREMOTESITES="https://hub.docker.com https://github.com https://pypi.python.org https://debian.org https://listbot.sicherheitstacho.eu" 修改成
myREMOTESITES="https://mirror.baidubce.com https://github.com https://pypi.python.org https://debian.org https://listbot.sicherheitstacho.eu"
好了,能安装下去了,但是还是有报错
克隆报错unexpected disconnect while reading sideband packet
正克隆到/opt/tpot
错误:预期仍然需要476个字节的正文
fetch-pack :unexpected disconnect while reading sideband packet
致命错误:过早的文件结束符(EOF)
致命错误:fetch-pack 无效的index-pack
将install.sh文件中的github改为gitcode
myREMOTESITES="https://mirror.baidubce.com https://gitcode.com https://pypi.python.org https://debian.org https://listbot.sicherheitstacho.eu"
成功装上!
但是随之而来的问题是:gitcode站的版本不是最新的。会有其它问题,所以最终还是要用回github.com。不过只要刚开始本地就是用git clone 下载的github官网最新版本,那么这里就不会遇到问题。
重复安装的时候报错
修改install.sh文件内容
一、报错不能重复安装Installer can only be executed once.
将判断不能重复安装里面的exit语句注释
if [ -s "$myTPOT_INSTALL_LOG" ];thenecho "Aborting. Installer can only be executed once."# exit
fi
二、 报错已经有tsec用户安装程序退出
两种方法,1 删除tsec用户,使用命令:userdel tsec
2 代码里找到判断语句,注释掉exit语句。我用了方法1 。
老版本会有这个问题,新版本没有该问题。
安装完重启tpot后没有64294、64295和64297端口的服务
服务根本没有起来啊
咋办呢? 也根本没有看见dps.sh 文件啊,怎么检查所有服务和蜜罐是否正常启动呢?
也许是要用tsec用户登录?
原来就是没有安装成功,所以服务也没有起来。重新安装,安装结束没有报错才是真的安装好了。
安装到最后提示报错Destination /etc/ssh/sshd_config does not exist
TASK [Change SSH Port to 64295 (AlmaLinux, Debian, Fedora, Raspbian, Rocky, Ubuntu)] ***
fatal: [127.0.0.1]: FAILED! => {"changed": false, "msg": "Destination /etc/ssh/sshd_config does not exist !", "rc": 257}PLAY RECAP *********************************************************************
127.0.0.1 : ok=22 changed=3 unreachable=0 failed=1 skipped=2 rescued=0 ignored=0 ### Something went wrong with the Playbook, please review the output and / or install_tpo
t.log for clues.
### Aborting.
问题是发现/etc/ssh/sshd_config 这个文件是存在的啊。看错主机了,这个文件确实没有。
使用命令安装openssh-server软件
apt install openssh-server
安装好之后,这个sshd的服务就有了
执行deploy报错
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
fatal: [192.168.1.21]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: Warning: Permanently added '[192.168.1.21]:64295' (ED25519) to the list of known hosts.\r\nskywalk@192.168.1.21: Permission denied (publickey,password).", "unreachable": true}PLAY RECAP ******************************************************************************
192.168.1.21 : ok=0 changed=0 unreachable=1 failed=0 skipped=0 rescued=0 ignored=0
不太明白...
先不管deploy了。最终没有再去做deploy的操作。
install的时候报错sshd打不开
可能是以前安装之后对系统造成了影响。也可能是没有安装sshd服务,手动使用apt install openssh-server安装。
若还是有问题,可以使用uninstall.sh 恢复原环境试试(这还是tpot旧版本的问题,新版本没有该问题)。
tpot安装时报错过早的文件结束符(EOF)\n致命错误
TASK [Clone / Update T-Pot repository (All)] ***********************************
fatal: [127.0.0.1]: FAILED! => {"changed": false, "cmd": "/usr/bin/git clone --origin origin https://github.com/telekom-security/tpotce /home/skywalk/tpotce", "msg": "正克隆到 '/home/skywalk/tpotce'...\n错误:RPC 失败。curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8)\n错误:预期仍然需要 6547 个字节的正文\nfetch-pack: unexpected disconnect while reading sideband packet\n致命错误:过早的文件结束符(EOF)\n致命错误:fetch-pack:无效的 index-pack 输出", "rc": 128, "stderr": "正克隆到 '/home/skywalk/tpotce'...\n错误:RPC 失败。curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8)\n错误:预期仍然需要 6547 个字节的正文\nfetch-pack: unexpected disconnect while reading sideband packet\n致命错误:过早的文件结束符(EOF)\n致命错误:fetch-pack:无效的 index-pack 输出\n", "stderr_lines": ["正克隆到 '/home/skywalk/tpotce'...", "错误:RPC 失败。curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8)", "错误:预期仍然需要 6547 个字节的正文", "fetch-pack: unexpected disconnect while reading sideband packet", "致命错误:过早的文件结束符(EOF)", "致命错误:fetch-pack:无效的 index-pack 输出"], "stdout": "", "stdout_lines": []}
重新install.sh安装一次,报错变成
install.sh安装报错:curl 16 Error in the HTTP2 framing layer\n致命错误
TASK [Clone / Update T-Pot repository (All)] ***********************************
fatal: [127.0.0.1]: FAILED! => {"changed": false, "cmd": "/usr/bin/git ls-remote https://github.com/telekom-security/tpotce -h refs/heads/master", "msg": "错误:RPC 失败。curl 16 Error in the HTTP2 framing layer\n致命错误:在引用列表之后应该有一个 flush 包", "rc": 128, "stderr": "错误:RPC 失败。curl 16 Error in the HTTP2 framing layer\n致命错误:在引用列表之后应该有一个 flush 包\n", "stderr_lines": ["错误:RPC 失败。curl 16 Error in the HTTP2 framing layer", "致命错误:在引用列表之后应该有一个 flush 包"], "stdout": "", "stdout_lines": []}
加上这句变量
GIT_CURL_HTTP2=off git ls-remote https://github.com/telekom-security/tpotce -h refs/heads/master
再install.sh试试
还是不行
错误CANCEL (err 8)", "错误:预期仍然需要 3419 个字节的正文",
fatal: [127.0.0.1]: FAILED! => {"changed": false, "cmd": "/usr/bin/git clone --origin origin https://github.com/telekom-security/tpotce /home/skywalk/tpotce", "msg": "正克隆到 '/home/skywalk/tpotce'...\n错误:RPC 失败。curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8)\n错误:预期仍然需要 3419 个字节的正文\nfetch-pack: unexpected disconnect while reading sideband packet\n致命错误:过早的文件结束符(EOF)\n致命错误:fetch-pack:无效的 index-pack 输出", "rc": 128, "stderr": "正克隆到 '/home/skywalk/tpotce'...\n错误:RPC 失败。curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8)\n错误:预期仍然需要 3419 个字节的正文\nfetch-pack: unexpected disconnect while reading sideband packet\n致命错误:过早的文件结束符(EOF)\n致命错误:fetch-pack:无效的 index-pack 输出\n", "stderr_lines": ["正克隆到 '/home/skywalk/tpotce'...", "错误:RPC 失败。curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8)", "错误:预期仍然需要 3419 个字节的正文", "fetch-pack: unexpected disconnect while reading sideband packet", "致命错误:过早的文件结束符(EOF)", "致命错误:fetch-pack:无效的 index-pack 输出"], "stdout": "", "stdout_lines": []}
这样试试:git config --global core.autocrlf true
git config --global core.autocrlf false 都不行
有人说因为被墙的原因,再试试这样
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999
再不行最大缓存也增加:
git config --global http.postBuffer 1024288000
git config --list 可以确认下缓存数值
不管用
禁用http2试试
git config --global http.version HTTP/1.1
不行
加入压缩
git config --global core.compression -1
不管用
加入--depth 1
下载的时候管用,安装的时候找不到写入的地方啊
最终解决方法:
重新git clone,重新install.sh安装,成功
将以太网线插上,从以太网走,以加速网速。同时重新git clone源码,且 git clone 的时候加上 --depth 1 参数,执行命令
git clone --depth 1 https://github.com/telekom-security/tpotce
下载完源码后重新install.sh安装,这次就比较顺利
添加web账户:testtpot 123
这回安装成功了,前面git 的报错(过早的文件结束符(EOF)\n致命错误等)也没有了。
打开管理网页刷了一下就连不上了
怀疑内存少,增加内存。大约2G是极限,3G可能就比较好了。
另外也有可能是服务闪退了一下。整个系统的负载比较重,看来确实需要较好的设备才行。
好像有些服务报内存问题退出
解决方法,加大系统内存,尽量向手册写的官方配置看齐,比如内存16G 。
相关文章:
T-Pot多功能蜜罐实践@debian12@FreeBSD
T-Pot介绍 T-Pot是一个集所有功能于一身的、可选择分布式的多构架(amd64,arm64)蜜罐平台,支持20多个蜜罐和很多可视化选项,使用弹性堆栈、动画实时攻击地图和许多安全工具来进一步改善欺骗体验。GitHub - telekom-sec…...
Sed流编辑器总结
sed 是 Unix 和 Linux 系统中的一个强大的流编辑器。它用于对文本进行基本的修改和处理。以下是关于 sed 的详细解说,包括其基本语法,常见用法和一些高级用法。 基本语法 sed [选项] 命令 输入文件常见选项 -e:指定要执行的 sed 命令。-f&a…...
智合同丨AIGC如何助力合同智能应用
#AIGC #合同智能应用 #智合同 AIGC,即人工智能生成内容技术(Artificial Intelligence Generated Content),近期在各个领域发展可谓是如火如荼,那么它在合同智能应用方面可以提供哪些助力? 让我们和智合…...
CSRF 令牌的生成过程和检查过程
在 Django 中,CSRF 令牌的生成和检查过程是通过 Django 的 CSRF 中间件 (CsrfViewMiddleware) 和模板标签 ({% csrf_token %}) 自动处理的。以下是详细的生成和检查过程: CSRF 令牌的生成过程 用户访问页面: 当用户第一次访问页面时,Django 会为用户创建一个会话。如果用户…...
计算机网络学习记录 网络层 Day4(下)
计算机网络学习记录 网络层 Day4 (下) 你好,我是Qiuner. 为记录自己编程学习过程和帮助别人少走弯路而写博客 这是我的 github https://github.com/Qiuner ⭐️ gitee https://gitee.com/Qiuner 🌹 如果本篇文章帮到了你 不妨点个赞吧~ 我…...
3、前端本地环境搭建
前端本地环境搭建 安装node [node下载地址] https://nodejs.org/en/download/prebuilt-installer 选择LTS的版本进行下载 下载后直接双击点击,选择自己想要安装到的目录一直点下一步即可(建议不要安装到c盘) 安装完成后配置环境变量&am…...
Python爬取城市空气质量数据
Python爬取城市空气质量数据 一、思路分析1、寻找数据接口2、发送请求3、解析数据4、保存数据二、完整代码一、思路分析 目标数据所在的网站是天气后报网站,网址为:www.tianqihoubao.com,需要采集武汉市近十年每天的空气质量数据。先看一下爬取后的数据情况: 1、寻找数据…...
【MyBatisPlus条件构造器】
文章目录 什么是条件构造器?使用步骤1. 引入 MyBatisPlus 依赖2. 创建实体类3. 使用条件构造器查询4. 执行查询 示例代码 什么是条件构造器? 条件构造器是 MyBatisPlus 提供的一种灵活的查询条件设置方式,它可以帮助开发者构建复杂的查询条件…...
容器多机部署eureka及相关集群服务出现 Request execution failed with message: AuthScheme is null
预期部署方案:两个eureka三个相关应用 注册时应用出现:Request execution failed with message: Cannot invoke “Object.getClass()” because “authScheme” is null,一开始认为未正确传递eureka配置的账户密码,例:…...
Qt Graphics View Framework 使用教程
欢迎来到 Qt Graphics View Framework 的世界!本教程将引导您了解这一强大工具的基础知识,并教您如何开始使用它来创建丰富的 2D 图形界面。无论您是编程新手还是经验丰富的开发者,本教程都将帮助您快速上手。 基本概念 Qt Graphics View F…...
【调试笔记-20240606-Linux-为 OpenWrt 的 nginx 服务器添加Shell CGI 支持】
调试笔记-系列文章目录 调试笔记-20240606-Linux-为 OpenWrt 的 nginx 服务器添加Shell CGI 支持 文章目录 调试笔记-系列文章目录调试笔记-20240606-Linux-为 OpenWrt 的 nginx 服务器添加Shell CGI 支持 前言一、调试环境操作系统:Windows 10 专业版调试环境调试…...
flink实战--⼤状态作业调优实践指南-Flink SQL 作业篇
简介 作为一种特定领域语言,SQL 的设计初衷是隐藏底层数据处理的复杂性,让用户通过声明式语言来进行数据操作。而Flink SQL 由于其架构的特殊性,在实现层面通常需引入状态后端 配合 checkpoint 来保证计算结果的最终一致性。目前 Flink SQL 生成状态算子的策略由优化器根据配…...
数据结构:顺序串
目录 1.顺序串是什么? 2.顺序串常见操作和应用 3.包含头文件 4.结点设计 5.接口函数定义 6.接口函数实现 7.顺序串测试案列 顺序串是什么? 顺序串,用于存储和操作字符串。在顺序串中,字符串被存储在一个连续的内存块中,…...
掌握复选框(Checkbox)的奥秘:全选与反选功能实现
前言: 在网页设计中,复选框(Checkbox)是一种常见且实用的交互元素,它允许用户从一系列选项中选择多个项。无论是电子商务网站上的商品筛选,还是在线表单的数据收集,复选框都发挥着重要作用。然…...
一篇文章带你搞懂C++引用(建议收藏)
引用 6.1 引用概念 引用不是新定义一个变量,而是给已存在变量取了一个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。 比如:李逵,在家称为"铁牛",江湖上人称&quo…...
查询SQL:文章浏览1
问题描述 请查询出所有浏览过自己文章的作者 结果按照 id 升序排列。 查询结果的格式如下所示: 题目分析: 这题主要考察排序asc(升序)、desc(降序)以及distinct字段。 解决方案: select DIS…...
android 在onCreate方法中获得view的宽高
view在绘制完成后才会有自己的宽高,所以在onCreate中要获得view的宽高可以通过以下4中方法: 1、ViewTreeObserver:监听界面绘制事件,在layout时调用,使用完毕后记得removeListener 2、view.post,因为runn…...
SOA主要协议和规范
Web服务作为实现SOA中服务的最主要手段。首先来了解Web Service相关的标准。它们大多以“WS-”作为名字的前缀,所以统称“WS-*”。Web服务最基本的协议包括UDDI、WSDL和SOAP,通过它们,可以提供直接而又简单的Web Service支持,如图…...
30、matlab现代滤波:维纳滤波/LMS算法滤波/小波变换滤波
1、信号1和信号2的维纳滤波 实现代码 N 2000; %采样点数 Fs 2000; %采样频率 t 0:1 / Fs:1 - 1 / Fs; %时间序列 Signal1 sin(2*pi*20* t) sin(2*pi*40* t) sin(2*pi*60* t); Signal2[2*ones(1,50),zeros(1,50),-1*ones(1,100),zeros(1,50),-2*ones(1,50),zeros(1,50),1…...
HTML5 视频 Vedio 标签详解
HTML5 引入了 <video> 标签,允许开发者在网页中直接嵌入视频文件,而不需要依赖第三方插件。本文将全面介绍 <video> 标签的各种属性,并通过实例代码详细说明其用法。 一、基础用法 1. 基本结构 HTML5 中使用 <video> 标…...
C++实现分布式网络通信框架RPC(3)--rpc调用端
目录 一、前言 二、UserServiceRpc_Stub 三、 CallMethod方法的重写 头文件 实现 四、rpc调用端的调用 实现 五、 google::protobuf::RpcController *controller 头文件 实现 六、总结 一、前言 在前边的文章中,我们已经大致实现了rpc服务端的各项功能代…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
零基础设计模式——行为型模式 - 责任链模式
第四部分:行为型模式 - 责任链模式 (Chain of Responsibility Pattern) 欢迎来到行为型模式的学习!行为型模式关注对象之间的职责分配、算法封装和对象间的交互。我们将学习的第一个行为型模式是责任链模式。 核心思想:使多个对象都有机会处…...
AI编程--插件对比分析:CodeRider、GitHub Copilot及其他
AI编程插件对比分析:CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展,AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者,分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...
Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...
视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
