- 博客(29)
- 收藏
- 关注
原创 Http代理服务器选型与搭建
安装Proxy Switchy Omega3插件。如果不需要用户名密码认证,配置文件改成如下即可。通过http代理访问内网网站,如图显示成功访问。使用curl测试通过代理能否访问百度。加入以下内容,支持用户名和密码认证。设置完左下角点击应用即可生效。通过apt下载squid。添加用户名/密码限制访问。
2025-04-09 09:21:08
528
原创 Ubuntu部署Dufs文件服务器
运行dufs,设置登录用户名密码为admin和888888,-A允许所有操作,文件服务器根目录为/home/narada/ems,放在后台执行且不输出错误信息。查看rust版本,需要>1.81。将dufs加入环境变量。
2025-03-25 16:20:10
595
原创 apache服务器允许访问软链接
之前搭建了一台apache服务器,想在里面使用软链接来链接到不同的文件夹,实现服务器指定文件夹访问。本以为创建完软链接可以直接显示了,但是却怎么也显示不全。研究了一个小时,终于得以解决。
2025-01-08 15:16:00
773
原创 Ubuntu配置双网卡Bond和4G移动网卡
最近项目里需要用到AB双网,领导让我进行预研,并提供了一种思路,使用Bond技术。经过几天查询资料和实验,取得了初步成功,分享给大家。参考文章1:https://blog.youkuaiyun.com/WuDan_1112/article/details/124756315参考文章2:https://blog.youkuaiyun.com/weixin_66855479/article/details/144507395。
2025-01-07 15:09:53
1452
原创 Ubuntu安装redis和基本配置
设置绑定ip地址为0.0.0.0,并取消保护模式,可以让其他ip地址访问redis(根据需要设置)redis配置文件在/etc/redis/目录下,可执行文件在/usr/bin目录下。设置完密码之后,打开redis-cli也需要输入密码。设置守护进程运行,如果不设置会放在前台执行。redis无法持久化写入问题,出现如下错误。编辑配置文件,设置redis服务器密码。通过配置文件启动redis。打开redis-cli工具。输入如下语句即可解决。
2024-12-17 15:20:14
502
原创 sqlalchemy异步方法使用
注意,使用select查询时获取单个要用scalar(),因为sqlalchemy的异步方法不支持query。建立异步引擎和session,后面接口的async_session()都从这里引入。一般是select搭配scalar()使用,query()搭配fisrt()使用。comment表示注释,生产mysql的数据表里面会带上注释。以用户为例,建立用户模型继承基类。创建基类base.py。
2024-12-13 14:56:42
1155
原创 Ubuntu使用Qt虚拟键盘,支持中英文切换
最近领导给了个需求,希望将web嵌入到客户端里面,做一个客户端外壳,可以控制程序的启动、停止、重启,并且可以调出键盘在触摸屏上使用(我们的程序虽然是BS架构,但程序还是运行在本地工控机上的),我研究了一下qt的webengineview,成功将web嵌入到客户端里面,但是虚拟键盘这个问题却难住了我。 首先客户端无法调出系统的虚拟键盘,我发现调系统键盘这条路走不通后,转头去研究qt官方自带的虚拟键盘,但是官方的虚拟键盘不支持拼音输入,而且自带了一大堆语言,我只需要中英文。
2024-11-01 15:33:14
1201
5
原创 Http请求转发服务器实现
2.使用Http请求转发服务器,将现场和他对应的VPN的ip地址映射起来存到数据库里,前端先请求服务器本地IP地址(127.0.0.1),当通过主界面跳转到某个现场时,通过数据库查询现场VPN的IP地址,然后将之后的请求都转发到对应的VPN地址,即可获取对应现场的数据。1.使用代理,将每台工控机的web服务端口代理到云服务器上的一个空闲端口,这种方式的优点是不需要额外写代码实现,只需要通过配置代理即可,缺点是云服务器上端口占用过多,每打开现场的网址url上面都会带一个端口号。
2024-10-18 17:31:50
1126
原创 Linux使用再生龙备份系统,并在新机器上还原系统,超详细步骤
比如说我有100台工控机,每台工控机我都想提前预制好我的程序,里面所有的环境都已经提前配好,一开机就能直接进入软件展示界面。将启动盘插入工控机,开机进入BIOS,选择U盘启动(用+号可以修改启动顺序将U盘启动项上移动)插入再生龙启动U盘,开机进入BIOS选择U盘启动(用+号可以修改启动顺序将U盘启动项上移动)此时可以看到我插入的U盘(/dev/sdc)已经被识别到,选择Ctrl+C退出。插入空U盘,打开rufus软件,选择再生龙镜像,进行制作再生龙U盘启动盘。此时插入存放镜像的U盘,等待5秒识别U盘。
2024-09-18 15:41:12
5140
10
原创 nps代理搭建内网穿透服务,访问内网web网站和远程运维
使用nps代理相对于VPN,对于用户来说更加友好,只需要公网IP+端口号就可以访问内网服务,缺点是每个服务都需要一个代理端口,和VPN来说各有优劣。
2024-09-12 17:37:24
1495
原创 Linux远程命令行终端启动向日葵
一般我们将工控机发到现场会做双重保险,接一个vpn或ssh反向代理,再接一个向日葵,一个是方便终端操作,启动程序,修改配置文件等。一个是方便界面操作,比如说启动网页或者客户端,必须要通过界面。但是有时将工控机发到现场会忘记将向日葵设置开机自启动,现场如果也没人协助,这样就无法操作界面了,我们需要通过远程将向日葵启动,但是前提是必须设置的永久验证码。
2024-08-17 11:10:59
4142
5
原创 Pyside(PyQt)开发中英文版软件
最近接到一个新需求,软件需要开发英文版。自己研究了一阵子pyside英文版开发,差不多走通了,把方案分享给大家。
2024-08-05 10:28:44
467
原创 Pyqt结合matplotlib实现图表的基本交互,实现图表的放大缩小,移动光标注释
最近在使用pyqt结合matlibplot开发一款内部使用的数据分析软件,发现matlibplot库在处理大数据,出图性能方面还是很不错的,但是就是图表的交互性上差了一点,比如说图像的放大和缩小,移动的光标线,显示注释等等,很多还是需要自己造轮子,本人通过五一假期的一番研究,从中也颇有收获,现在把下面的这些研究成果分享给大家。
2024-05-05 18:19:47
2408
1
原创 Python使用grpc以及与C++进行互相调用
python中使用grpc就比在c++简单多了,我们可以使用grpc轻松的跨语言通讯,相比传统的webserver通讯,grpc的效率更高。对于追求效率的场景下,我们可以使用c++编写,然后业务方面我们可以使用Java或者python。我现在遇到的一个场景就是需要使用modbus实时采集数据,然后将数据传递给web后台或者客户端,对于这种场景,grpc就比webserver优势大多了。
2024-04-05 08:43:05
1312
原创 C++使用grpc详例(使用CMake构建)
本文讲解了在C++使用grpc传递基本数据类型、一维数组、二维数组、自定义结构体类型的基本方法,总体来讲,在C++中使用grpc还是有一定难度的,因为安装grpc的途中就伴有一大堆坑,其中重要的一点是千万不能使用国内镜像源下载,这个是大陷阱,很多依赖库版本对不上,最终会导致安装失败,挂VPN在Github上下载很快就能安装成功。后面我会继续讲解c++和python使用grpc跨语言通讯的方法。
2024-03-30 19:52:04
2915
2
原创 Linux终端命令行图形化Modbus调试工具
之前经常使用mbpoll在Linux命令行下调试modbus,用久了发现其实并不方便,因为每次携带的参数太多,使用的时候老是忘记怎么使用,经常需要去翻笔记,于是决定自己开发一款Linux命令行版本的Modbus调试工具,方便调试。项目开源地址:https://gitee.com/chen-dongyu123/modbus_tools。
2024-03-14 20:31:07
1916
1
原创 Linux命令行Modbus调试工具mbpoll的使用
之前调试Modbus很多都是在Windows上调试的,但现在有一些场景,我们需要远程通过vpn连接到现场,然后再测试现场的modbus设备是否通讯正常。在这种场景下,windows的工具就不太适用了,我们虽然能通过vpn使用ssh方式远程连接到现场主机,但我们却无法连接到现场的modbus设备,因为modbus设备并没有配置vpn地址,我们只能用他们内网地址访问modbus设备,这个时候就需要用到Linux下的命令行Modbus调试工具了。
2024-03-07 10:44:53
4532
原创 使用libmodbus库在相同IP地址和端口上实现多个从机
之前用Python写过Modbus服务端,用的是pymodbus库,但这个库里面使用的是协程,小弟水平不够,有些hold不住,所以决定用C++把之前那块代码给重构了。
2024-03-03 19:16:09
1438
2
原创 Shell脚本实现简单的进程管理器
现在我用python写了一个前后端分离项目,每次启动都需要使用python3+脚本名称,杀死进程时还需要ps -ef | grep 脚本名称,显得非常的麻烦,考虑用shell脚本实现一个简单的进程管理器,方便管理进程。定义启动后端和前端的函数。定义停止后端和前端的函数。定义重启后端和前端的函数。定义显示启动说明的函数。
2024-02-20 09:13:14
1089
原创 Docker基本配置
3.安装查找mysql库的工具pkg-config。4.CMakeList.txt写法。5.读取json配置Mysql信息。1.安装mysql开发包。2.安装soci开发包。
2024-01-05 13:21:31
922
原创 Mysql服务端基本配置
2.查看密码强度限制(创建用户之前需要修改密码强度限制,否则密码强度可能不通过)3.更改密码强度限制为LOW(这个修改只是临时的,重启Mysql服务端后会失效)7.刷新权限(修改完权限之后必须要刷新权限,否则不生效)6.更改用户权限(让其他ip访问服务端必须做这一步)将bind-address改为0.0.0.0。以下内容若配置文件里面没有可以手动添加。4.设置最大连接错误次数,防止dos攻击。3.更改mysql最大允许的并发连接数。4.创建用户(自定义用户名和密码)1.配置mysqld.cnf文件。
2024-01-04 09:55:11
523
1
原创 CMake项目中使用libxlsxwriter库
1.在github上下载源码:https://github.com/jmcnamara/libxlsxwriter。3.编写CMakeLists.txt。1.新建xlsx文件,并设置格式。2.设置单元格的宽度和格式。5.关闭workbook。2.解压后放入项目中。3.将数据写入单元格。
2023-11-11 11:41:45
1038
原创 cpack介绍及打deb包方法
CPack 是 CMake 的一个组件,用于创建软件包。它可以将 CMake 项目打包为各种不同的软件包格式,例如 ZIP、TGZ、RPM、DEB 等。CPack 可以自动检测您的系统,并根据您的系统自动选择适当的软件包格式。CPack 还提供了许多选项,以便您可以自定义软件包的生成过程。CPack 可以与 CMake 无缝集成,因此您可以使用 CMake 的语法来指定要包含在软件包中的文件、目录和其他资源。您可以使用 CMake 的变量和函数来指定软件包的元数据,例如软件包名称、版本、描述等。
2023-05-29 09:59:21
941
1
原创 Deb打包方法初探
因为最近配置好了局域网源,其他主机都可以通过该源下载安装软件了,但我们配置局域网源的目的就是为了存放自己的软件包,这个时候就需要学会如何制作自己软件的deb包了。
2023-04-13 18:21:08
901
1
原创 openVPN安装搭建步骤,实现内网穿透
这将告诉 OpenVPN 服务器将 client-moxa 客户端的请求路由到 10.8.1.6 这个 IP 地址(即 client-24 客户端的 IP 地址)。这将告诉客户端将流量路由到 10.8.1.0/24 子网,其中包括 client-moxa 客户端和 client-24 客户端的 IP 地址。其中,ccd 是一个文件夹路径,用于存放客户端 CCD 配置文件,我这里CCD文件夹创建的路径在。跟之前一样先在服务端生成一份客户端的证书和密钥,然后将必要的这5份文件拷贝到如图所示的目录下。
2023-03-31 16:39:00
18497
19
原创 Ubuntu20配置本地源和局域网源(使用GPG签名解决不安全的源验证问题,亲测可行!)
Ubuntu20配置局域网源,使得其他主机可以通过局域网内配置的本地仓库下载,配置GPG密钥解决不安全的源问题
2023-03-31 13:54:42
2523
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人