分类: 经验

  • 笔记本安装Centos系统设置盒盖不休眠

    1.找到CentOS7下对应配置文件,目录:/etc/systemd/logind.conf,使用vi命令打开

    [root@localhost ~]# vi /etc/systemd/logind.conf

    2.配置文件中找到我们要修改的配置项:

    HandlePowerKey 按下电源键后的行为,默认power off

    HandleSleepKey 按下挂起键后的行为,默认suspend

    HandleHibernateKey 按下休眠键后的行为,默认hibernate

    HandleLidSwitch 合上笔记本盖后的行为,默认suspend

    我们把HandleLidSwitch后面的suspend修改为lock,即

    HandleLidSwitch=lock

    注意,如果配置项前面有#号,要删掉,#是注释的意思

    3.重启systemd-logind服务:

    [root@localhost ~]# systemctl restart systemd-logind

    其中,后面的配置项的可选范围为:

    ignore 忽略,跳过
    power off 关机
    eboot 重启
    halt 挂起
    suspend shell内建指令,可暂停目前正在执行的shell。若要恢复,则必须使用SIGCONT信息。所有的进程都会暂停,但不是消失(halt是进程关闭)
    hibernate 让笔记本进入休眠状态
    hybrid-sleep 混合睡眠,主要是为台式机设计的,是睡眠和休眠的结合体,当你选择Hybird时,系统会像休眠一样把内存里的数据从头到尾复制到硬盘里 ,然后进入睡眠状态,即内存和CPU还是活动的,其他设置不活动,这样你想用电脑时就可以快速恢复到之前的状态了,笔记本一般不用这个功能。
    lock 仅锁屏,计算机继续工作。

  • CentOS 7下通过SSHFS挂载sftp资源

    环境

    CentOS7
    SSHFS:2.10

    安装

    安装装EPEL源

    yum install epel-release
    

    安装sshfs

    yum install sshfs
    

    配置

    使用如下命令进行挂载

    sshfs -p 22 root@192.168.1.21:/ /app1/
    #输入密码后确认挂载
    
    #允许其他用户访问
    sudo sshfs -o allow_other tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint  
    
    #无密码登录
    sudo sshfs -o allow_other,IdentityFile=~/.ssh/id_rsa tecmint@x.x.x.x:/home/tecmint/ /mnt/tecmint 
    
    设置开机自启动挂载
    touch auto.sh
    写入开机启动脚本: 
    echo 远程主机密码 | sshfs 远程主机用户@远程ip:/OA/RP/  /root/test -o workaround=rename -o password_stdin -o allow_other
    chmod +x auto.sh
    vim /etc/rc.d/rc.local
    写入  sh /home/autosu.sh
    chmod +x  /etc/rc.d/rc.local   //开机自动启动    
    
    #去挂载目录查看
    cd /app1/
    ll
    #查看挂载情况
    
    
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    如需取消:

    #umount掉挂载点即可
    umount /app1
    

    开机自动挂载方案:

    1. 在系统启动时挂载
    crontab -e
    ------------------------------------------
    @reboot sh mountsshfs.sh
    
    vim mountsshfs.sh
    ------------------------------------------
    #! /bin/sh
    while true
    do 
        ping -c1 -w1 ssh_server_ip > /dev/null && break
    done
    sshfs -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 user@192.168.200.10:/pathto/dir /home/username/mount/dir
    
    2.利用/etc/fstab
    user@host:/remote/folder /mount/point  fuse.sshfs noauto,x-systemd.automount,_netdev,users,idmap=user,IdentityFile=/home/user/.ssh/id_rsa,allow_other,reconnect 0 0
    参数
    noauto 不在boot时mount
    x-systemd.automount 配置按需挂载
    _netdev 避免“No such device”错误,指明sshfs是一个网络设备而非块设备
    
    注意:在完成对/etc/fstab的修改后,需要执行如下命令
    systemctl daemon-reload
    systemctl restart <target>
    这里 <target>可以使用如下命令查询
    systemctl list-unit-files --type automount

    注意事项

    1. 挂载在重启后失效
    2. 一般来说,linux系统都默认安装了sftp,挂载期间基本不用考虑sftp服务。
    3. Windows下可使用其他第三方软件开启sftp服务,或通过smb进行挂载 [CentOS]CentOS 7下通过mount cifs挂载smb资源
  • Hyper-V 共享式网络链接 端口映射

    远程路由访问我配置了很久都不成功,经过多方搜索,现面的命令能实现端口映射
    一、查询端口映射情况
    
    netsh interface portproxy show v4tov4
    查询这个IP所有的端口映射。
    netsh interface portproxy show v4tov4|find "192.168.1.1" 
    二、增加一个端口映射
    netsh interface portproxy add v4tov4 listenport=外网端口 listenaddress=主IP connectaddress=私网IP connectport=私网IP端口
    例如:
    netsh interface portproxy add v4tov4 listenport=8888 listenaddress=118.123.13.180 connectaddress=192.168.1.10 connectport=2222
    三、删除一个端口映射
    netsh interface portproxy delete v4tov4 listenaddress=主IP listenport=外网端口
    例如:
    netsh interface portproxy delete v4tov4  listenaddress=118.123.13.180 listenport=8888
    
    在关闭Hyper-V虚拟机的情况下,选择Hyper-V管理界面中的“虚拟交换机管理器”
    在弹出的对话框中“新建虚拟网络交换机”,选择“内部”,点击“创建虚拟交换机”。
    在IP网卡 切换到“共享”标签下,勾选“允许其他网络用户通过此计算机的Internet连接来连接”并在下方“家庭网络连接”中选择刚刚创建的虚拟交换机——vEthernet (Hyper-V Switch),点击“确认
  • Linux查看网络流量

    作为一个非职业运维,不时需要查看Linux服务器上的网络流量状况。本文介绍几个常用的Linux查看网络流量命令,并简要介绍其用法。部分命令系统已经内置,某些命令则需要从软件仓库或者自行编译安装,本文以CentOS系统为例介绍软件安装方法。

    一、查看总流量

    ip

    ip 命令来自 iproute2util 包,是查看、配置网络/路由的工具。作为 ifconfig 的替代品,ip 命令功能更强大,用法更语义化。

    ip命令在大多数系统上都已经默认安装,也可通过 yum install -y iproute 安装。ip 的 “-s -h” 参数查看各网卡的总流量,下图是 ip -s -h link 的输出结果:

    nload

    nload 命令可以查看各个网络设备的当前网络速率,也会展示流经设备的总流量。

    nload 来自EPEL软件库,CentOS安装命令为:yum install -y epel-release && yum install -y nload。查看eth0网卡流量 nload eth0命令输出如下:

    PS:netstat -s 和 ifconfig -s 都可以查看收发的总包(netstat分协议给出),但不会给出字节数据。

    二、查看实时网速网速

    nload 命令可以输出当前网速,上面已经介绍过,本节不再赘述。

    dstat

    dstat 是一个用来替换vmstatiostatnetstatnfsstatifstat的全能系统信息统计工具,支持数据实时刷新,输出直观易懂。

    dstat 默认没有安装,安装命令为:yum install -y dstatdstat -tnf 1 10 输出接下来10秒内每秒的网络数据:

    sar

    sar 是System Activity Report的缩写,是一款全面的Linux系统运行状态统计和性能分析工具,可从磁盘IO、CPU负载、内存使用等多个维度对系统活动进行报告。

    sar 命令来自 sysstat 包,可使用这个命令安装:yum install -y sysstatsar -n TCP 1 10可查看接下来10秒内的tcp数据:

    三、查看连接/进程流量

    ss/netstat

    ss 和 netstat 是查看活动链接/监听端口的常用命令。ss 是 netstat 的替代,性能更好,建议使用。

    ss 是 iproute2util 包的一部分,因此在大多数系统上默认安装,也可通过yum install -y iproute安装。netstat 来自 net-tools 包,新版系统上需要自行安装:yum install -y net-tools

    下图是用ss查看tcp连接的输出:

    iftop

    iftop 是一款实时流量监控工具,可以查看每个连接的实时速率。

    iftop 来自EPEL软件库,安装命令是:yum install -y epel-release && yum install -y iftopiftop -nN -i eth0实时查看eth0网卡的各个连接和网速:

    nethogs

    nethogs 是为了查看单个进程流量而设计的工具,按照进程进行带宽分组。

    nethogs 来自EPEL软件库,安装命令是:yum install -y epel-release && yum install -y nethogsnethogs -d 2 eth0 每2秒刷新流经eth0网卡的进程流量信息:

    其他

    tcpdump可以用来抓包,保存的数据可以用wireshark打开和查看。

  • ⽹⼼云容器版产品「容器魔⽅」介绍

    一、 什么是⽹⼼云容器版产品「容器魔⽅」?

    「容器魔方」由网心云推出的一款docker容器镜像软件,通过简单安装后即可快速加入网心云共享计算生态网络,为网心科技星域云贡献带宽和存储资源,用户根据每日的贡献量可获得相应的现金收益回报。网心科技星域云通过先进的边缘编排技术,将千家万户的节点连接成一张边缘云计算网络,为B端客户提供全球领先的、优质低成本的边缘计算服务。目前支持:koolshare、群晖、树莓派等支持docker的设备(arm32、aarch64、x86_64)。

    二、安装激活

    1.运行容器:

    docker run -d --name=wxedge --restart=always --privileged --net=host  --tmpfs /run --tmpfs /tmp -v /storage:/storage:rw  registry.hub.docker.com/onething1/wxedge

    必选参数说明:

    –privileged 必须打开(爱快docker不支持)。

    –net 目前只支持host(推荐)和macvlan两种网络模式(不熟悉docker和网络知识的用户不要尝试macvlan,非常复杂!)。

    “磁盘路径”是磁盘的目录,请根据自己实际磁盘目录更改,必须挂载到容器内的/storage目录,推荐磁盘是ext4文件系统,至少需要50G以上的空间,建议是固态硬盘。

    可选参数说明(建议新手都不要设置):

    -e NIC=eth0 有多网卡多线路时,可以使用该参数指定路由网卡,不配置会自动选默认路由网卡,如果是openwrt系统,可以使用-e NIC=br-lan,业务申请到和局域网同一个网段的IP。

    -e REC=false 第一次安装设置为false时,不会启动默认任务,默认为true,仅第一次安装有效。

    -e LISTEN_ADDR=”0.0.0.0:28888″ 支持设置绑定页面的监听地址和端口,监听全地址设置-e LISTEN_ADDR=”:28888″,默认监听全地址18888端口。多开容器也可以参考用该参数,比如容器A使用参数-e LISTEN_ADDR=”:18888″,容器B使用参数 -e LISTEN_ADDR=”:28888″(已经实现同一业务可多次添加,不建议多开容器)

    -v 磁盘路径:/var/lib/containerd 如果系统盘较小时,可以增加该参数修改安装路径,注意“磁盘路径”修改成自己的磁盘目录。

    2.升级容器:

    升级不需要删除原来的缓存,只升级镜像,原来的缓存是可以复用的,但注意挂载到容器中的路径必须是升级前的路径。如果发现生成新的SN,必定是挂载的路径错了。

    手动升级

    docker stop wxedge

    docker rm wxedge

    docker rmi registry.hub.docker.com/onething1/wxedge

    docker pull registry.hub.docker.com/onething1/wxedge

    docker run -d –name=wxedge –restart=always –privileged –net=host –tmpfs /run –tmpfs /tmp -v 磁盘路径:/storage:rw registry.hub.docker.com/onething1/wxedge

    “磁盘路径”要改成升级前的路径

    自动升级(containrrr/watchtower非网心云官方镜像,仅供参考,有问题请自行解决,强烈推荐)

    docker run -d –name watchtower –restart always -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower –cleanup wxedge

    3.存储迁移

    容器启动成功后,会在挂载目录生成一个wxnode的文件,该文件是设备的唯一标识与账号绑定,请务必做好备份,对于多次恶意删除wxnode的用户,将拒绝激活。换盘或者更换挂载目录时,要将wxnode迁移至新的挂载目录下,不需要app重新绑定。跨cpu架构的wxnode和缓存数据不能通用,如将x86的wxnode和缓存数据迁移到arm64的设备上是无法使用的。

    三、网心云容器魔方接口文档

    https://help.onethingcloud.com/7cb4/3ed5/1e3a

    四、设备绑定

    打开浏览器(推荐谷歌浏览器),输入http://ip:18888(ip替换成安装设备的ip),比如http://192.168.1.10:18888

    五、产品指南&教程

    「产品指南」:

    https://help.onethingcloud.com/caa9/a0fe/b6b3

    「群晖安装激活教程」:

    https://help.onethingcloud.com/7cb4/3ed5/9899

    「koolshare安装激活教程」:

    https://help.onethingcloud.com/7cb4/3ed5/a209

    「树莓派&命令行安装激活教程」:

    https://help.onethingcloud.com/7cb4/3ed5/8907

    六、技术和经验交流

    QQ群1(已满):947847221

    QQ群2:235763379

    加群备注:wxedge

    七、友情链接(非官方教程,可参考)

    1.视频安装教程 https://www.bilibili.com/video/BV1w341187MG?spm_id_from=333.999.0.0

    2.debian安装教程 https://zhuanlan.zhihu.com/p/380208961

    3.portainer面板安装教程 https://post.smzdm.com/p/ag45dprw/

    4.威联通安装教程 https://bbs.onethingcloud.com/forum.php?mod=viewthread&tid=800&highlight=%E5%A8%81%E8%81%94%E9%80%9A

    5.低版本群晖(5.2版本)安装教程 https://bbs.onethingcloud.com/forum.php?mod=viewthread&tid=1583&highlight=%E5%AE%B9%E5%99%A8

  • redis 密码登录

    redis-cli

    auth (password)

  • deepin 设置远程自动重启正常自动登录

    1.账号设置 自动启动 无密码登录

    Ubuntu笔记本合上盖子后无法远程重启的解决方法

    2.

     方法步骤:

      1、首先检查电源选项,合上盖子选项设为“Do Nothing”。

      2、修改login manager 。

      打开/etc/systemd/logind.conf

      将:

      #HandleLidSwitch=suspend

      修改为:

      HandleLidSwitch=ignore

      重启system manager:

      systemctl restart systemd-logind

  • CentOS 8运行其它环境编译的curl报77错误解决方法

    此问题来源于经过Github Actions编译出来的curl执行程序,由于actions默认的构建环境都是Ubuntu的,编译构建出来的新版本curl放到CentOS 8上运行时,会提示类似如下内容的错误(仅限需要用到ssl证书的协议,如https):

    12345 curl: (77) error setting certificate verify locations:    CAfile: /etc/ssl/certs/ca-certificates.crt    CApath: none ... curl: (77) Error reading ca cert file /etc/ssl/certs/ca-certificates.crt - mbedTLS: (-0x3E00) PK - Read/write of file failed

    按照网上搜到的说法,重新yum安装ca-certificates之类的都不起作用,查看/etc/ssl/certs目录,发现有如下内容:

    lrwxrwxrwx 1 root root 49 Sep 22 21:54 ca-bundle.crt -> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
    lrwxrwxrwx 1 root root 55 Sep 22 21:54 ca-bundle.trust.crt -> /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt

    于是想到是不是构建和运行系统环境配置不同所致,于是建立软连接

    ln -s /etc/pki/ca-trust/extracted/openssl/ca-bundle.trust.crt ./ ca-certificates.crt

    再次执行curl访问https网站,问题解决!

    PS: 后续在K2P的OpenWRT路由器上试验curl时也遇到了类似问题,不过这次可没有/etc/pki/ca-trust里现成的证书了,参考其它OP系统解决此问题的方法,发现都是用“opkg install ca-bundle ca-certificates”来从软件源安装证书,这个貌似在K2P的官方固件上是行不通的,于是参考这里:https://www.myflv.cn/course/87.html,直接从curl官网: http://curl.haxx.se/ca/cacert.pem 下载ca证书,并复制到上面提到的同样位置:/etc/ssl/certs/ca-certificates.crt 即可。

  • docker overlay2占用大量磁盘空间处理方法

    简单办法

    多看了一下资料,发现可以使用 docker system prune来自动清理空间,参考下面:

    • 该指令默认会清除所有如下资源:
      • 已停止的容器(container)
      • 未被任何容器所使用的卷(volume)
      • 未被任何容器所关联的网络(network)
      • 所有悬空镜像(image)。
    • 指令默认只会清除悬空镜像,未被使用的镜像不会被删除。
    • 添加 -a 或 –all 参数后,可以一并清除所有未使用的镜像和悬空镜像。
    • 可以添加 -f 或 –force 参数用以忽略相关告警确认信息。
    • 指令结尾处会显示总计清理释放的空间大小。
      https://yq.aliyun.com/articles/272173 )

    另外,使用下面命令可以查看docker所占的硬盘大小,如:
    在这里插入图片描述

    使用docker,基本上把官方文档的入门教程看完,就能用了。
    再自己打个包试试,基本上就OK了。后面遇到问题再深入,都可以。

  • Linux服务器被入侵后,我们该如何排查隐患

    1、用户信息文件/etc/passwd

    ps:无密码只允许本机登陆,远程不允许登陆

    2、影子文件:/etc/shadow

    3、查看当前登录用户及登录时长

    4、排查用户登录信息

    1.查看最近登录成功的用户及信息

    2.查看最近登录失败的用户及信息:

    3.显示所有用户最近一次登录信息:

    在排查服务器的时候,黑客没有在线,可以使用last命令排查黑客什么时间登录的有的黑客登录时,会将/var/log/wtmp文件删除或者清空,这样我们就无法使用last命令获得有用的信息了。

    在黑客入侵之前,必须使用chattr +a/var/log/wtmp文件进行锁定,避免被黑客删除.

    5、sudo用户列表

    入侵排查:

    通过.bash\_history文件查看帐号执行过的系统命令:

    打开 /home 各帐号目录下的 .bash_history,查看普通帐号执行的历史命令。

    为历史的命令增加登录的 IP 地址、执行命令时间等信息:

    注意:历史操作命令的清除:history -c

    该操作并不会清除保存在文件中的记录,因此需要手动删除.bash\_profile文件中的记录

    检查端口连接情况:

    使用 ps 命令,分析进程,得到相应pid号:

    查看 pid 所对应的进程文件路径:

    分析进程:

    查看进程的启动时间点:

    根据pid强行停止进程:

    注意:如果找不到任何可疑文件,文件可能被删除,这个可疑的进程已经保存到内存中,是个内存进程。这时需要查找PID 然后kill掉。

    检查开机启动项:

    系统运行级别示意图:

    查看运行级别命令:

    开机启动配置文件:

    启动Linux系统时,会运行一些脚本来配置环境——rc脚本。在内核初始化并加载了所有模块之后,内核将启动一个守护进程叫做initinit.d。这个守护进程开始运行/etc/init.d/rc中的一些脚本。这些脚本包括一些命令,用于启动运行Linux系统所需的服务。

    开机执行脚本的两种方法:

    (1)在/etc/rc.local的exit 0语句之间添加启动脚本。脚本必须具有可执行权限

    (2)用update-rc.d命令添加开机执行脚本

    1、编辑修改/etc/rc.local

    2、update-rc.d:此命令用于安装或移除System-V风格的初始化脚本连接。脚本是存放在/etc/init.d/目录下的,当然可以在此目录创建连接文件连接到存放在其他地方的脚本文件。

    此命令可以指定脚本的执行序号,序号的取值范围是 0-99,序号越大,越迟执行。

    当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc_.d文件中建立软链接即可。

    语法:update-rc.d 脚本名或服务 <remove|defaults|disable|enable>

    开机即执行。

    入侵排查:

    计划任务排查:

    需要注意的几处利用cron的路径:

    上面的命令实际上是列出了/var/spool/cron/crontabs/root该文件的内容:

    • /etc/crontab只允许root用户修改
    • /var/spool/cron/存放着每个用户的crontab任务,每个任务以创建者的名字命名
    • /etc/cron.d/将文件写到该目录下,格式和/etc/crontab相同
    • 把脚本放在/etc/cron.hourly//etc/cron.daily//etc/cron.weekly//etc/cron.monthly/目录中,让它每小时/天/星期/月执行一次。

    小技巧:

    入侵排查:重点关注以下目录中是否存在恶意脚本;

    入侵排查:

    查询已安装的服务:

    RPM 包安装的服务:

    源码包安装的服务:

    异常文件检查:

    按照几种方式查找修改的文件:

    (1)按照名称

    (2)按照文件大小

    (3)按照时间查找

    (4)根据属主和属组查找:

    (5)按照CPU使用率从高到低排序:

    (6)按照内存使用率从高到低排序:

    补充:

    1、查看敏感目录,如/tmp目录下的文件,同时注意隐藏文件夹,以“..”为名的文件夹具有隐藏属性。

    2、得到发现WEBSHELL、远控木马的创建时间,如何找出同一时间范围内创建的文件?
    可以使用find命令来查找,如find /opt -iname “*” -atime 1 -type f 找出 /opt 下一天前访问过的文件。

    3、针对可疑文件可以使用 stat 进行创建修改时间。

    系统日志检查:

    日志默认存放位置:/var/log/

    必看日志:secure、history

    查看日志配置情况:more /etc/rsyslog.conf

    日志分析技巧:


    内容很长,还有些枯燥,但是希望大家可以慢慢看完,要是有哪里需要补充的,也随时欢迎大家评论留言,好的,下课!!