网络对于Linux来说不可或缺的一部分,本文主要对linux网络的基础知识,常用配置命令以及linux配置文件的属性等等作一个总结。
计算机网络:
TCP/IP协议栈: TCP/IP分为4层,分别为应用层,传输层,网络互连层,主机到网络层,不同于OSI,他将OSI中的会话层、表示层规划到应用层,把数据链路层和物理层划分给主机到网络层。
OSI,Open System Interconnection,开放式系统互联,国际化标准组织ISO制定了OSI模型,该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本框架。OSI模型把网络通信的工作层分为七层,从上至下分别为应用层,表示层,会话层,传输层,网络层,数据链路层和物理层。
MAC: Media Access Control,媒体访问控制器,也被称为物理地址,采用十六进制数来表示,共48bits,常用来定义网络设备的位置。在OSI模型中,第三层网络层负责IP地址,第二层数据链路层负责MAC地址。因此一个主机会有一个MAC地址,而每个网络位置会有一个专属它的IP地址。MAC地址由网卡决定,是固定的。
网桥(Bridge),也叫做桥接器,是连接两个局域网的一种存储/转发设备,根据MAC地址分区块,可隔离碰撞,它能将一个大的LAN分割为多个网段,或将两个以上的LAN互联为一个逻辑LAN,使LAN上的所有用户都可访问服务器。
交换机(Switch)意为“开关”,是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。最常见的交换机是以太网交换机。其他常见的还有电话语音交换机、光纤交换机等。交换机相当于一个多端口的网桥。
IP地址,Internet Protocol Address,国际互联网协议地址。IP地址是IP协议提供的一种统一的地址格式,它为互联网的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
IPv4: 32bits
8bits.8bits.8bits.8bits
0-255
0.0.0.0-255.255.255.255
IP地址分类:
A类:
第一段为网络号,后三段为主机号
网络号:
0 000 0000 – 0 111 1111: 1-127
网络数量:126,127
每个网络中的主机数量:2^24-2
默认子网掩码:255.0.0.0,/8
用于与IP地址按位“与”运算,从而取出其网络地址:
1.3.2.1/255.0.0.0=1.0.0.0
私网地址:10.0.0.0/255.0.0.0
B类:
前两段为网络号,后两段为主机号
网络号:
10 00 0000 – 10 11 1111: 128-191
网络数:2^14
每个网络中的主机数量:2^16-2
默认子网掩码:255.255.0.0 ,/16
私网地址:172.16.0.0-172.31.0.0
C类:
前三段为网络号,最后一段为主机号
网络号:
110 0 0000 – 110 1 1111: 192-223
网络数:2^21
每个网络中的主机数量:2^8-2
默认子网掩码:255.255.255.0,/24
D类:组播
11100000 – 1110 1111: 224-239
E类:科研
240-255
跨网络通信:路由
主机路由:从一台主机到另一台主机经过的路由;
网络路由:从主机发出的数据包通过该路由链接到网络;
默认路由:从主机发出的所有数据包都经过该路由发出;
可以用route命令查看路由情况,在下面介绍。
IP/mask
路由:默认网关
DNS服务器:
主DNS服务器;
次DNS服务器;
第三DNS服务器;
DNS的配置将在下面具体介绍。
配置方式:
静态指定:
配置文件:
动态分配:
网络命令管理:
Ifconfig命令:
ifconfig - configure a network interface
ifconfig [interface]
#ifconfig :显示主机活动的网络接口信息
#ifconfig -a:显示本机所有网络接口信息
#ifconfig IFACE [up|down]:启用|禁用指定接口
#ifconfig IFACE :显示指定接口的信息
ifconfiginterface [aftype] options | address ...
#ifconfig IFACE IP/mask:给指定的接口配置IP和掩码
#ifconfig IFACE IP netmask MASK: 给指定的接口配置IP和掩码
NOTE:此命令配置IP立即生效,但是重启后则失效;
[禁用]启用混杂模式:[-]promisc(一般用于网络监控,混杂模式表示即便目标MAC不是自己也会接收)
route命令:
路由条目类型:
主机路由:目标地址为单个IP;
网络路由:目标地址为IP网络;
默认路由:目标为任意网络,0.0.0.0/0.0.0.0
route - show / manipulate the IP routingtable 显示/更改IP路由表
#route –n 查看路由表
routeadd:添加
route add [-net|host] target [netmask Nm][gw GW] [[dev] If]
举例:增加主机路由,目标地址:192.168.1.5 网关:192.168.19.1
PS:UGH标志位,U代表up,G代表gateway,H代表Host
增加网络路由,目标172.16.0.0,网关192.168.19.1
默认路由,网关:192.168.19.1
#route add –net 0.0.0.0 netmask 0.0.0.0 gw192.168.19.1
#route add default gw 192.168.19.1
routedel:删除
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
举例:删除目标主机:192.168.1.3,网关:192.168.19.1
#route del –host 192.168.1.3
删除目标:172.16.0.0,网关:192.168.19.1
netstat命令:
netstat - Print network connections, routingtables, interface statistics, masquerade
connections, and multicast memberships 打印网络连接,路由表,接口状态等信息
显示路由表:netstat –rn
-r:显示内核路由表
-n:以数字格式显示
显示网络连接:
netstat [--tcp|-t] [--udp|-u] [--udplite|-U] [--sctp|-S] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
-t:tcp协议相关;
-u:udp协议相关;
-w:raw socket相关 裸套接字相关
-l:处于监听状态;、
-a:所有状态;
-n:以数字形式显示IP和端口;
-e:扩展格式;
-p:显示相关进程及PID
常用组合:-tan,-uan,-tnl,-unl
显示接口的统计数据:
netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--verbose|-v] [--program|-p] [--numeric|-n]
所有接口:
netstat–i
指定接口:
netstat–I<IFACE>
ip命令:配置linux网络属性
ip - show / manipulate routing, devices,policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT:= { link | addr | addrlabel | route | rule | neigh | tunnel | maddr | mroute |
monitor }
OPTIONS:= { -V[ersion] | -s[tatistics] | -r[esolve] | -f[amily] { inet | inet6 | ipx |
dnet | link } | -o[neline] }
1. ip link:network deviceconfiguration 网络设备管理
ip link set –change device attributes
dev NAME(default):指明要管理的设备,dev关键字可省略;
up和down:激活或者禁用指定端口;
multicast on或multicast off:启用或禁用多播功能;
name NAME:重命名接口
mtu NUMBER:设置MTU的大小,默认为1500;
netns PID:ns为namespace,用于将接口移动到指定的网络名称空间;
show —— display device attributes显示设备信息
[dev IFACE]:显示指定的接口信息;
[up]:显示已启用的接口信息;
2. ip address - protocol address management. 地址管理
ip address add- add new protocol address 增加一个ip地址
[label NAME]:为额外添加的地址指明接口别名;
[broadcast ADDRESS]:广播地址;会根据IP和NETMASK自动计算得到;
[scope SCOPE_VALUE]:指明作用域
global:全局可用;
link:接口可用;
host:仅本机可用;
ip addressdelete – delete protocol address 删除ip地址
ip addressshow - look at protocol addresses
[dev DEVICE]:
[label PATTERN]:
[primary and secondary]:
ip addr list [IFACE]:显示接口的地址;
ipaddress flush - flush protocol addresses 清除协议地址
ip addr flush dev IFACE
ip addressflush 的用法与ip address show用法相似。
3. ip route - routing table management 路由表管理
ip route add -add new route 增加新的路由表
ip routechange - change route改变路由表
ip routereplace - change or add new one 更改或者增加一个新的路由表
ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]
ip routedelete – delete route 删除路由表
ip route del TYPE PRIFIX
ip route show– list route 展示路由表
ip route flush- flush routing tables 清除路由表
[dev IFACE]:与指定接口相关
[via PREFIX]:与指定网关相关
ip route get -get a single route
ip route get TYPE PRIFIX
ss命令:网络状态信息查看工具
ss - another utility to investigatesockets
ss [options] [ FILTER ]
[options]:
-t:tcp协议相关
-u:udp协议相关
-w:裸套接字相关
-x:unix sock相关 unix套接字相关,一种基于本机内存的快速数据交换
-l:listen状态的连接
-a:所有
-n:数字格式
-p:相关程序及PID
-e:扩展的信息
-m:内存用量
-o:计时器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]
TCP常见状态:
TCPFSM:
LISTEN:监听;
ESTABLISEHD:已建立的连接;
FIN_WALL_1:
FIN_WALL_2:
SYN_SENT:
SYN_RECV:
CLOSED:
EXPRESSION:
dport =
sport =
示例:'( dport = :22 or sport = :22)'
~]# ss -tan '( dport = :22 or sport =:22 )'
~]# ss -tan state ESTABLISHED
配置文件:
DNS服务器指定:
配置文件:/etc/resolv.conf
指定DNS服务器可以编辑此文件,DNS编辑格式为:
nameserver DNS_SERVER_IP1
nameserver DNS_SERVER_IP2
nameserver DNS_SERVER_IP3
正向解析:FQDN——>IP
#dig –t A FQDN(完全合格域名)
#host –t A FQDN
反向解析:IP——>FQDN
#dig –x IP
#host –t PTR IP
网卡配置文件:
IP/NETMASK/GW/DNS等属性的配置文件为:/etc/sysconfig/network-scripts/ifcfg-IFACE
IFACE:接口名称;
路由的相关配置文件:/etc/sysconfig/network-scripts/route-IFACE(此文件默认是不存在的,需要自己手动创建)
配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE通过大量参数来定义接口的属性;其可通过vim等文本编辑器直接修改,也可以使用专用的命令的进行修改(CentOS 6:system-config-network (setup),CentOS 7:nmtui)
Ifcfg-IFACE配置文件参数:
DEVIVE:此配置文件的对应的设备名称;
ONBOOT:在系统引导过程中,是否激活此接口;
UUID:此设备的惟一标识;
IPV6INIT:是否初始化IPv6;
BOOTPROTO:激活此接口时使用什么协议来配置接口属性,常用的有dhcp、bootp、static、none;
TYPE:接口类型,常见的有Ethernet, Bridge;
DNS1:第一DNS服务器指向;
DNS2:备用DNS服务器指向;
DOMAIN:DNS搜索域;
IPADDR: IP地址;
NETMASK:子网掩码;CentOS 7支持使用PREFIX以长度方式指明子网掩码;
GATEWAY:默认网关;
USERCTL:是否允许普通用户控制此设备;
PEERDNS:如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向覆盖本地手 动指定的DNS服务器指向;默认为允许;
HWADDR:设备的MAC地址;
NM_CONTROLLED:是否使用NetworkManager服务来控制接口;
route-IFACE配置文件格式:
两种风格:(不能混合使用)
(1) TARGET via GW
(2) 每三行定义一条路由(#表示数字编号)
ADDRESS#=TARGET
NETMASK#=mask
GATEWAY#=GW
下面我们首先采用第一种方式编辑配置文件:
有时配置文件修改不会立即生效,利用命令service network restart重启网卡。
我们再来采用第二种方式来编辑配置文件:
Linux网络属性配置的tui(text user interface)
输入指令:#system-config-network-tui,会出现如下画面,可在里面设置网络配置
也可以使用setup找到,
NOTE:记得重启网络服务才能生效
配置当前主机的主机名:
(1) hostname HOSTNAME
(2) 编辑/etc/sysconfig/network
HOSTNAME=[hostname]
网络接口识别并命名相关的udev配置文件:
/etc/udev/rules.d/70-persistent-net.rules 立即生效需卸载网卡后重新装载
卸载网卡驱动:modprobe –r e1000
装载网卡驱动:modprobe e1000
本文转自 claude_liu 51CTO博客,原文链接:http://blog.51cto.com/claude666/1958281,如需转载请自行联系原作者