目录
- 0 关于
- 1 SpringBoot上传大文件抛出异常:MaxUploadSizeExceededException
- 2 SpringBoot警告:`HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@6221f160 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value.`
- 3 Windows把exe注册为服务的方法
- 4 ubuntu22 apt包切换阿里镜像源
- 5 把frpc注册为服务开机自启动
- 6 IDEA隐藏Git的代码提交人信息
- 7 Ubuntu系统备份与恢复——TimeShift
- 8 Ubuntu安装ssh服务器
- 9 Windows可以ping通Ubuntu但反过来不行
- 10 Ubuntu通过proxychains4利用Windows的代理
- 11 Ubuntu安装共用的Anaconda
- 12 U盘安装Windows选择安装磁盘位置时列表为空
- 13 nmap使用
0 关于
本文主要用于记录自己在学习过程中遇到的一些小问题、疑难杂症。问题来自多个方面。
1 SpringBoot上传大文件抛出异常:MaxUploadSizeExceededException
- 问题描述:
2024-12-12T17:07:26.075+08:00 WARN 32608 --- [nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded]
2024-12-12T17:07:26.080+08:00 WARN 32608 --- [nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded]
- 原因分析
这是因为SpringBoot默认限制最大上传文件大小为1MB,所以我们可以修改这个限制大小解决这个问题 - 解决方法
在SpringBoot项目的application.yml配置文件中修改最大文件大小。
2 SpringBoot警告:HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@6221f160 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value.
- 问题描述
SpingBoot报错:HikariPool-1 - Failed to validate connection com.mysql.cj.jdbc.ConnectionImpl@6221f160 (No operations allowed after connection closed.). Possibly consider using a shorter maxLifetime value.
- 原因分析
springboot在连接数据库时会建立一个连接放在数据库连接池中,但是这个mysql会超时主动关闭这个连接,如果这个超时的连接还在连接池中则springboot还会使用该连接访问数据库,所以会报警告。 - 解决方法
解决的思路就是设置连接保存在连接池中的时间,使得其在失效之前就被移除连接池,这样连接池中的连接一定是有效的可以使用的。- 在mysql命令行执行
show variables like '%timeout%'
以查看mysql主动关闭的时间。
- 在SpringBoot项目的配置文件中设置如下属性,使该属性值小于上述查询到的值即可,即max-lifetime < min(interactive_timeout, wait_timeout)。
- 在mysql命令行执行
3 Windows把exe注册为服务的方法
- 软件:Alwaysup
- 软件:WinSW
- 命令:sc create
4 ubuntu22 apt包切换阿里镜像源
- 保存apt镜像源配置文件的备份:
cp /etc/apt/sources.list /etc/apt/sources.list.backups
- 修改
/etc/apt/sources.list
的内容如下,其他版本参考参考链接:
deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
5 把frpc注册为服务开机自启动
- 前置条件:假设已经安装好了frpc,且启动命令为/opt/frp/frpc -c /opt/frp/frpc.toml
- 创建一个systemd服务文件,文件路径为:/etc/systemd/system/frpc.service
- 填写文件内容如下:
[Unit]
Description=frpc service
After=network.target
Wants=network.target
[Service]
Type=simple
ExecStart=/opt/frp/frpc -c /opt/frp/frpc.toml
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
解释如下:
这个 frpc.service 文件是一个systemd服务单元文件,用于控制frp客户端(frpc)的启动、停止和重启行为。下面是对文件中每个部分的详细解释:
[Unit] 部分
这部分定义了服务单元的元数据和依赖关系。
Description=frpc service:提供了服务单元的描述,这里是“frpc service”。
After=network.target:指定了服务单元的依赖关系,表示frpc服务将在network.target启动之后启动。network.target是一个标准目标,它在系统网络服务启动后激活。
Wants=network.target:类似于After,但即使network.target没有被激活,frpc服务也会启动,只是会记录一个警告。
[Service] 部分
这部分定义了服务的行为和运行时的配置。
Type=simple:指定了服务的启动类型。simple是最常见的类型,意味着systemd会直接启动ExecStart中指定的进程。
ExecStart=/opt/frp/frpc -c /opt/frp/frpc.toml:定义了启动服务时执行的命令。这里,/opt/frp/frpc是frpc客户端的路径,-c参数后面跟着的是frpc的配置文件路径/opt/frp/frpc.toml。
Restart=on-failure:定义了重启策略。on-failure意味着如果frpc进程退出时返回了非零状态码(表示失败),systemd将会自动重启该服务。
RestartSec=5:定义了在服务失败后重启前的等待时间,这里是5秒。
[Install] 部分
这部分定义了服务单元文件的安装信息,用于确定服务单元文件是否应该被启动。
WantedBy=multi-user.target:指定了当达到multi-user.target时,这个服务应该被启动。multi-user.target是一个标准目标,它允许多个用户同时登录系统(通常是文本模式)。这意味着在系统达到多用户状态时,frpc服务将被启动。
- 执行命令
sudo systemctl daemon-reload
重载systemd管理器配置,使新的服务文件生效 - 执行命令
sudo systemctl enable frpc.service
使服务开机自启动 - 执行命令
sudo systemctl start frpc.service
启动服务 - 执行命令
sudo systemctl status frpc.service
查看服务状态
6 IDEA隐藏Git的代码提交人信息
- 进入设置
- 取消Code Vision下面的代码作者显示即可
7 Ubuntu系统备份与恢复——TimeShift
-
执行
apt update && apt upgrade
命令更新升级软件包。 -
执行
sudo apt install timeshift
安装timeshift。
-
执行
sudo timeshift --help
查看帮助指示以检查是否安装成功
-
修改timeshift配置文件(可选)
- 配置文件位置:
/etc/timeshift/timeshift.json
- 可以修改
exclude
字段添加不进行备份的文件夹
- 配置文件位置:
-
执行
sudo timeshift --create --comments "系统备份1" --tags B
创建系统备份
--comments
指定了备注信息--tags
指定了标记
-
执行
sudo timeshift --list
查看所有的快照
其中Name
字段在后续恢复到快照时会使用到 -
执行
sudo timeshift --restore --snapshot "2024-12-26_14-07-34"
恢复到指定的快照- 遇到
y/n
直接y
就是
- 遇到
-
删除快照
# 删除指定的快照
sudo timeshift --delete --snapshot "2024-12-26_14-07-34"
# 删除所有快照
sudo timeshift --delete-all
- 参考博客:参考
8 Ubuntu安装ssh服务器
- 执行命令:
sudo apt install openssh-server
9 Windows可以ping通Ubuntu但反过来不行
- 关闭Windows的公共网络防火墙
10 Ubuntu通过proxychains4利用Windows的代理
-
打开Windows的代理软件,找到监听的端口
-
获取Windows的在局域网的ip地址:
ipconfig
-
在Ubuntu安装proxychains4:
sudo apt-get install proxychains4
-
对proxychains4进行配置:
sudo nano /etc/proxychains4.conf
# 代理链配置
strict_chain
proxy_dns
# 默认配置
[ProxyList]
# 格式:代理类型 IP地址 端口号 [用户名] [密码]
socks5 10.129.26.111 7890
- 确保打开了Windows的代理软件
- 关闭Windows的防火墙
- 测试
- 不使用proxychains4时无法成功执行:
- 使用proxychains4时成功执行:
- 不使用proxychains4时无法成功执行:
11 Ubuntu安装共用的Anaconda
- 获取Anaconda的安装包,官网地址下载或者执行
wget https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh
:
- 通过bash指令执行.sh安装脚本
sudo bash Anaconda3-2024.10-1-Linux-x86_64.sh
。 - 遇到yes/no时选择输入yes。
- 选择安装位置时选择一个所有用户可以访问的文件夹,这样不用修改权限,例如/opt/anaconda。
- 对于需要使用该conda的用户,切换到该用户下的终端,进入/opt/anaconda/bin目录,执行指令
./conda init bash
和source ~/.bashrc
- 完成,此时所有用户使用的同一个conda,互相看不见对方的虚拟环境。
12 U盘安装Windows选择安装磁盘位置时列表为空
- 首先准备Intel Rapid Storage Technology (IRST) 驱动程序:百度网盘分享链接
- 在启动盘中创建名为driver的文件夹,将驱动程序解压后放置在driver文件夹中:
- 再次按照正常安装流程来到选择系统安装位置的界面,点击加载驱动程序-浏览,选择放置驱动程序的driver目录即可。
- 等待加载完成之后即可识别到存储器。
13 nmap使用
- 扫描某个主机的所有端口:
nmap -p- 192.168.1.1
- 扫描UDP端口:
nmap -sU 192.168.1.1
- 详细输出:
nmap -vv 192.168.1.1
- TCP SYN扫描(半开放扫描):
nmap -sS 192.168.1.1
- 静默扫描:
nmap -sN 192.168.1.1