最全的Linux教程,Linux从入门到精通
======================
-
linux从入门到精通(第2版)
-
Linux系统移植
-
Linux驱动开发入门与实战
-
LINUX 系统移植 第2版
-
Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens39 //ens39还在
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0f:a6:74
Slave queue ID: 0
Slave Interface: ens38 //ens38已经起来了
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0f:a6:6a
Slave queue ID: 0
Centos7/RHEL7配置bond1
//添加bond1模式为active-backup(高可用)
[root@localhost ~]# nmcli con add type bond mode active-backup con-name bond1 ifname bond1 ipv4.method manual ipv4.addresses 192.168.100.96/24 ipv4.gateway 192.168.100.254 ipv4.dns 192.168.100.254
连接“bond1”(fbf28be4-3db2-460c-9699-c7fce1f982e2) 已成功添加。
查看网络状态
[root@localhost ~]# nmcli dev
设备 类型 状态 连接
bond1 bond 连接的 bond1 //bond1已连接
ens38 ethernet 已断开 –
ens39 ethernet 已断开 –
ens33 ethernet 未托管 –
lo loopback 未托管 –
//添加物理网卡连接至bond1
[root@localhost ~]# nmcli con add type bond-slave con-name bond-a ifname ens38 master bond1 //添加ens38至bond1,连接的名字bond-a(配置文件的name) 网卡的名字ens38(配置文件的device)
连接“bond-a”(c528b036-8c9f-4459-8ab7-5604306a18e5) 已成功添加。
[root@localhost ~]# nmcli dev
设备 类型 状态 连接
bond1 bond 连接的 bond1
ens38 ethernet 连接的 bond-a
ens39 ethernet 已断开 –
ens33 ethernet 未托管 –
lo loopback 未托管 –
[root@localhost network-scripts]# nmcli con add type bond-slave con-name ens39 ifname ens39 master bond1 //添加ens39至bond1,类型为bond-slave,链接名字ens39,网卡名字ens39
连接“ens39”(f721d815-1a04-483d-a38d-4deaee156611) 已成功添加。
[root@localhost network-scripts]# nmcli dev
设备 类型 状态 连接
bond1 bond 连接的 bond1
ens38 ethernet 连接的 bond-a
ens39 ethernet 连接的 ens39
ens33 ethernet 未托管 –
lo loopback 未托管 –
//激活链接:
[root@localhost ~]# nmcli con up bond1
成功激活(主服务器等待从服务器)连接(D-Bus 激活路径:/org/freedesktop/NetworkManager/ActiveConnection/4)
[root@localhost ~]# nmcli con up bond-a
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/7)
[root@localhost ~]# nmcli con up ens39
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/8)
//验证:
查看bond的配置信息 cat /proc/net/bonding/bond1
[root@localhost ~]# cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens38 //当前活动的是ens38
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens38
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0f:a6:6a
Slave queue ID: 0
Slave Interface: ens39
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0f:a6:74
Slave queue ID: 0
//down掉ens38
[root@localhost ~]# nmcli dev discon ens38
成功断开设备 ‘ens38’。
[root@localhost ~]# nmcli dev
设备 类型 状态 连接
bond1 bond 连接的 bond1
ens39 ethernet 连接的 ens39
ens38 ethernet 已断开 –
ens33 ethernet 未托管 –
lo loopback 未托管 –
//再次查看bond配置文件信息
[root@localhost ~]# cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens39 //当前活跃的是ens39这块网卡
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens39 //而ens38这块网卡断掉后信息就没了
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0f:a6:74
Slave queue ID: 0
//再次启用ens38这块网卡的链接
[root@localhost ~]# nmcli con up bond-a
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/9)
[root@localhost ~]# nmcli dev
设备 类型 状态 连接
bond1 bond 连接的 bond1
ens38 ethernet 连接的 bond-a
ens39 ethernet 连接的 ens39
ens33 ethernet 未托管 –
lo loopback 未托管 –
//再次查看bond的配置信息
[root@localhost ~]# cat /proc/net/bonding/bond1
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: ens39 //ens39是活跃的
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens39
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0f:a6:74
Slave queue ID: 0
Slave Interface: ens38 //ens38回来了
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:0f:a6:6a
Slave queue ID: 0
Centos6/RHEL6配置bond聚合链路
适用于RedHat6
以及CentOS6
| 系统 | 网卡 | bond地址 | bond模式 | bond功能 |
| :-- | :-- | :-- | :-- | :-- |
| Centos6.5 | eth0: 172.16.12.128 eth1: 172.16.12.129 | 172.16.12.250 | 模式0 | 负载均衡 |
//1.创建绑定网卡配置文件
[root@wyh ~]# cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Ethernet
ONBOOT=yes
USERCTL=no
BOOTPROTO=static
IPADDR=172.16.12.250
NETMASK=255.255.255.0
GATEWAY=172.16.12.2
DNS1=172.16.12.2
BONDING_OPTS=“mode=0 miimon=50” //如果使用模式1将mode修改为1即可
//2.修改eth0和eth1网卡配置文件
[root@wyh ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
USERCTL=no
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
[root@wyh ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
USERCTL=no
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
//3.添加驱动支持bond0
[root@wyh ~]# vim /etc/modprobe.d/bonding.conf
alias bond0 bonding
Centos7/RHEL7配置team聚合链路
centos/rhce7
使用teaming
实现聚合链路,能够提供网卡绑定之后的网络吞吐性能,并且提供网卡的故障切换处理能力。
Team
是基于一个小型内核驱动实现聚合链路,在用户层提供teamd
命令实现链路管理。
teamd
可以实现以下模式的聚合链路
broadcast 广播容错
roundrobin 负载轮询
activebackup 主备(必考)
loadbalance 负载均衡
lacp 需要交换机支持lacp协议
//创建team0:
[root@localhost ~]# nmcli con add type team con-name team0 ifname team0 config ‘{“runner”:{“name”:“activebackup”}}’ ipv4.addresses 192.168.100.250/24 ipv4.gateway 192.168.100.254 ipv4.dns 114.114.114.114 ipv4.method manual
连接“team0”(cae0a7dc-c9db-473b-bf5d-b6a9de8ade1b) 已成功添加。
//将物理网卡加入team0中:
[root@localhost ~]# nmcli con add type team-slave con-name ens38 ifname ens38 master team0
连接“ens38”(5e38d849-9783-445e-9498-35ba76c947fa) 已成功添加。
[root@localhost ~]# nmcli con add type team-slave con-name ens39 ifname ens39 master team0
连接“ens39”(3e5af9e6-a9b3-41ea-afeb-2c8180fecf90) 已成功添加。
[root@localhost ~]# nmcli dev
设备 类型 状态 连接
ens38 ethernet 连接的 ens38
ens39 ethernet 连接的 ens39
team0 team 连接的 team0
ens33 ethernet 未托管 –
lo loopback 未托管 –
//将其中一块网卡断掉后测试:
[root@localhost ~]# nmcli dev discon ens39
成功断开设备 ‘ens39’。
[root@localhost ~]# teamdctl team0 state
setup:
runner: activebackup //高可用模式
ports:
ens38
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
active port: ens38 //正在使用的是ens38
//把ens39网卡起来,然后查看team0的配置信息
[root@localhost ~]# nmcli dev con ens39
成功用 ‘ens39’ 激活了设备 ‘3e5af9e6-a9b3-41ea-afeb-2c8180fecf90’。
[root@localhost ~]# teamdctl team0 state
setup:
runner: activebackup //使用的是高可用模式
ports:
ens38
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
ens39 //起来了ens39
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
runner:
active port: ens38 //目前用的还是ens38
动态修改team模式
// 导出配置进行修改 (man teamd.conf)
[root@wangqing ~]# teamdctl team0 config dump > /tmp/team.conf
[root@wangqing ~]# vim /tmp/team.conf
{
“device”: “team0”,
“hwaddr”: “1A:E1:49:D1:02:AF”,
“mcast_rejoin”: {
“count”: 1
},
“notify_peers”: {
“count”: 1
},
“ports”: {
“ens38”: {
“link_watch”: {
“name”: “ethtool”
}
},
“ens39”: {
“link_watch”: {
“name”: “ethtool”
}
}
},
“runner”: {
“name”: “loadbalance”, //此处将avtivebackup改为loadbalance
“tx_hash”: [
“eth”,
“ipv4”,
“ipv6”
]
}
}
//以最新修改的配置选项修改team0属性
[root@wyh ~]# nmcli con mod team0 team.config /tmp/team.conf
//修改之后需要重启team0
[root@wyh ~]# nmcli connection down team0;nmcli connection up team0
[root@wyh ~]# nmcli connection up ens38
[root@wyh ~]# nmcli connection up ens39
[root@localhost ~]# teamdctl team0 stat
setup:
runner: loadbalance //现在使用的是loadbalance负载均衡模式
ports:
ens38
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
ens39
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count: 0
桥接网络配置
创建桥接网络br1
[root@wyh ~]# nmcli connection add type bridge con-name br1 ifname br1 ipv4.addresses 192.168.56.222/24 ipv4.method manual
桥接至eth1
[root@wyh ~]# nmcli connection add type bridge-slave con-name br1-prot1 ifname eth1 master br1
//[root@wyh~]# ping -I br1 192.168.56.1
//[root@wyh ~]# brctl show
网络检测工具与故障排查
ping
ping
命令的目的在于测试另一台主机是否可达, 如果ping不到某台主机,就说明对方主机已经出现了问题, 但是不排除由于链路中的防火墙、ping被丢弃等原因造成ping不通的情况
//ping命令常用选项:
-c 指定ping的次数
-i 指定ping包的发送间隔
-w 如果ping没有回应, 则在指定超时时间后退出
host与nslookup
host/nslookup
命令用于查询DNS记录
[root@localhost ~]# host www.baidu.com
www.baidu.com is an alias for www.a.shifen.com.
www.a.shifen.com has address 119.75.216.20
www.a.shifen.com has address 119.75.213.61
[root@localhost ~]# nslookup www.baidu.com
Server: 172.16.12.2
Address: 172.16.12.2#53
Non-authoritative answer:
www.baidu.com canonical name = www.a.shifen.com.
Name: www.a.shifen.com
Address: 119.75.213.61
Name: www.a.shifen.com
Address: 119.75.216.20
traceroute
traceroute
命令用于路由跟踪, 检测网络故障出现在ISP运营商或是对端服务无法响应
[root@wyh ~]# traceroute www.baidu.com
traceroute to www.baidu.com (119.75.213.61), 30 hops max, 60 byte packets
1 gateway (192.168.1.1) 1.838 ms 1.749 ms 1.654 ms
2 49.222.80.1 (49.222.80.1) 2.506 ms 7.196 ms 7.133 ms
3 * * *
4 * * *
5 * * *
netstat
netstat
用于查看网络状态
//显示路由表
[root@wyh~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default gateway 0.0.0.0 UG 0 0 0 ens33
172.16.12.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
//以数字方式显示路由表
[root@wyh ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 172.16.12.2 0.0.0.0 UG 0 0 0 ens33
172.16.12.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
//显示建立的tcp连接
[root@wyh ~]# netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 seancheng:ssh 172.16.12.1:56187 ESTABLISHED
tcp 0 0 seancheng:ssh 172.16.12.1:53808 ESTABLISHED
//显示udp连接
[root@wyh ~]# netstat -u
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
[root@wyh ~]#
//显示监听状态的连接
[root@wyh ~]# netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
tcp6 0 0 [::]:ssh [::]😗 LISTEN
tcp6 0 0 localhost:smtp [::]😗 LISTEN
//显示监听指定的套接字的进程的进程号及进程名
[root@wyh ~]# netstat -p
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 seancheng:ssh 172.16.12.1:56187 ESTABLISHED 2094/sshd: root@pts
tcp 0 0 seancheng:ssh 172.16.12.1:53808 ESTABLISHED 1077/sshd: root@pts
最全的Linux教程,Linux从入门到精通
======================
-
linux从入门到精通(第2版)
-
Linux系统移植
-
Linux驱动开发入门与实战
-
LINUX 系统移植 第2版
-
Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!