Linux挂载磁盘错误

检查文件系统类型: 确保 /dev/sda1 上的文件系统类型是你操作系统支持的。使用以下命令查看文件系统类型:

sudo file -s /dev/sda1

这将输出文件系统类型,如果不是常见的文件系统类型(如 ext4、ntfs、fat32 等),你可能需要安装相应的文件系统工具。

检查并修复文件系统: 如果文件系统损坏,可以尝试使用 fsck 工具进行修复。注意,修复前请确保没有其他进程正在使用该分区。

sudo fsck /dev/sda1

运行该命令后,按照提示进行修复。

尝试手动挂载: 尝试使用以下命令手动挂载分区,并查看具体的错误信息:

sudo mount /dev/sda1 /mnt

如果挂载成功,你可以访问 /mnt 目录。如果失败,请记录并分析错误信息。

检查磁盘硬件问题: 使用 dmesg命令查看内核日志,查找与 /dev/sda1 相关的错误信息:如果日志中有硬件错误,可能是磁盘本身有问题,需要进一步的硬件检查。

dmesg | grep sda1 

检查挂载点的权限: 确保挂载点目录(如 /media/yangliuan/12321321)存在并且具有适当的权限:

sudo mkdir -p /media/yangliuan/12321321 
sudo chown your_username:your_username /media/yangliuan/12321321 

your_username 替换为你的用户名。如果经过以上步骤后问题仍未解决,可能需要进一步的详细诊断,或者咨询相关的技术支持人员。

手动挂载错误如下:

$MFTMirr does not match $MFT (record 3). Failed to mount '/dev/sda1': Input/output error NTFS is either inconsistent, or there is a hardware fault, or it's a SoftRAID/FakeRAID hardware. In the first case run chkdsk /f on Windows then reboot into Windows twice. The usage of the /f parameter is very important! If the device is a SoftRAID/FakeRAID then first activate it and mount a different device under the /dev/mapper/ directory, (e.g. /dev/mapper/nvidia_eahaabcc1). Please see the 'dmraid' documentation for more details. ChatGPT

这个错误提示表明 NTFS 文件系统存在一些问题,可能是由于文件系统不一致或硬件故障引起的。根据错误信息,你可以尝试以下步骤来解决问题:

在 Windows 下运行 chkdsk: 如果你有 Windows 系统,可以尝试在 Windows 下使用 chkdsk 工具来修复 NTFS 文件系统。打开命令提示符并以管理员身份运行以下命令:

chkdsk /f

这将在下次启动时对磁盘进行检查和修复。确保在 Windows 中运行 chkdsk 后重新启动系统,然后再次启动到 Linux。

检查硬件故障: 如果 chkdsk 无法解决问题,可能存在硬件故障。你可以尝试连接这个硬盘到另一台计算机上,看看是否能够正常访问。如果在其他计算机上也无法正常访问,那么很可能是硬件故障引起的。

使用 ntfsfix 工具: 在 Linux 下,你也可以尝试使用 ntfsfix 工具来尝试修复 NTFS 文件系统。运行以下命令:

sudo ntfsfix /dev/sda1 

这个命令会尝试修复一些常见的、轻微的 NTFS 文件系统问题。

如果以上方法都无法解决问题,可能需要考虑备份数据并格式化磁盘,然后重新创建文件系统。但在此之前,请确保你已经备份了重要的数据。

VirtualBox磁盘扩容

磁盘类型 VDI(VirtualBox 磁盘映像)

磁盘管理工具 Hard Disk

启动光盘镜像系统(PE系统)

动态分配 dynamically allocated

1.使用如何磁盘管理工具,修改磁盘大小,如上图所示

2.启动ubuntu光盘系统,或者gparted-live-1.5.0-1-amd64.iso 也可以,使用GParted ,扩容磁盘

固定分配 fixsize

pre allocate full size(预先分配所有大小)

1.使用磁盘管理,创建一个更大空间的虚拟硬盘

2.启动光盘镜像系统,打开终端,使用dd命令刻录数据到新的硬盘

dd if=/dev/sda of=/dev/sdb

3.更换存储设置中的控制器SATA中的硬盘

动态分配差分存储 Dynamically allocated differencing storage

需要将上述两种方式结合起来

1.创建一个更大空间动态分配的硬盘

2.将原先的系统盘dd刻录到新的硬盘

3.使用动态分配中的扩容方法,使用GParted扩容剩余空间

参考文章

https://www.cnblogs.com/xueweihan/p/5923937.html

https://www.modb.pro/db/493372

ubuntu desktop 22.04 安装多版本Python

二进制安装

添加存储库

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update

安装python

sudo apt-get install python3.11

安装多个版本python

sudo apt-get install python3.11 python3.9 python3.8

将旧版本的 Python 和新版本添加到更新替代方案

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 2

键入以下命令以配置 python3, 输入需要选择python

sudo update-alternatives --config python3

有 2 个候选项可用于替换 python3 (提供 /usr/bin/python3)。

  选择       路径               优先级  状态
------------------------------------------------------------
  0            /usr/bin/python3.11   2         自动模式
  1            /usr/bin/python3.10   1         手动模式
* 2            /usr/bin/python3.11   2         手动模式

要维持当前值[*]请按<回车键>,或者键入选择的编号:^^^^^^

查看版本 python3 -V

编译安装

默认安装到/usr/local/bin

sudo apt install gcc dialog libaugeas0 augeas-lenses libssl-dev libffi-dev ca-certificates
tar xzf Python-3.11.3.tgz
pushd Python-3.11.3 > /dev/null
./configure --enable-optimizations
 make -j 8 && make altinstall

配置默认python3

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/bin/python3.11 2
sudo update-alternatives --config python3

集成环境

conda 占用空间太大,每个环境都要重复安装基础组件,适合AI项目

pyenv

存在的问题

apt update 报错

Traceback (most recent call last):
  File "/usr/lib/cnf-update-db", line 3, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/lib/command-not-found/ -a -e /usr/lib/cnf-update-db; then /usr/lib/cnf-update-db > /dev/null; fi'
$ cd /usr/lib/python3/dist-packages
$ ls -la | grep "apt_pkg.cpython"
$ sudo cp apt_pkg.cpython-310-x86_64-linux-gnu.so apt_pkg.so

编译安装的python使用此方法无法解决

gnome-terminal等基于的python软件无法使用

cd /usr/lib/python3/dist-packages/gi/

sudo cp _gi_cairo.cpython-310-x86_64-linux-gnu.so _gi_cairo.cpython-311-x86_64-linux-gnu.so

sudo cp _gi.cpython-310-x86_64-linux-gnu.so _gi.cpython-311-x86_64-linux-gnu.so

编译安装的python使用此方法无法解决

最好不要更改系统默认python

https://stackoverflow.com/questions/56218562/how-to-fix-modulenotfounderror-no-module-named-apt-pkg

https://askubuntu.com/questions/1301461/modulenotfounderror-no-module-named-apt-pkg-whilst-running-apt-update

https://blog.csdn.net/yulinxx/article/details/125472350

Refer To

https://ubuntuhandbook.org/index.php/2021/10/compile-install-python-3-10-ubuntu/

https://ubuntuhandbook.org/index.php/2022/10/python-3-11-released-how-install-ubuntu/

https://towardsdatascience.com/installing-multiple-alternative-versions-of-python-on-ubuntu-20-04-237be5177474

ubuntu音乐播放器

QQ音乐

下载页面:https://y.qq.com/download/download.html

shell安装脚本 https://github.com/yangliuan/ubuntu-start/blob/main/include/linuxqq.sh

网易云音乐

下载页面 https://music.163.com/#/download (页面上没有了ubuntu的下载项)

下载地址 https://d1.music.126.net/dmusic/netease-cloud-music_1.2.1_amd64_ubuntu_20190428.deb

shell安装脚本https://github.com/yangliuan/ubuntu-start/blob/main/include/neteasy_cloud_music.sh

Lollypop

有漂亮的界面和直观的用户体验。支持音频标签编辑、歌词显示和艺术家图片显示等功能

安装(可以从商店安装)

sudo apt-get install lollypop

Rhythmbox

ubuntu默认音乐播放器

https://wiki.gnome.org/Apps/Rhythmbox

安装 (可以从商店安装)

sudo apt install rhythmbox

如何修改mp3文件的元数据,如专辑名称,歌手名称

使用命令行工具 “id3v2″(需要安装):

a. 打开终端。
b. 安装 id3v2 工具:sudo apt-get install id3v2
c. 进入包含要编辑的 MP3 文件的目录:cd /path/to/mp3/files
d. 使用以下命令来修改元数据:

修改专辑名称:id3v2 –album “新专辑名称” 文件名.mp3
修改歌手名称:id3v2 –artist “新歌手名称” 文件名.mp3
e. 替换 “新专辑名称” 和 “新歌手名称” 为你想要的实际名称,将 “文件名.mp3” 替换为要编辑的 MP3 文件的实际文件名。

使用图形界面工具 “EasyTAG”(需要安装):

a. 打开终端。
b. 安装 EasyTAG 工具:sudo apt-get install easytag
c. 运行 EasyTAG:easytag
d. 在 EasyTAG 窗口中,打开要编辑的 MP3 文件。
e. 找到并编辑专辑名称和歌手名称字段。
f. 保存修改后的文件。

Kid3: Kid3 是一个跨平台的开源音乐标签编辑器,支持多种音频文件格式(包括 MP3、FLAC、AAC、WMA 等)。官方网站(https://kid3.kde.org/)

编译安装PHP

本文以centos stream 9和php8.1为例,描述编译思路

Unix 系统下的安装 核心配置选项列表

安装编译需要的工具和依赖

如何确定需要的依赖,看一下你要用的php扩展,需要那些系统组件和组件对应的系统库

可以查看扩展库归类 ,找到安装/配置说明可以查看详细说明,举例说明 GD库 配置参数详细说明

使用dnf或yum install xxx安装

#编译器相关工具
deltarpm gcc gcc-c++ make cmake autoconf bison re2c 
#基础库
glibc glibc-devel glib2 glib2-devel
#网络和数据库相关
curl curl-devel libcurl libcurl-devel sqlite-devel sqlite-devel libsqlite3x-devel
#文本字符数据格式
oniguruma oniguruma-devel libxml2 libxml2-devel libxslt libxslt-devel libtidy-devel libtidy libicu-devel 
#图片格式 字体
gd-devel
freetype freetype-devel libjpeg libjpeg-devel libjpeg-turbo libjpeg-turbo-devel libpng libpng-devel libtiff-dev libgif-dev libwebp-devel
#文件解压缩
 zlib zlib-devel libzip-devel  bzip2 bzip2-devel
#数学和加密
openssl openssl-devel libmcrypt libmcrypt-devel mhash mhash-devel mcrypt libargon2 libsodium

手动编译安装

有些库没有系统二进制包,不能直接使用命令安装需要下载来,或者版本太低达不到php的要求,需要手动编译安装

libiconv libargon2 libsodium

依赖说明

deltarpm 一种rpm包,优化了体积

bison 是一种通用目的的分析器生成器

re2c 一个将正则表达式转化成基于C语言标识的预处理器

oniguruma 正则表达式库,使用–enable-mbstring需要安装

freetype 可移植的字体引擎,它提供统一的接口来访问多种字体格式文件 –with-freetype

libicu  Unicode 支持、软件国际化编码 –enable-intl 开启intl扩展

libxml2 xml操作库 –enable-xml 开启

libxslt 是一种样式转换标记语言,可以将XML资料档转换为另外的XML或其它格式 –with-xsl

libtidy 处理html的一种扩展 –with-tidy 很少用

libiconv 字符编码转换库 启用–with-iconv

查看编译选项

./configure --help

创建用户和组

id -g www >/dev/null 2>&1
[ $? -ne 0 ] && groupadd www
id -u www >/dev/null 2>&1
[ $? -ne 0 ] && useradd -g www -M -s /sbin/nologin www

常用的编译参数选项,来自oneinstack脚本,php8.1.sh安装源码

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc \
    --with-config-file-scan-dir=/usr/local/php/etc/php.d \
    --with-fpm-user=www --with-fpm-group=www --enable-fpm --disable-fileinfo \
    --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd \
    --with-iconv --with-freetype --with-jpeg --with-zlib \
    --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-exif \
    --enable-sysvsem --with-curl --enable-mbregex \
    --enable-mbstring --with-password-argon2 --with-sodium=/usr/local --enable-gd --with-openssl \
    --with-mhash --enable-pcntl --enable-sockets --enable-ftp --enable-intl --with-xsl \
    --with-gettext --with-zip=/usr/local --enable-soap --disable-debug
#防止libiconv导致的报错
make ZEND_EXTRA_LIBS="-L/usr/local/libiconv/lib/ -liconv"
make install

如上启用了fpm,mysqli,mysqland,iconv,gd,xml,bcmath,shmop,exif,sysvsem,curl,mbstring,Password hashing,mhash,openssl,pcntl,sockets,ftp,intl,xsl,gettext,zip,soap

根据项目实际需求来启用需要的参数,比如,项目用cli框架swoole或者workman之类的可以不启用fpm

常用防火墙指南

iptables

运行在用户空间的应用软件,通过控制Linux内核netfilter模块,来管理网络数据包的处理和转发。iptables 支持内核2.4以上版本,旧版内核环境下则使用ipchains(于2.2版内核)或 ipwadm(于2.0版内核)完成类似的功能。2014年1月19日起发行的Linux内核3.13版则使用nftables取而代之,但仍然提供 iptables 命令做为兼容接口

CentOS 7.0默认使用的是firewall作为防火墙,启用iptable,

iptable需要先关闭firewall并禁止开启自启
service firewalld stop
systemctl disable firewalld.service #禁止firewall开机启动

#安装iptable
yum install iptables-services 
service iptables start #开启
systemctl enable iptables.service #设置防火墙开机启动




开放指定端口

删除已添加规则

查看已添加规则

应用场景


指令选项
iptables -L -F -A -D # list flush append delete

场景一
开放 tcp 10-22/80 端口 开放 icmp 其他未被允许的端口禁止访问
iptables -I INPUT -p tcp --dport 80 -j ACCEPT # 允许 tcp 80 端口
iptables -I INPUT -p tcp --dport 10:22 -j ACCEPT # 允许 tcp 10-22 端口
iptables -I INPUT -p icmp -j ACCEPT # 允许 icmp
iptables -A INPUT -j REJECT # 添加一条规则, 不允许所有

场景二
ftp: 默认被动模式(服务器产生随机端口告诉客户端, 客户端主动连接这个端口拉取数据) vsftpd: 使 ftp 支持主动模式(客户端产生随机端口通知服务器, 服务器主动连接这个端口发送数据)
iptables -I INPUT -i lo -j ACCEPT # 允许本机访问
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 允许访问外网
iptables -I INPUT -p tcp --dport 80 -s 10.10.188.233 -j ACCEPT # 只允许固定ip访问80

场景三
允许外网访问: web http -> 80/tcp; https -> 443/tcp mail smtp -> 25/tcp; smtps -> 465/tcp pop3 -> 110/tcp; pop3s -> 995/tcp imap -> 143/tcp
iptables -I INPUT -i lo -j ACCEPT # 允许本机访问
iptables -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 允许访问外网
iptables -I INPUT -s 10.10.155.0/24 -j ACCEPT # 允许内网访问
iptables -I INPUT -p tcp -m multiport --dports 80,1723 -j ACCEPT # 允许端口, 80 -> http, 1723 -> vpn
iptables -A INPUT -j REJECT # 添加一条规则, 不允许所有
iptables-save # 保存设置到配置文件

场景四
nat 转发
iptables -t nat -L # 查看 nat 配置
iptables -t nat -A POST_ROUTING -s 10.10.177.0/24 -j SNAT --to 10.10.188.232 # SNAT
vi /etc/sysconfig/network # 配置网关
iptables -t nat -A POST_ROUTING -d 10.10.188.232 -p tcp --dport 80 -j DNAT --to 10.10.177.232:80 # DNAT

场景五
防CC攻击
iptables -I INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 100 -j REJECT # 限制并发连接访问数
iptables -I INPUT -m limit --limit 3/hour --limit-burst 10 -j ACCEPT # limit模块; --limit-burst 默认为5

相关文章

维基百科

iptables 详解

iptables命令

firewall

官方网站 维基百科

众所周知,在RHEL7系统中,firewalld防火墙取代了iptables防火墙。我们都知道iptables的防火墙策略是交由内核层面的netfilter网络过滤器来处理的,而firewalld则是交由内核层面的nftables包过滤框架来处理。

下面一张图,让大家明确的了解防火墙 Firewall 与 iptables 之间的关系与区别。

相较于iptables防火墙而言,firewalld支持动态更新技术并加入了区域(zone)的概念。简单来说,区域就是firewalld预先准备了几套防火墙策略集合(策略模板),用户可以根据生产场景的不同而选择合适的策略集合,从而实现防火墙策略之间的快速切换。

firewalld跟iptables比起来至少有两大好处:

  1. firewalld可以动态修改单条规则,而不需要像iptables那样,在修改了规则后必须得全部刷新才可以生效。
  2. firewalld在使用上要比iptables人性化很多,即使不明白“五张表五条链”而且对TCP/IP协议也不理解也可以实现大部分功能。

相关文章

firewalld防火墙详解
firewall-cmd

ufw

相关文章

UFW – Uncomplicated Firewall

簡易的防火牆 – UFW & GUFW

ubuntu简单美化

首先更新系统

sudo apt update && sudo apt upgrade

软件中心安装显卡驱动

Software && updates => Additional Drivers 一般N

如果没有合适的去官网下载,出现卡顿等问题也可以装一下显卡驱动试试

AMD Linux驱动 官方地址

NVIDIA官方驱动 NVIDIA安装驱动英文教程

sudo apt install nvidia-utils-530

安装N卡显示设置

sudo apt install nvidia-settings

切换显卡

更新驱动后可能会丢失这个选项 解决参考

可以通过指令切换 nvidia|intel|on-demand|query

sudo prime-select nvidia # select nvidia gpu
sudo prime-select intel  # select intel gpu
sudo prime-select on-demand  # on-demand 按需

安装tweaks

sudo apt install gnome-tweak-tool
#ubuntu22.04
sudo apt install gnome-tweaks
sudo apt install chrome-gnome-shell #需要安装chrome浏览器
sudo apt install gnome-shell-extensions

开启关闭gnome-shell-extensions

安装chrome-gnome-shell成功后

ubuntu20.04+ 已更新版本

安装dash to dock 和 TopIcons Plus 和 Drop Down Terminal

版本未更新时替代品

Dash to Dock for COSMIC (替代 dash to dock ) ddterm (替代Drop Down Terminal ) TopIconsFix (替代 TopIcons Plus)

https://extensions.gnome.org/

打开上述网站,搜索并安装扩展

设置为打开即可,如上图

dash to dock 配置截图

启用Dash To Dock 后 禁用ubuntu dock,否则会导致indicator-sysmonitor插件报错

dock尺寸

图标尺寸

isloate workspace 隔离工作空间 isloate monitors 隔离显示器

ddterm

Panel Icon : none 隐藏顶部栏图标

TopiconsFix

Tray horizontal alignment (托盘图标水平对齐) right

Ubuntu AppIndicators

Tray horizontal alignment left (托盘水平左对齐)可以解决一些应用菜单无法推出的情况

Ubuntu24.04

Input method Panel 输入法面板扩展

https://extensions.gnome.org/extension/261/kimpanel/

系统监控,顶部栏

https://extensions.gnome.org/extension/6807/system-monitor

终端工具

https://extensions.gnome.org/extension/6307/quake-terminal

FAQ

gnome出现问题,可以尝试重新安装

sudo apt-get install --reinstall ubuntu-desktop

gnome控制中心设置失效可以重新安装

sudo apt install gnome-control-center 

Linux系统优化

系统参数

Linux内核调优

内核参数调整

打开文件 /etc/sysctl.conf,增加以下设置

#该参数设置系统的TIME_WAIT的数量,如果超过默认值则会被立即清除
net.ipv4.tcp_max_tw_buckets = 20000
#定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数
net.core.somaxconn = 65535
#对于还未获得对方确认的连接请求,可保存在队列中的最大数目
net.ipv4.tcp_max_syn_backlog = 262144
#在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目
net.core.netdev_max_backlog = 30000
#能够更快地回收TIME-WAIT套接字。此选项会导致处于NAT网络的客户端超时,建议为0
net.ipv4.tcp_tw_recycle = 0
#系统所有进程一共可以打开的文件数量
fs.file-max = 6815744
#防火墙跟踪表的大小。注意:如果防火墙没开则会提示error: "net.netfilter.nf_conntrack_max" is an unknown key,忽略即可
net.netfilter.nf_conntrack_max = 2621440

运行 sysctl -p即可生效。

打开文件数

设置系统打开文件数设置,解决高并发下 too many open files 问题。此选项直接影响单个进程容纳的客户端连接数。

Soft open files 是Linux系统参数,影响系统单个进程能够打开最大的文件句柄数量,这个值会影响到长连接应用如聊天中单个进程能够维持的用户连接数, 运行ulimit -n能看到这个参数值,如果是1024,就是代表单个进程只能同时最多只能维持1024甚至更少(因为有其它文件的句柄被打开)。如果开启4个进程维持用户连接,那么整个应用能够同时维持的连接数不会超过4*1024个,也就是说最多只能支持4×1024个用户在线可以增大这个设置以便服务能够维持更多的TCP连接。

Soft open files 修改三种方法:

第一种:在终端直接运行 ulimit -HSn 102400,然后重启workerman。

这只是在当前终端有效,退出之后,open files 又变为默认值。

第二种:在/etc/profile文件末尾添加一行 ulimit -HSn 102400,这样每次登录终端时,都会自动执行。更改后需要重启workerman。

第三种:令修改open files的数值永久生效,则必须修改配置文件:/etc/security/limits.conf. 在这个文件后加上:

* soft nofile 1024000
* hard nofile 1024000
root soft nofile 1024000
root hard nofile 1024000

这种方法需要重启机器才能生效。

开启BBR算法

参考

何时使用和不使用BBR

Google BBR 优化算法,实现TCP加速

GOOGLE 2016年出的TCP拥塞控制算法,解决问题提高网络吞吐量,案例Google在YouTube上应用该算法,将全球平均的YouTube网络吞吐量提高了4%,在一些国家超过了14%

BBR不会将丢包视为拥塞信号,这会导致高重传率的保持,如果传递的内容对丢包敏感,那么BBR可能不是一个好选择,这种情况下,内容提供商需要仔细检查吞吐量和体验质量之间的权衡

BBR的公平性存在问题,它会抢占Cubic算法的带宽(取决于瓶颈缓冲区的大小)

如何开启BBR

服务器挖矿木马[kthreaddi]处理记录

参考

[kthreaddi]挖矿病毒处理,终于解决了!

Linux – kthreaddi 进程导致CPU超高问题 处理记录

处理服务器恶意程序 kthreaddi挖矿

记服务器被入侵挖矿病毒kthreaddi处理解决过程思路

第一次处理

使用参考链接2方式,清除了定时任务,kill -s 9 进程之后正常了。由于同事离职没有收到反馈并继续观察。

第二次处理

后续接手项目,发现又有了继续按原方法清理定时任务,发现一条特别的定时任务,路径在/data/wwwroot/default/phpmyadmin 下,[kthreaddi]进程用户是www可能是通过php web方式注入的。看了一下使用oneinstack脚本后没有删除默认工具目录,于是删除default目录。然后禁用nginx默认虚拟主机使其无法通过ip访问,使用安全组关闭其他端口只开放常用端口。

kill 进程,发现没有用还是会自动重启,看了参考链接1的方式,得到灵感猜想可能有另一个进程负责重启[kthreaddi]进程。使用netstat -ltnp命令发现了一个非法进程监听 52281端口

于是kill 掉 非法进程,然后kill 掉 [kthreaddi] 进程,top命令观察发现正常了。

总结

此类木马通过定时任务重启,也可能结合systemd 或init脚本开机自启, 也可能使用其它伪装的正常进程来重启

延展阅读,更复杂案例top查看不到进程

应急响应:记一次花样贼多的挖矿病毒

Linux挖矿木马的技术演进探讨