
Linux
分享一些常用Linux小知识
旺仔_牛奶
计算机领域渣渣一枚,立志成为云原生方向资深运维专家^_^,GitHub地址: https://github.com/jiayu997
展开
-
NFS高版本漏洞修复方法
由于centos8后,nfs相关的配置发送了变化,无法固定端口方式来做防火墙,由于一般导致漏洞的原因主要是由于showmount -e,所以我们这里采取的方式是nfs server端仅使用v4版本,禁止使用v3版本。但是,您还可以将 NFS 配置为只支持 NFS 版本 4.0 及更新的版本。这可最大限度地减少系统上打开的端口的数量和运行的服务,因为 NFSv4 不需要。正常情况下NFS可以使用firewalld进行规避,但是由于k8s默认底层会调用iptables,这里就不采用firewalld方式了。原创 2023-08-14 17:35:48 · 1155 阅读 · 0 评论 -
SHELL IFS分隔符
IFS 是一种 set 变量,当 shell 处理"命令替换"和"参数替换"时,shell 根据 IFS 的值,默认是 space, tab, newline 来拆解读入的变量,然后对特殊字符进行处理,最后重新组合赋值给该变量原创 2023-04-22 17:20:04 · 996 阅读 · 1 评论 -
localhost与本机IP IPtables匹配顺序
localhost与本机IP IPtables匹配顺序。原创 2023-04-22 14:02:20 · 506 阅读 · 0 评论 -
Linux部署maven3.9
Linux部署maven3.9原创 2023-02-09 23:36:51 · 618 阅读 · 0 评论 -
Linux创建别名与辅助IP
IP alias 是由 ifconfig 程序来创建和维护的,而 secondary IP address 则是由 ip 程序来创建和维护的。ip addr add 创建的 secondary IP address 不能在 ifconfig -a 中看到,反过来,ifconfig 创建的 ethX:Y 却能在 ip addr show 中看到。实际上 ifconfig 只是取到第一个匹配的 IP 地址,而 ip addr show 却是完全取。原创 2022-09-03 16:53:14 · 736 阅读 · 0 评论 -
iptables实现网络限制下ntp自定义端口同步时间
iptables实现网络限制下ntp自定义端口同步时间原创 2022-08-03 23:10:28 · 1166 阅读 · 0 评论 -
Linux rp_filter和arp_filter参数浅析
在默认配置下,只要ARP请求中的目标IP配置在本机,无论其是否配置在收到ARP请求数据包的接口上,Linux收包接口都会以身MAC地址发送ARP响应。若是不希望接口响应所有本机IP,可以通过修改arp_ignore参数来调整测试环境网卡IP机器1-ens33192.168.1.11机器1-ens36192.168.1.12机器2-ens160192.168.1.15vmare1192.168.1.1实验# 查看网络信息[root@node1 ~原创 2022-04-21 21:11:54 · 2204 阅读 · 1 评论 -
交换机下ARP抓包分析
网络拓扑同网段 在pc0配置网络后,将模拟器设置为Simulation模式,然后配置pc1网络 可以发现PC1发送了一个目的mac为全f、目的IP为自己IP的ARP广播包,此广播包作用如下:可以检测IP是否冲突,当该包发送的交换机的时候,交换机会进行广播,如果有同样的IP机器,则会对这个ARP包进行响应,如果没有相同IP,则交换机下其他机器不进行响应(此时虽然这些机器接收到了ARP广播,但是目的IP不是自己,会直接将包丢弃)交换机在转发该数据包的同时也能学习到PC1的MAC地址,如下图所原创 2021-08-11 11:47:12 · 1842 阅读 · 0 评论 -
IP报文分片抓包简析
IP报文分片发送1472ICMP报文长度8+IP头部20+数据1472=1500(最大MTU),故而不会进行IP报文拆包# 发送ping[root@localhost ~]# ping -c 10 -s 1472 192.168.0.10PING 192.168.0.10 (192.168.0.10) 1472(1500) bytes of data.1480 bytes from 192.168.0.10: icmp_seq=1 ttl=64 time=0.133 ms1480 byte原创 2022-03-27 11:05:50 · 2720 阅读 · 1 评论 -
shell之while read line二种用法
while read linecommand | while read line;do command;doneread arg1 arg2 arg3 arg4 …,read是一個用來賦值的命令,它需要从目标输入获得值,然后把这些值按照位置依次赋值给变量arg1、arg2、arg3、arg4…,输入的时候以空格(可以有连续多个)作为分隔符command命令的输出作为read循环的输入,这种结构长用于处理超过一行的输出,当然awk也很擅长做这种事read通过输入重定向,把file的第一行所原创 2022-04-14 09:00:00 · 24334 阅读 · 1 评论 -
Centos7源码升级openssl到1.1.1n
Centos7源码升级openssl到1.1.1n# 下载源码包[root@k8s-master-1 ~]# wget https://www.openssl.org/source/openssl-1.1.1n.tar.gz# 解压[root@k8s-master-1 ~]# tar -zxf openssl-1.1.1n.tar.gz# 编译安装[root@k8s-master-1 ~]# cd openssl-1.1.1n/You have new mail in /var/spool原创 2022-04-10 17:01:41 · 1742 阅读 · 2 评论 -
iptables与IP报文分片浅析
背景192.168.0.11(iperf 服务端)192.168.0.10(iperf 接收端) 系统因会发送大于MTU的UDP组播包,且用户基于都是基于UDP带端口的组播,但是由于UDP分片抓包后,经wireshark分析,分片携带的数据是不会带源目端口,只有首包带,用户怀疑分片被iptables隔离导致无法正常接收数据包,故而进行此时分片iptables过滤测试配置iptables# 192.168.0.11,由于设置为发送UDP数据,故而仅设置OUTPUT即可,因接收端原创 2022-04-07 09:45:21 · 2993 阅读 · 0 评论 -
Linux VNC
VNCVNC简介 vnc是Virtual Network Computing(虚拟网络计算机)的缩写。VNC是由AT&T的欧洲研究实验室开发的一款优秀的跨平台远程桌面控制软件,支持linux,unix,windows等操作系统跨平台远程桌面控制。VNC有两部分组成,分别是:服务端([vnc](http://www.aiezu.com/tag/vnc)server)和客户端(vncviewer)VNC安装# 提前安装图形服务# 列出的组列表里有GNOME Desktop。yum gro原创 2022-04-07 08:30:00 · 3299 阅读 · 0 评论 -
shell高级用法笔记
子shell及嵌套模式重定向0:是一个文件描述符,表示标准输入(stdin)1:是一个文件描述符,表示标准输出(stdout)2:是一个文件描述符,表示标准错误(stderr)# 在标准情况下, 这些FD分别跟如下设备关联: stdin(0): keyboard 键盘输入,并返回在前端 stdout(1): monitor 正确返回值 输出到前端 stderr(2): monitor 错误返回值 输出到前端 # & 是一个描述符,如果1或2前不加&,会被当成一个普原创 2022-04-06 08:30:00 · 1288 阅读 · 1 评论 -
shell语法入门看着一篇就够了
BASH流程bash开头#!/bin/sh#!/bin/bash#!/usr/bin/awk#!/bin/sed#!/usr/bin/tcl#!/usr/bin/expect #<===expect解决交互式的语言标准开头#!/usr/bin/perl #<===perl语言解释器#!/usr/bin/env python #<===python语言解释器/bin/sh 往往是指向/bin/bash的符号链接bash执行流程 shell脚本是从上而下,从原创 2022-04-05 08:00:00 · 3067 阅读 · 0 评论 -
AWK案例入门看这一篇就够了
简介awk 擅长对列进行操作/进行数据信息操作awk 的基本使用(高级使用在shell)awk把文本文档看作是数据库,每一行看作一条数据库中的记录,可以指定数据列的分隔符,默认的分隔符是”\t”,即Tab。awk工作流程是这样的:读入有’\n’换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,1表示第一个域,1表示第一个域,1表示第一个域,n表示第n个域。默认域分隔符是”空白键” 或 “[tab]键”awk的执行模式是: awk '{pattern + ac原创 2022-04-04 17:25:30 · 1221 阅读 · 0 评论 -
tcpdump与iptables关系
iptables与tcpdumpPREROUTING# 设置所有流量DROPiptables -t raw -A PREROUTING -j DROP# 设置截取流量[root@localhost ~]# tcpdump -i ens33 -nvvtcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 65535 bytes07:30:30.928282 IP (tos 0x0, ttl 128, id原创 2022-03-07 08:30:00 · 1171 阅读 · 0 评论 -
iscsi开机自动挂载和认证配置
iscsi开机挂载和认证配置iscsi 开机自启# ①:发现iscsi设备[root@localhost ~]# iscsiadm -m discovery -t st -p 192.168.0.10# ②:注册iscsi设备,此时就可以看到磁盘了[root@localhost ~]# iscsiadm -m node -T iqn.2021-8.com.target:mystore -p 192.168.0.10:3260 -l# ③:如果有多路径,配置完多路径后写fstab,_netde原创 2022-02-23 15:18:55 · 4466 阅读 · 0 评论 -
Centos二进制安装vs code
Centos二进制安装vs code# 下载地址 https://az764295.vo.msecnd.net/stable/f80445acd5a3dadef24aa209168452a3d97cc326/code-stable-x64-1644446282.tar.gz# 解压VS CODE[root@boy ~]# tar -zxf code-stable-x64-1644446282.tar.gz [root@boy ~]# cd VSCode-linux-x64/[root@boy原创 2022-02-22 08:30:00 · 227 阅读 · 0 评论 -
Linux XFS文件系统修复
Linux XFS文件系统修复普通文件系统# 普通文件系统,模拟文件损坏# 1. 先格式化[root@localhost ~]# mkfs.xfs -f /dev/sdbmeta-data=/dev/sdb isize=512 agcount=4, agsize=65536 blks = sectsz=512 attr=2, projid32bit=1 =原创 2022-02-21 19:30:00 · 2965 阅读 · 0 评论 -
Centos7源码升级内核至5.16.10
Centos7 源码升级内核至5.16.10# 依赖环境安装[root@boy ~]# yum -y install gcc gcc-c++ kernel-devel kernel-headers bison flex ncurses-develqt-develhmaccalc zlib-devel binutils-devel elfutils-libelf-devel ncurses ncurses-devel openssl-devel# 升级GCC版本,由于5.16.10源码对gcc版本有要原创 2022-02-21 18:00:00 · 722 阅读 · 0 评论 -
Linux系统卡在iscsi服务导致无法正常开机
现象 存储网络断开了,机器再开机时卡在开机logo去挂载iscsi,导致没法正常开机解决办法1. 进救援模式或者单用户模式,将iscsid服务开机自启关了并禁用(关闭自启可能还是存在会被唤醒的情况) systemctl disable iscsid systemctl mask iscsid2. 再未故障时,在/etc/fstab添加如下内容:(UUID为iscsi映射过来的磁盘UUID,_netdev作用:当启动时需要启动网络设备,如果连不上,不会导致一直启这个服务) UUID=4e原创 2022-02-17 19:45:00 · 2759 阅读 · 0 评论 -
Centos安装时出现 dracut-initqueue timeout
背景在使用U盘安装Centos8的时候出现如下报错[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9afAcUJR-1640590345348)(http解决办法 先找到自己U盘的盘符(可以进行插拔U盘确认)dracut: cd /devdarcut: ls #查看自己的U盘盘符# 原本grub参数 linuxefi /image/pxeboot/vmlinuz inst.stage2=hd:LABEL=Centos-8-5-2111-x86_64-d原创 2021-12-28 19:30:00 · 3801 阅读 · 0 评论 -
Multipath多路径实验
实验环境# 关闭防火墙和selinux systemctl disable firewalld.service --now sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0target端配置# 安装target需要的安装包[root@iscsi-target ~]# yum -y install scsi-target-utils# 开机自启tgtd服务,查看网络连接情况,可原创 2021-12-21 21:09:17 · 941 阅读 · 0 评论 -
Centos网卡名称自定义
禁用网卡命名规则# 添加 net.ifnames=0 biosdevname=0# 在grub中添加参数[root@localhost ~]# cat /boot/grub/grub.conf # grub.conf generated by anaconda## Note that you do not have to rerun grub after making changes to this file# NOTICE: You have a /boot partition. Th原创 2021-12-20 14:42:53 · 281 阅读 · 0 评论 -
Linux查看显卡型号
方法一查询网址:http://pci-ids.ucw.cz/mods/PC/10de?action=help?help=pcilspci | grep -i nvi #或者lspci | grep -i vga86:00.0 VGA compatible controller: NVIDIA Corporation Device 128b (rev a1)06:00:1 Audio device: NVIDIA Coporation Device 0e0f (rev a1)# 返回的是一个十六原创 2021-12-02 14:52:46 · 7002 阅读 · 0 评论 -
Centos自动登录
##Centos自动登录修改下面的用户名即可实现不同用户自动登录cat /etc/gdm/custom.conf# GDM configuration storage[daemon]AutomaticLoginEnable=true #启用自动登录AutomaticLogin=root #指定自动登录账户,可以是其他用户[security][xdmcp][greeter][chooser][debug]原创 2021-12-02 14:46:47 · 2319 阅读 · 0 评论 -
VNC之免交互式设置用户登录密码
VNC之免交互式设置用户登录密码由于有几十台机器,每台机器需要配置4个VNC账号,手动配置太费劲了,这里使用免交互式配置密码,可以将其改在脚本中,减少配置时间方法一#!/bin/shyum -y install tigervnc*myuser="root"mypasswd="root123"mkdir /home/$myuser/.vncecho $mypasswd | vncpasswd -f > /home/$myuser/.vnc/passwdchown -R $myuser原创 2021-10-30 17:15:19 · 3803 阅读 · 0 评论 -
Shell之${BASH_REMATCH}
Shell之${BASH_REMATCH[N]}双目运算符=~它和==以及!=具有同样的优先级。如果使用了它,则其右边的字符串就被认为是一个扩展的正则表达式来匹配。如果字符串和模式匹配,则返回值是0,否则返回1。如果这个正则表达式有语法错误,则整个条件表达式的返回值是2。如果打开了shell的nocasematch 选项则匹配时不考虑字母的大小写。模式的任何部分都可以被引用以强制把其当作字符串来匹配。由正则表达式中括号里面的子模式匹配的字符串被保存在数组变量BASH_REMATCH 中。BASH_REMA原创 2021-10-27 15:58:54 · 2746 阅读 · 0 评论 -
Shell之$0、BASH_SOURCE、FUNCNAME
获取脚本路径分析{BASH_SOURCE} BASH_SOURCE,是一个数组,不过它的第一个元素是当前脚本的名称。这在source的时候非常有用,因为在被source的脚本中,$0是父脚本的名称,而不是被source的脚本名称,BASH_SOURCE[0] 等价于 BASH_SOURCE, 取得当前执行的shell文件所在的路径及文件名# BASH_SOURCE表示的是用户所在的目录到脚本的路径[root@jiayu ~]# cat source.sh #!/bin/bashecho ${B原创 2021-10-27 11:06:29 · 1581 阅读 · 0 评论 -
再生龙工具备份Linux系统
再生龙工具备份Linux系统下载再生龙工具官网链接:http://clonezilla.nchc.org.tw/intro/在这里插入图片描述档案类型选择ISO制作启动盘 将下载的ISO文件使用UltraISO等工具制作启动盘,可选介质:U盘、光盘等,这里选用U盘注意:U盘数据会被清空,请事先备份备份系统将启动盘插入带有Kylinsec系统的机器上,选择从再生龙启动盘启动注意:选择第三项,将数据加载到内存中,待加载完成后即可将启动盘拔出回车即可回车即原创 2021-10-27 10:25:15 · 3754 阅读 · 1 评论 -
Linux库文件缺少通用解决方法
Linux库文件缺少通用解决方法查询依赖关系 rpm -qR centos-release 安装 R参数的意思就是requires就是依赖哪些软件包 rpm -qpR centos-release 未安装 yum deplist centos-release查询库文件 rpm -qf /file/path (绝对路径,库文件不存在) yum provides libname (库文件不存在)案例# 实例# 现象如下 libssl.so.1.1()(64bit) 被原创 2021-10-27 10:13:04 · 482 阅读 · 0 评论 -
Linux脚本中set -eux分析
set命令语法# 语法 set [+-abCdefhHklmnpPtuvx]# 参数 -a 标示已修改的变量,以供输出至环境变量。 -b 使被中止的后台程序立刻回报执行状态。 -C 转向所产生的文件无法覆盖已存在的文件。 -d Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消。 -e 若指令传回值不等于0,则立即退出shell。 -f 取消使用通配符。 -h 自动记录函数的所在位置。 -H原创 2021-10-25 11:48:23 · 678 阅读 · 0 评论 -
Centos7 源码编译升级内核
1原创 2021-10-11 15:41:19 · 495 阅读 · 0 评论 -
Centos6/7进入单用户模式
单用户模式可以对系统进行修复,如:修改root密码,修改因配置不正确而导致系统启动失败的配置文件等Centos61. 在引导项后加single或者1,启动后,即可进入单用户模式2. 修改系统文件后,重启即可,不用创建/.autorelabelCentos71: 将ro改为rw2: 添加init=/sysroot/bin/sh,然后ctrl+x启动chroot /sysroot/ #切换到真正的根上来touch /.autorelabel #使selinux生效,最好是每次修改文原创 2021-09-24 10:15:26 · 936 阅读 · 0 评论 -
Centos7修复/boot/*被删除
模拟删除/boot/*插入光盘进入救援模式#进入本地系统目录 chroot /mnt/sysimage#挂载光盘 mount /dev/sr0 /mnt#重新安装linux内核,会生成内核文件等文件 rpm -ivh /mnt/Packages/kernel-3… --force# 重新安装grub2菜单,即生成/boot/grub2/* grub2-install /dev/sda #重新生成grub的配置文件 grub2-mkconfig > /boot/gr原创 2021-09-23 23:51:47 · 2214 阅读 · 2 评论 -
Centos6修复/boot/*被删除
模拟grub分区损坏开机后无法进入系统但是可以进入grub-shell,由于stage2是通过硬件跳转的,所以即使rm -rf后,还是能进入grub,使用dd命令去格式/boot/,那么可以确定grub已经被完全破坏了插入光驱,进入救援模式选择“Continue”,如果要进入救援模式,那么需要将光盘镜像安装到/mnt/sysimage目录下你的系统已经安装在如下目录/mnt/sysimage,如果要使用救援模式,必须切换到这个目录将根切换到之前的系统进入shell界面,现在是救援原创 2021-09-23 22:48:30 · 350 阅读 · 0 评论 -
vim主题+插件+优化
##效果图安装curl -sSL https://gitee.com/jiayu997/linux/attach_files/821753/download/vim-shell.sh | bash原创 2021-09-10 22:23:15 · 295 阅读 · 0 评论 -
veth-pair bridge分析
veth-pair-bridgebridge设备也是一种虚拟的网络设备,所以具有网络设备的特性,bridge设备是一种纯软件实现的虚拟交换机,所以和物理的交换机有着类似的功能(mac地址学习、stp、fdb等)bridge设备既可以配置ip地址也可以配置mac地址,可以实现交换机的二层转发bridge设备有多个端口,我们可以将tap设备、veth设备attach到bridge设备,我们可以想象成是交换机上的各种端口创建bridge设备 当我们创建br0设备时,它是一个独立的网络原创 2021-08-27 15:38:47 · 699 阅读 · 0 评论 -
veth-pair 在二个namespace之间通信
二个namespace之间的通信# 创建 namespace [root@boy ~]# ip netns add s1 [root@boy ~]# ip netns add s2# 创建一对veth-pair [root@boy ~]# ip link add veth0 type veth peer name veth1 # 将veth0和veth1加入s1,s2 [root@boy ~]# ip link set veth0 netns s1 [root@原创 2021-08-26 16:19:10 · 287 阅读 · 0 评论