一、M4 安装与更新
默认情况下,初始账号(密码)为:admin(admin)。默认访问端口为 5800。
1.1 Windows 手动安装 M4 并注册为服务
1.1.1 准备
下载第三方软件: MongoDB 安装包 、 JDK 安装包 、 nssm 安装包
下载最新 M4 主程序压缩包(当前最新为 trick-m4-4.9.2.zip): M4 发布页
下载 M4 演示项目包: M4Demo 项目包

1.1.2 安装 JDK
双击运行 jdk-17.0.10_windows-x64_bin.exe ;





安装完成;
1.1.3 安装 MongoDB
双击运行 mongodb-windows-x86_64-6.0.12-signed.msi ;





取消勾选“Install MongoDB Compass”,然后点击“Next”;




完成安装;
1.1.4 部署 M4 主程序和项目包
将 trick-m4-4.9.2.zip 和 M4Demo.zip 分别解压到 D盘 根目录 下

文件树:



在 D盘 根目录下新建一个 startM4.txt 输入:
cd trick-m4-4.9.2
::trick-m4-4.9.2 根据主程序实际的文件夹名进行修改
java -jar trick-m4-4.9.2.jar "D:\M4Demo"
::trick-m4-4.9.2.jar 根据主程序的实际版本进行修改
::"D:\M4Demo" 根据项目包文件夹的实际位置和名字进行修改
将 startM4.txt 重命名为 startM4.bat 并右键发送快捷方式到桌面,双击桌面的快捷方式即可手动启动:



手动启动成功!(非服务启动,注意保留弹出的黑框,关闭即关闭m4)
1.1.5 将 M4 制作为服务
为了防止冲突,先把上一步:双击 startM4.bat/startM4.bat-快捷方式 手动运行m4的黑框关掉;

将 M4 制作为服务需要用到 nssm ,以下是 nssm 的常用命令:
-
安装服务:
nssm.exe install <服务名>
-
删除服务:
nssm.exe remove <服务名>
-
启动服务:
nssm.exe start <服务名>
-
停止服务:
nssm.exe stop <服务名>
-
重启服务:
nssm.exe restart <服务名>
-
服务状态查看:
nssm.exe status <服务名>
将 nssm.zip 解压至 m4主程序文件夹同级(此处为 D盘 根目录):


搜索 cmd,右键"命令提示符"点击以管理员身份运行 :


进入 nssm.exe 所在目录,此处为:D:\\nssm,在 管理员:命令提示符 中输入 D:
回车,切换盘符;

进入 D:\nssm,输入 cd D:\nssm
,回车;

将 M4 安装成系统服务,输入 nssm.exe install m4
,回车,弹出窗口“NSSM service installer”;

点击 Path 右侧的“…”,选择上面创建的 D:\startM4.bat,点击 “Install service”:

注册成功,点击“确定”,在 管理员:命令提示符 窗口 输入 net start m4
启动服务,提示“m4 服务已经启动成功。”后即可关掉黑框:


1.1.6 更新主程序
下载最新 M4 主程序压缩包(假设更新为 trick-m4-4.9.3.zip):[M4 发布页](https://m4.seer-group.com/release/)
先关闭正在运行中的程序:
-
非服务启动的,关闭m4对应的命令行提示符

-
注册以服务启动的,搜索"服务",打开,找到m4,点击 停止 此服务


将下载的 新版主程序压缩包:trick-m4-4.9.3.zip 解压到 D盘根目录:

右键 startM4.bat ,点击“编辑”,对应修改主程序文件夹名、主程序 jar 文件名,保存后关闭记事本:


启动更新后的 M4 (手动/服务启动 二选一):
-
手动启动:双击桌面快捷方式,保留黑框不关闭 image::img/Install/image-20240223104759-y0p1etx.png[1080]
-
服务启动:搜索"服务",打开,找到m4,点击 启动 此服务


1.1.7 更新项目包
参照 “更新主程序” ,关闭m4;
安全起见,将原项目包 M4Demo 重命名进行备份,比如:M4DemoOld-240223

将需要更新的项目包,解压到对应位置:
如果项目包名字不变(仍为 M4Demo):

参照 “更新主程序” ,选择需要的方式启动 M4 即可。 如果项目包名字产生了变化(M4DemoNew):

-
右键 startM4.bat ,点击“编辑”,对应修改项目包名,保存后关闭记事本:

-
参照 1.1.6 ,选择需要的方式启动 M4 即可。
1.2 Ubuntu18.04 下手动安装 M4 并注册为服务
仙工提供的服务器:
版本:ubuntu-18.04.6-desktop-amd64
账号(密码):sr(sr)、root(seer)
1.2.1 准备以及部署 M4 主程序、项目包
下载第三方软件: Ubuntu18.04 JDK、MongoDB一键安装包
下载最新 M4 主程序压缩包(当前最新为 trick-m4-4.9.2.zip): M4 发布页
下载 M4 演示项目包: M4Demo 项目包
将这三个压缩包丢到主文件夹(/home/sr):

终端输入 su
回车,输入root密码(seer)提权,然后进入该文件夹:输入 cd /home/sr
回车;
解压 trick-m4-4.9.2.zip 到 /opt/trick-m4-4.9.2 ,终端输入:unzip trick-m4-4.9.2.zip -d /opt/trick-m4-4.9.2
回车;
解压 ubuntu一键安装mongodb6.0.11&jdk.zip 到 /opt ,终端输入:unzip ubuntu一键安装mongodb6.0.11&jdk.zip -d /opt
回车;
解压 M4Demo.zip 到 /opt/m4/M4Demo,终端输入: unzip M4Demo.zip -d /opt/M4Demo
回车;
可以看到:


1.2.2 一键安装 JDK & MongoDB
终端输入 su
回车,输入root密码(seer)提权,然后进入/opt目录,终端输入 cd /opt
回车;
终端输入 chmod +x mwms.sh
回车,使 mwms.sh 可执行;
终端输入 source mwms.sh
回车,执行 source mwms.sh;

输入 1
回车,提示安装完成;此时 java等一众jdk执行文件 所在位置 /opt/jdk-17.0.8/bin

检查mongodb是否运行,终端输入 systemctl status mongodb
回车,正常:

制作mongdump、mongorestore的软连接,解决数据库导出、导入的问题:
终端输入 ln -s /opt/mongo/bin/mongodump /usr/bin/mongodump
回车;
终端输入 ln -s /opt/mongo/bin/mongorestore /usr/bin/mongorestore
回车;
1.2.3 手动启动 M4
打开终端,终端输入 su
回车,输入root密码,回车;
进入工作目录,终端输入 cd /opt/trick-m4-4.9.2
回车;
启动 M4,终端输入 /opt/jdk-17.0.8/bin/java -jar trick-m4-4.9.2.jar "/opt/M4Demo"
回车;

保留终端(关闭当前终端则关闭程序),Ubuntu 本机浏览器访问网页(http://127.0.0.1:5800)进行测试。
1.2.4 注册M4为服务、开机自启动
Ubuntu 注册服务,通常使用 systemctl 命令,常用命令:
-
重载服务 systemctl daemon-reload 每次新增和修改 service文件 都需要重载、重启
-
启动服务 systemctl start \<服务名\>
-
停止服务 systemctl stop \<服务名\>
-
重启服务 systemctl restart \<服务名\>
-
检查服务状态 systemctl status \<服务名\>
制作 m4.service文件,打开终端输入 sudo vim /etc/systemd/system/m4.service
回车,右键粘贴下方文本(按 a 可进入编辑模式修改):
[Unit]
Description=m4
After=network.target
After=mongodb.service
#Before=index.service
[Service]
Type=simple
StandardOutput=null
# 禁止输出日志到 journal 和 syslog
StandardError=null
# 禁止输出错误到 journal 和 syslog
# 其实 journal 无所谓,会滚动更新,但是 syslog 尾大不掉,如果日志很多存在塞满 /var 再起不能的风险
WorkingDirectory=/opt/trick-m4-4.9.2
#/opt/trick-m4-4.9.2 根据主程序根目录的实际位置
ExecStart=/opt/jdk-17.0.8/bin/java -jar trick-m4-4.9.2.jar "/opt/M4Demo"
#trick-m4-4.9.2.jar 根据主程序实际版本、实际位置修改
#"/opt/M4Demo"根据项目包实际名称、实际位置修改
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
编辑完成,按 Esc 键 退出编辑模式,输入 :wq
回车 保存并退出;
重载 service 文件,终端输入 sudo systemctl daemon-reload
回车;
启动 M4,终端输入 sudo systemctl start m4
回车;
查看 M4 运行状态 sudo systemctl status m4
回车,可见运行正常:

设置 M4 开机自启,终端输入 sudo systemctl enable m4
回车;
保留此时可关闭当前终端,Ubuntu 本机浏览器访问网页(http://127.0.0.1:5800)进行测试。
注意:此时若想关闭 M4,需要在终端输入 sudo systemctl stop m4
回车;
1.2.5 更新主程序
先关闭正在运行中的程序:
-
非服务的,关闭运行 M4 的终端:

-
已注册为服务的,打开终端,在终端输入
sudo systemctl stop m4
回车;
参照 2.1.1 将新的主程序压缩包(比如trick-m4-4.9.3.zip)下载到主目录(/home/sr);
解压到 /opt/trick-m4-4.9.3/,打开终端输入 unzip /home/sr/trick-m4-4.9.3.zip -d /opt/trick-m4-4.9.3
回车;
然后启动 M4:
-
非服务的,手动启动,参考 2.1.3 :
打开终端,终端输入 su
回车,输入root密码,回车;
进入工作目录,终端输入 cd /opt/trick-m4-4.9.3
回车;
启动 M4,终端输入 /opt/jdk-17.0.8/bin/java -jar trick-m4-4.9.3.jar "/opt/M4Demo"
回车;
* 之前注册为服务,需要以服务形式启动的,参考 2.1.4:
修改 m4.service文件,打开终端输入 sudo vim /etc/systemd/system/m4.service
回车,按 a 进入编辑模式修改为:
[Unit]
Description=m4
After=network.target
After=mongodb.service
#Before=index.service
[Service]
Type=simple
StandardOutput=null
# 禁止输出日志到 journal 和 syslog
StandardError=null
# 禁止输出错误到 journal 和 syslog
# 其实 journal 无所谓,会滚动更新,但是 syslog 尾大不掉,如果日志很多存在塞满 /var 再起不能的风险
WorkingDirectory=/opt/trick-m4-4.9.3
#更新主程序前:WorkingDirectory=/opt/trick-m4-4.9.2
ExecStart=/opt/jdk-17.0.8/bin/java -jar trick-m4-4.9.3.jar "/opt/M4Demo"
#更新主程序前:ExecStart=/opt/jdk-17.0.8/bin/java -jar trick-m4-4.9.2.jar "/opt/M4Demo"
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
编辑完成,按 Esc 键 退出编辑模式,输入 :wq
回车 保存并退出;
重载 service 文件,终端输入 sudo systemctl daemon-reload
回车;
启动 M4,终端输入 sudo systemctl start m4
回车;
查看 M4 运行状态 sudo systemctl status m4
回车,可见运行正常:
设置 M4 开机自启,终端输入 sudo systemctl enable m4
回车;
保留此时可关闭当前终端,Ubuntu 本机浏览器访问网页(http://127.0.0.1:5800)进行测试。
1.2.6 更新项目包
参照 2.1.5 先关闭正在运行中的程序;
如果新项目包与原项目包重名,最好给原项目包重命名备份一下(比如:M4Demo 重命名为 M4DemoOld-240222):
打开终端,输入 sudo mv /opt/M4Demo /opt/M4DemoOld-240222
回车;
参照 2.1.1 将新的主程序压缩包(比如M4Demo2.zip)下载到主目录(/home/sr)
解压到 /opt/M4Demo2/,打开终端输入 unzip /home/sr/M4Demo2.zip -d /opt/M4Demo2
回车;
然后启动 M4:
-
非服务的,手动启动,参考 2.1.3 :
打开终端,终端输入 su
回车,输入root密码,回车;
进入工作目录,终端输入 cd /opt/trick-m4-4.9.3
回车;
启动 M4,终端输入 /opt/jdk-17.0.8/bin/java -jar trick-m4-4.9.3.jar "/opt/M4Demo2"
回车;
* 之前注册为服务,需要以服务形式启动的,参考 2.1.4:
修改 m4.service文件,打开终端输入 sudo vim /etc/systemd/system/m4.service
回车,按 a 进入编辑模式修改为:
[Unit]
Description=m4
After=network.target
After=mongodb.service
#Before=index.service
[Service]
Type=simple
StandardOutput=null
# 禁止输出日志到 journal 和 syslog
StandardError=null
# 禁止输出错误到 journal 和 syslog
# 其实 journal 无所谓,会滚动更新,但是 syslog 尾大不掉,如果日志很多存在塞满 /var 再起不能的风险
WorkingDirectory=/opt/trick-m4-4.9.3
ExecStart=/opt/jdk-17.0.8/bin/java -jar trick-m4-4.9.3.jar "/opt/M4Demo2"
#更新项目包前:ExecStart=/opt/jdk-17.0.8/bin/java -jar trick-m4-4.9.3.jar "/opt/M4Demo"
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
编辑完成,按 Esc 键 退出编辑模式,输入 :wq
回车 保存并退出;
重载 service 文件,终端输入 sudo systemctl daemon-reload
回车;
启动 M4,终端输入 sudo systemctl start m4
回车;
查看 M4 运行状态 sudo systemctl status m4
回车,可见运行正常:
设置 M4 开机自启,终端输入 sudo systemctl enable m4
回车;
保留此时可关闭当前终端,Ubuntu 本机浏览器访问网页(http://127.0.0.1:5800)进行测试。
二、ModbusTCP 操作文档
2.1 参数讲解
针对性的讲一下每个参数,先有个映像,后边还会举例说明:
事物标识符: 就是一个递增的数字,每次发送消息递增一下即可,尽量不重复,因为占用2个字节,所以范围是:0~65535
协议标识符: 这个默认给固定值0,表示modbus协议
长度: 等于协议标识符的长度2+协议数据单元PDU的长度(不固定)
单元标识符: 这个就是从机地址,就是slave id
功能码: Modbus规定了多个功能,那么为了方便的使用这些功能,我们给每个功能都设定一个功能码,就是上边说的,你要对从机做什么操作,那么就在这里设定好,从机读取到这个数据就知道要做什么

数据: 数据对于主机来说就是想要操作从机寄存器里的哪些数据,什么是寄存器?就是从机用来存数据的地方,讲从机的时候具体再将。 讲完了基本概念,咱们来实操一下,在这之前,咱们需要用到两个工具: ModbusPoll 和 ModbusSlave 安装包
2.2 ModbusPoll 工具简单使用讲解



2.3 M4 中 ModbusTCP 协议的 PLC 设备配置
菜单选项把PLC设备配置出来,保存。刷新浏览器界面

PLC设备配置菜单,新增、填上对应的PLC名称,类型选ModbusTCP(如果PLC是走的ModbusTCP协议的话),填上plc设备实际的ip和端口号,保存。

2.3.1 猎鹰任务 ModbusTCP 读取
设备名填上文新增的PLC名称(例:PLC_1)

功能码根据需要读取的该地址寄存器类型而填

对应填上地址和slave ID

2.3.2 猎鹰任务 ModbusTCP 写
功能码多为

值是M4写入PLC目标地址位的值。

2.3.3 猎鹰任务 ModbusTCP 读取直到等于
其他位置Modbus读取一致,不同于Modbus读取只会读一次返回读取值,Modbus读取直到等于有一个目标值,在读取地址值不为目标值时会一直重复读,直到读到匹配值或系统超时,读取间隔单位毫秒

2.4 测试方法
一般会有协议文档,PLC设备参与的任务,根据业务逻辑,可用M4自行编写写入值的任务或使用Modbus poll模拟M4给plc的IP对应的地址写入值,观察任务中其他设备的反应情况是否与协议一致(若是前期测试,可先行测试通断和写入值情况)
使用Modbus poll 链接上后发现如下情况,先确定现场PLC使用的地址是哪一段

如果协议操作的地址位范围为40000~40009点击“setup”


图中代表从地址40000开始,检测10个长度,即40000-40009
三、WireShark 抓包操作文档
3.1 简介
WireShark是非常流行的网络封包分析工具,可以截取各种网络数据包,并显示数据包详细信息。常用于开发测试过程中各种问题定位。
3.2 安装与运行
3.2.1 Windows
官网下载页: Wireshark Download ,选择 Stable Release 中的 Windows x64 Installer 下载、双击安装即可。
双击桌面快捷方式即可运行。
3.2.2 Ubuntu Desktop
依赖极多,建议联网安装。可视化工具,只建议在桌面版系统安装。
打开终端,输入:sudo apt update
,回车;
输入:sudo apt-get install wireshark
,回车;
根据提示,输入:y
,回车允许安装;
不要直接点开应用图标,权限不足,需要打开终端,输入:sudo wireshark
,回车,即可运行。
3.3 抓包
分为:可视化界面、命令行两种抓包方式。
数据不多、临时抓包时可以使用可视化界面的方式抓包,操作更简单,可以边抓边看;数据量大或因为偶发性故障需要持久化抓包时,强烈建议使用命令行形式抓包,避免因内存占用造成抓包软件的崩溃导致抓包失败(必要时可以制作成服务开机自启)。
3.3.1 Ubuntu 查看网卡信息
打开终端,输入:ip a
,回车,可以看到所有的网卡和 ip 地址:

3.3.2 Windows 查看网卡信息
打开命令提示符(CMD),输入:ipconfig
,回车,可以看到所有的网卡和 ip 地址:

3.3.3 可视化界面抓包(Ubuntu 与 Windows 同理)
运行程序,可以看到本机的可抓取对象(这里主要关注网卡),右侧的波浪线表示网卡的活跃状态,空白则表示该网卡上没有数据流量:

根据需要选择网卡进行抓包,比如,服务器与上位机通过 WLAN 这个网卡通讯,就选中这个网卡。(关键字为 loopback 的网卡指网络回环,适用于同一台服务器不同端口之间的通讯抓包),这里假设是同一台服务器不同端口之间的通讯抓包,双击选中关键字为 loopback 的网卡,开始抓包:

通过应用显示过滤器过滤出需要的信息,常用的有:
1、过滤出 5800 端口的 tcp 数据:tcp.port == 5800
2、过滤出 5800 端口的 udp 数据:udp.port == 5800
3、过滤出 ip 为 127.0.0.1 的数据:ip.addr == 127.0.0.1
4、过滤出 5800 端口的 tcp 的且 ip 地址为 127.0.0.1 的数据:tcp.port == 5800 and ip.addr == 127.0.0.1

保存抓包记录到文件(后续可使用 wireshark 打开这个文件做分析)


3.3.4 命令行抓包(Windows)
找到 wireshark 执行文件所在的根目录,通常在 C:\Program Files\Wireshark
,可以通过右键快捷方式,点击“打开文件所在位置”找到,记住目录位置(如果是其他位置,下面凡是涉及到的路径的命令都要替换);
搜索 cmd,右键管理员打开“命令提示符”,输入:CHCP 65001
,回车;再输入:"C:\Program Files\Wireshark\dumpcap.exe" -D
,查看网卡 ID



可以看到,此时演示环境共有 12 个网卡(圆括号内是注释,填写网卡 ID 时不要填写圆括号及圆括号内的字符):
1. \Device\NPF_{445621F4-DCF2-41D1-9152-7CED35363119} (本地连接* 10) 2. \Device\NPF_{214BAE74-B505-43F4-A8D5-81B4D7484AB7} (本地连接* 9) 3. \Device\NPF_{278333B6-E03A-4785-AF91-BB01FD36166C} (本地连接* 8) 4. \Device\NPF_{A992BCF6-CD07-4E2A-BC81-0A9E137B4BB7} (WLAN) 5. \Device\NPF_{AC2557D3-9F60-4855-ACCA-8102F21FC2E8} (本地连接* 2) 6. \Device\NPF_{A6F6FF5D-B3B2-4B6F-8CA1-0D2A9F9EF484} (本地连接* 1) 7. \Device\NPF_{19870A8F-63C3-4FB1-903B-BCF151946EC0} (以太网 2) 8. \Device\NPF_Loopback (Adapter for loopback traffic capture) 9. \Device\NPF_{098EFB12-55E6-4E4F-A957-ACC005C4555F} (以太网 3) 10. \Device\NPF_{875D0E2A-D8AB-4055-B8D6-BA6DB38A7C48} (CorpLink TAP-Windows6) 11. \Device\NPF_{D66EBB0C-F4A7-4C00-A23F-6786199BDE6E} (CorpLink Wintun) 12. \Device\NPF_{CF17EBC7-C941-4118-A6A7-6F0A2705E120} (以太网)
记录下你需要抓包的 <网卡 ID>,如果需要抓 WLAN 这个网卡的数据,那么 <网卡 ID> 就是 \Device\NPF_{A992BCF6-CD07-4E2A-BC81-0A9E137B4BB7}
;如果是要抓网络回环(前文 可视化界面抓包 有提到),那么 <网卡 ID> 就是 \Device\NPF_Loopback
。
假设此时需要抓网络回环中 127.0.0.1 的 6000 端口的 TCP 数据,可以在命令行继续输入:"C:\Program Files\Wireshark\dumpcap.exe" -i \Device\NPF_Loopback -w D:\wireshark\ddd.pcap -b filesize:50000 -b files:1000 -f "host 127.0.0.1 and tcp port 6000"
开始抓包和自动转存。
参数解析 -i <网卡 ID> #要抓的网卡 -w <文件路径> #实时写入的文件的存储路径、前缀、格式(所在目录需要提前创建好) -b filesize:50000 #保存的每个文件大小为 50000KB(50MB) -b files:1000 #循环保存 1000 个文件,防止磁盘空间被撑爆 -f "host 127.0.0.1 and tcp port 6000" #过滤器: host 为 127.0.0.1、端口为 6000 的 tcp 数据
如果希望持久化自动抓包(避免问题终于复现却忘记抓包的欲哭无泪),可以考虑创建一个 autocap.bat 将命令 "C:\Program Files\Wireshark\dumpcap.exe" -i \Device\NPF_Loopback -w D:\wireshark\ddd.pcap -b filesize:50000 -b files:1000 -f "host 127.0.0.1 and tcp port 6000"
粘贴进去,再使用 nssm 工具将 autocap.bat 做成服务。
3.3.5 命令行抓包(Ubuntu Desktop)
与 Windows 不同,apt 联网安装 Wireshark 时,dumpcap 工具已经注册在环境变量,所以无需关心所在位置。
终端输入:sudo dumpcap -D
,回车,即可查看 <网卡 ID>;

可以看到,此时演示环境共有 7 个网卡(圆括号内是注释,填写网卡 ID 时不要填写圆括号及圆括号内的字符):
1. enp0s3 2. any 3. lo (Loopback) 4. nflog 5. nfqueue 6. usbmon1 7. usbmon2
结合 3.3.1 Ubuntu 查看网卡信息 确定要抓的 <网卡 ID>,如果要抓 192.168.9.83 这个 ip 出去或者进来的网卡, <网卡 ID> 就是 enp0s3
;如果是要抓网络回环(前文 可视化界面抓包 有提到),那么 <网卡 ID> 就是 lo
。
假设此时需要抓网络回环中 127.0.0.1 的 6000 端口的 TCP 数据,终端输入:sudo mkdir /opt/wireshark
,回车,先创建存储抓包文件的文件夹;终端输入:sudo dumpcap -i lo -w /opt/wireshark/ddd.pcap -b filesize:50000 -b files:1000 -f "host 127.0.0.1 and tcp port 6000"
开始抓包和自动转存。
参数解析 -i <网卡 ID> #要抓的网卡 -w <文件路径> #实时写入的文件的存储路径、前缀、格式(所在目录需要提前创建好) -b filesize:50000 #保存的每个文件大小为 50000KB(50MB) -b files:1000 #循环保存 1000 个文件,防止磁盘空间被撑爆 -f "host 127.0.0.1 and tcp port 6000" #过滤器: host 为 127.0.0.1、端口为 6000 的 tcp 数据
如果希望持久化自动抓包(避免问题终于复现却忘记抓包的欲哭无泪),可以考虑做成服务。制作执行脚本,终端输入:sudo vim /opt/wireshark/autocap.sh
,回车,输入下方文本并保存:
#!/bin/sh
dumpcap -i lo -w /opt/wireshark/ddd.pcap -b filesize:50000 -b files:1000 -f "host 127.0.0.1 and tcp port 6000"
赋予这个脚本执行权限,终端输入:sudo chmod +x /opt/wireshark/autocap.sh
,回车;
制作服务文件,终端输入:sudo vim /etc/systemd/system/autocap.service
,回车,输入下方文本并保存:
[Unit]
Description=autocap
After=network.target
[Service]
StandardOutput=null
# 禁止输出日志到 journal 和 syslog
StandardError=null
# 禁止输出错误到 journal 和 syslog
Type=simple
WorkingDirectory=/opt/wireshark
ExecStart=/opt/wireshark/autocap.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
终端依次输入、回车:sudo systemctl daemon-reload
、sudo systemctl restart autocap
、sudo systemctl enable autocap
;重载服务文件、重启服务、设置开机自启。
需要修改抓包命令时,sudo vim /opt/wireshark/autocap.sh
,回车,修改参数并保存,`systemctl restart autocap`重启服务即可。
不再需要自动抓包时,sudo systemctl stop autocap
、sudo systemctl disable autocap
,停止服务、禁用开机自启。