linux学习之鸟哥学习之服务器架设篇
1、可以去各大讨论区发问
http://phorum.study-area.org/酷学园
2、网络范围
局域网(lan)和广域网(wan)
多个lan组成了wan
3、mac的封装格式
4、IP数据包的封装格式
只需要知道ttl、protocol、源ip地址、目的ip地址
5、网段由网络号和主机号组成,同一网段具有相同的网络号
主机号全为1为广播地址,全为0为网络地址
6、ip地址分为5个等级
只需要关注ABC因为D一般是用作组播,E一般是保留的,没有使用的
ABC又分为公私网:
A中还有一类lo(回环地址),127.0.0.0/8是回环网络,默认是127.0.0.1
7、tcp数据包格式
8、udp数据包
9、arp
arp的记录默认会保留20min
arp会随着你的ip的改变随时更新
arp -n 显示所有的arp表
arp -s可以自己写入静态的ip和mac的对应关系
10、route -n
如果有两个相同的网段,那么按照顺序会走第一个eth0,比如:
192.168.1.0 0.0.0.0 255.255.255.0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 eth1
如果有两个网段包含关系,会走更为精确的一个eth1
192.168.1.0 0.0.0.0 255.255.0.0 eth0
192.168.1.0 0.0.0.0 255.255.255.0 eth1
12 DNS主机IP的设定在/etc/resolv.conf文件内
系统会先到/etc/hosts里查找对应的设置值,如果找不到,才会使用/etc/resolv.conf去查询
13查看硬件设备
lspci | grep -i
查看驱动
lsmod | grep
动态加载某个模块
modprobe ip_vs
动态卸载某个模块
modprobe -r ip_vs
希望开机自动加载该模块:
echo "modprobe ip_vs" >> /etc/rc.d/rc.local
14、/etc/init.d/network restart 一口气重启整个网络的参数,会去读取所有的网络配置文件
ifup eth0
ifdown eth0
如果使用了ifconfig eth0设置或者修改了网络接口后(相当于修改了配置文件),就无法使用ifup、ifdown
因为ifdown会分析当前的网络参数和ifcfg-eth0是否相符合
15三次握手、四次挥手
为什么需要三次握手
1、防止已过期的连接再次传到被连接的主机。
如果采用两次的话,会出现下面这种情况。比如是A机要连到B机,结果发送的连接信息由于某种原因没有到达B机;
于是,A机又发了一次,结果这次B收到了,于是就发信息回来,两机就连接。传完东西后,断开。结果这时候,原先没有到达的连接信息突然又传到了B机,于是B机发信息给A,然后B机就以为和A连上了,这个时候B机就在等待A传东西过去。浪费资源。
2、如果两次握手,如果a已经挂了,b以为连接上了,一厢情愿
如果第三次,a发给b的消息丢失了,也不影响,因为一般握手后,a会立刻给b发送消息,b也会认为是处于连接状态;
为什么是四次挥手
因为服务端还有事情要处理
timewait的状态的原因:
因为虽然双方都同意关闭连接了,而且握手的4个报文也都发送完毕,按理可以直接回到CLOSED 状态(就好比从SYN_SENT 状态到ESTABLISH 状态那样),但是我们必须假想网络是不可靠的,你无法保证你最后发送的ACK报文一定会被对方收到,就是说对方处于LAST_ACK 状态下的SOCKET可能会因为超时未收到ACK报文,而重发FIN报文,所以这个TIME_WAIT 状态的作用就是用来重发可能丢失的ACK报文。
16、tcp的几种状态
参考https://www.cnblogs.com/qingergege/p/6603488.html
客户端独有的:(1)SYN_SENT (2)FIN_WAIT1 (3)FIN_WAIT2 (4)CLOSING (5)TIME_WAIT 。
服务器独有的:(1)LISTEN (2)SYN_RCVD (3)CLOSE_WAIT (4)LAST_ACK 。
共有的:(1)CLOSED (2)ESTABLISHED 。
17 通过ping -c 2 -s 8000 -M do ip可以测试MTU
18 traceroute测试通信情况
traceroute -n ip (默认是udp)
traceroute -w 1 -n -T ip采用TCP进行测试(-l采用icmp进行测试)
19、根据rpcbind如何停止它
which rpcbind找到文件/sbin/rpcbind
rpm -qf /sbin/rpcbind 找到软件rpcbind-0.2.0-**.x86-64
rpm -qc rpcbind | grep init找到启动命令 /etc/rc.d/init.d/rpcbind
然后将它停止:/etc/rc.d/init.d/rpcbind stop
20、selinux
selinux存在三种模式:
enforcing: 强制模式
permissive: 宽容模式(仅仅会有警告,不会强制限制)
disabled: 关闭
常用命令:
getenforce可以得到模式
setenforce 0 宽容模式(所以这是关闭selinux临时解决的方法,永久解决需要vi /etc/sysconfig/selinux SELINUX=disabled 重启生效)
setenforce 1 强制模式
注意:
setenforce不能在disable的情况下进行切换。
配置文件在/etc/selinux/config;
如果由disabled切换到其他两种,后者其他两种切换到disable需要进行重启服务器。
21、内核是否具有数据包转发能力
cat /proc/sys/net/ipv4/ip_forword
0 代表没有启动;1代表启动
echo 1> cat /proc/sys/net/ipv4/ip_forword 但是重启后会失效,彻底的解决方法:
vim /etc/syscl.conf
net.ipv4.ip_forword=1
然后sysctl -p立即生效
22、防火墙分为硬件防火墙和软件防火墙
硬件防火墙专门的硬件安装上系统,转作为防火墙功能;;
防火墙最大的功能就是限制某些服务的访问来源。
23、虽然 “echo 1 > /proc/sys/net/ipv4/conf/???/rp_filter“可以,但是还是建议在/etc/sysctl.conf里增加配置, 然后systemctl -p
24、开机自启动
/etc/rc.d/rc.local
25、代理服务器和nat服务器的差异
nat主要工作在二、三、四层;
代理服务器主要工作在应用程序;