Linux相关学习(三)

1.各服务产生的数据库会写在:/var/lib/*
2.显示出目前系统上面所有服务的运行状态: service --status-all
3.ldd 可以查看某个程序的动态函数库支持情况: ldd $(which sshd httpd)
4.文件数据处理过程: 在Linux/Unix系统中,在文件或数据处理过程中一般先放到内存缓冲区中,等到适当的时候再写入磁盘,以提高系统的运行效率。sync命令则可用来强制将内存缓冲区中的数据立即写入磁盘中。用户通常不需执行sync命令,系统会自动执行update或bdflush操作,将缓冲区的数据写入磁盘。只有在update或bdflush无法执行或用户需要非正常关机时,才需手动执行sync命令。
5.chkconfig: 设置自己的系统服务 chkconfig [–add|–del] 服务名
add:表示增加一个服务名称给chkconfig来管理,该服务名称必须在/etc/init.d中
服务名称中的内容:
vim /etc/init.d/myvbird
#!/bin/bash
#chkconfig: 35 80 70 //chkconfig:[runlevels][启动顺序][停止顺序]

删除一个服务名称:chkconfig --del myvbird rm /etc/init.d/myvbird

6.daemon所在目录: vim /etc/init.d/*

7.日志文件总结: vim /var/log/cron(为crontab的日志文件)
/var/log/dmesg(记录内核检测过程中所产生的各项信息)
/var/log/lastlog(记录系统所有账号最近一次登录系统时的相关信息)
/var/log/maillog或者/var/log/mail/*
/var/log/messages(系统发生的错误信息基本都在这里面)
/var/log/secure(需要输入账号密码时,不论正确与否都会记录在这里面)
syslogd : 主要登录系统与网络等服务的信息配置文件/etc/syslog,conf
klogd: 主要登录内核产生的各项信息
logrotate: 主要进行日志文件的轮替功能
日志等级: info(1) notice(2) warning(3) error(4) crit(5) alert(6) emerg(7)
给日志文件设置隐藏属性: chattr +a /var/log/messages(此时日志文件只能增加不能被删除
取消隐藏属性: chattr -a /var/log/messages
查看隐藏属性: lsattr /var/log/messages
8.对/var/log/messages的误操作: 如果你不小心修改了/var/log/messages 并且用:wq 的话,你需要重新启动syslog (/etc/init.d/syslog restart)
9.内核模块放的位置: /lib/modules/$(uname -r)/kernel
10.内核加载了多少模块:(lsmod)
列出模块的相关信息:(modinfo 模块名)
加载模块使用modprobe(这个命令不用考虑模块是否有依赖属性的问题) modprobe 模块名(加载模块)
modprobe -r 模块名(删除模块)
depmod -a (更新模块相依属性)

11.忘记密码的解决之道: 重新启动,进入grub菜单,按e然后输入single然后按b,然后执行passwd + 新密码
12.配置DNS: vim /etc/resolv.conf
内容为: nameserver 192.168.1.1(DNS IP)
重启网络 /etc/init.d/network restart
13.查看主机硬件设备(PCI) : lspci 检测目前的CPU、机壳、电源、风扇等信息
14.程序的编译格式: gcc sin -o sin.c -lm -L/usr/lib -I/usr/include
-lm 表示指的是libm.so或者libm.a这个函数库文件
-L 指函数库的搜索目录
-I 指源码内的include文件的所在目录
15.静态库和动态库: 函数库分为静态库和动态库,静态库的扩展名为libxxx.a的类型 动态库扩展名为libxxxx.so的类型
区别: 当同一个程序分别使用静态库,动态库两种方式生成两个可执行文件时,静态链接所生成的文件所占用的内存要远远大于动态链接所生成的文件。(因为静态链接是在编译时将所有的函数都编译进了程序。而动态链接是在运行是才调用库里相应函数)

16.程序的动态函数库解析: ldd 找出/lib/libc.so.6这个函数的相关其他函数库 ldd -v /lib/libc.so.6

17.某个软件的指纹编码有两种情况: md5sum 软件名 sha1sum 软件名

18.两大主流软件安装方式:
1.Red Hat 软件管理机制为RPM 在线升级为YUM
2.Ubuntu 软件管理机制为DPKG 在线升级为APT

19.Linux下需要备份的内容:
/etc/整个目录
/home/整个目录
/var/spool/mail
/boot /root 如果你自行安装过其他套件 那么/usr/local 或/opt 也需要备份一下

20.备份: 用dd来将/dev/sda备份到完全一模一样的/dev/sdb硬盘上
dd if=输入文件 of=输出文件 bs=字节数 count=个数
在这里插入图片描述
dd if=/dev/sda of=/dev/sdb
完整备份:dump -0u -f /backupdata/home.dump /home (表示将/home 完整备份到/backupdata下面,需要安装yum install dump)

增量备份(第一次):dump -1u -f /backupdata/home.dump.1 /home

21.在程序中通过关键字查找函数: grep 关键字 . -rn
22.NAT(地址转换协议)相关介绍:
实现私有网络地址到公共网络地址的转换
NAT有三种类型: 静态NAT(Static NAT)、动态地址NAT(Pooled NAT)、网络地址端口转换NAPT(Port-Level NAT)。
其中,网络地址端口转换NAPT则是把内部地址映射到外部网络的一个IP地址的不同端口上。它可以将中小型的网络隐藏在一个合法的IP地址后面。NAPT与动态地址NAT不同,它将内部连接映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的端口号。
NAPT是使用最普遍的一种转换方式,在HomeGW中也主要使用该方式。它又包含两种转换方式:SNAT和DNAT。
(1)源NAT(Source NAT,SNAT): 修改数据包的源地址。源NAT改变第一个数据包的来源地址,它永远会在数据包发送到网络之前完成,数据包伪装就是一具SNAT的例子。
(2)目的NAT(Destination NAT,DNAT): 修改数据包的目的地址。Destination NAT刚好与SNAT相反,它是改变第一个数据包的目的地址,如平衡负载、端口转发和透明代理就是属于DNAT。
在这里插入图片描述
NAT主要可以实现以下几个功能: 数据包伪装、平衡负载、端口转发和透明代理。
数据伪装: 可以将内网数据包中的地址信息更改成统一的对外地址信息,不让内网主机直接暴露在因特网上,保证内网主机的安全。同时,该功能也常用来实现共享上网。
端口转发: 当内网主机对外提供服务时,由于使用的是内部私有IP地址,外网无法直接访问。因此,需要在网关上进行端口转发,将特定服务的数据包转发给内网主机。
负载平衡: 目的地址转换NAT可以重定向一些服务器的连接到其他随机选定的服务器。
失效终结: 目的地址转换NAT可以用来提供高可靠性的服务。如果一个系统有一台通过路由器访问的关键服务器,一旦路由器检测到该服务器宕机,它可以使用目的地址转换NAT透明的把连接转移到一个备份服务器上。
透明代理: NAT可以把连接到因特网的HTTP连接重定向到一个指定的HTTP代理服务器以缓存数据和过滤请求。一些因特网服务提供商就使用这种技术来减少带宽的使用而不用让他们的客户配置他们的浏览器支持代理连接。
地址转换: NAT的基本工作原理是,当私有网主机和公共网主机通信的IP包经过NAT网关时,将IP包中的源IP或目的IP在私有IP和NAT的公共IP之间进行转换。
如下图所示,NAT网关有2个网络端口,其中公共网络端口的IP地址是统一分配的公共 IP,为202.20.65.5;私有网络端口的IP地址是保留地址,为192.168.1.1。私有网中的主机192.168.1.2向公共网中的主机202.20.65.4发送了1个IP包(Dst=202.20.65.4,Src=192.168.1.2)。
在这里插入图片描述
当IP包经过NAT网关时,NAT Gateway会将IP包的源IP转换为NAT Gateway的公共IP并转发到公共网,此时IP包(Dst=202.20.65.4,Src=202.20.65.5)中已经不含任何私有网IP的信息。由于IP包的源IP已经被转换成NAT Gateway的公共IP,Web Server发出的响应IP包(Dst= 202.20.65.5,Src=202.20.65.4)将被发送到NAT Gateway。
这时,NAT Gateway会将IP包的目的IP转换成私有网中主机的IP,然后将IP包(Des=192.168.1.2,Src=202.20.65.4)转发到私有网。对于通信双方而言,这种地址的转换过程是完全透明的。转换示意图如下。
在这里插入图片描述
如果内网主机发出的请求包未经过NAT,那么当Web Server收到请求包,回复的响应包中的目的地址就是私网IP地址,在Internet上无法正确送达,导致连接失败。
连接跟踪: 在上述过程中,NAT Gateway在收到响应包后,就需要判断将数据包转发给谁。此时如果子网内仅有少量客户机,可以用静态NAT手工指定;但如果内网有多台客户机,并且各自访问不同网站,这时候就需要连接跟踪(connection track)。如下图所示:
在这里插入图片描述
在NAT Gateway收到客户机发来的请求包后,做源地址转换,并且将该连接记录保存下来,当NAT Gateway收到服务器来的响应包后,查找Track Table,确定转发目标,做目的地址转换,转发给客户机。
端口转换: 以上述客户机访问服务器为例,当仅有一台客户机访问服务器时,NAT Gateway只须更改数据包的源IP或目的IP即可正常通讯。但是如果Client A和Client B同时访问Web Server,那么当NAT Gateway收到响应包的时候,就无法判断将数据包转发给哪台客户机,如下图所示
在这里插入图片描述
此时,NAT Gateway会在Connection Track中加入端口信息加以区分。如果两客户机访问同一服务器的源端口不同,那么在Track Table里加入端口信息即可区分,如果源端口正好相同,那么在执行SNAT和DNAT的同时对源端口也要做相应的转换,如下图所示
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值