您的位置:首页 > 理论基础 > 计算机网络

Linux网络及其配置

2015-12-27 12:45 381 查看
概述: 网络是可以实现信息传输、接收、共享的虚拟平台,通过它可以把各个点、面、体的信息联系到一起,从而实现这些资源的共享。信息的传输需要通过TCP/IP协议来完成,IP地址是由网络号+主机号来标识的,主要分为五个类别:A类:第一段为网络号:后三段为主机号; 网络号: 0 000 0000-0 111 1111 :1-127每个网络中的主机数量:2^24-2(全0与全1)0网络地址1广播地址 默认子网掩码:255.0.0.0 用于与IP地址按位进行“与”运算,从而取出其网络地址 私网地址:10.0.0.0/255.0.0.0B类:前两段为网络号,后两段为主机号 网络号: 10 00 0000 - 10 11 1111:128-191 每个网络中的主机数量:2^16-2 默认子网掩码:255.255.0.0 私网地址:172.16.0.0-172.31.0.0C类:前三段为网络号,最后一段为主机号 网络号: 110 0 0000-110 1 1111 :192-223 网络数:2^21 每个网络中的主机数量:2^8-2 默认网掩码255.255.255.0 私网地址:192.168.0.0-192.168.255.255 D:组播 11100000-1110 1111:224-239 E:保留 11110000-1111 1111:240-255 Linux系统是一个多用户,多任务的系统,每个任务对应一个进程,系统执行多任务时就会启动多进程;所以计算机间的通信主要是进程之间的通信,进程是由数字来进行标识(1-65535),进程分为以下三类:1-1023:固定分配,而且只有管理员有权限启动; 1024-4W: 半固定, 4W+: 临时;网络的工作范围: MAC: 本地通信;范围:本地局域网; IP:界定通信主机,源和目标;范围:互联网; Port: 界定进程,范围:单台主机;Linux主机接入网络中需要配置:IP、NETMASK、GATEWAY、DNS等接口的地址;配置方式主要分为静态分配、动态分配;静态分配 命令包括1、Ifcfg Ifconfig:配置IP,NETMASK Route: 路由 Netstat: 状态及统计数据查看工具; 2、iproute3
addr: 地址和掩码配置; link: 网络接口本身; route: 路由; ss: 状态及统计数据查看工具; 3、CentOS 7:nm(Network Manager)家族: nmcli: 命令行工具 nmtui: 文本窗口工具;text window工具; 4、配置文件:适用于 RedHat及相关发行版 /etc/sysconfig/network-scripts/ifcfg-NETCARD_NAME
动态分配:依赖于本地网络中有DHCP服务器,DHCP通过广播的方式为加入的主机按租期进行动态分发地址;
网络接口命名方式: 传统命名: 以太网:exhX,[0-oo],例如ech0,eth1... ppp网络:pppX,[0,...],例如,ppp0,ppp1... 可预测命名方案(CentOS 7): 支持多种不同的命名机制: Fireware,拓扑结构 注:(1) 如果Firmware或BIOS为主板上集成的设备提供的索引信息可用,则根据此索引进行命名,如eno1,eno2,... (2) 如果Fireware或BIOS为PCI-E扩展槽所提供的索引信息可用,且可预测,则根据此索引进行命名,如ens1,ens2,... (3) 如果硬件接口的物理位置信息可用,则根据此信息命名,如enp2so,... (4) 如果用户显式定义,也可根据MAC地址命名,例如enx122161ab2w10,... 上述均不可用,则仍使用传统方式命名; 命名格式的组成: en: ethernet wl: wlan ww: wwan 名称的类型: o<index>: 集成设备的设备索引号; s<slot>: 扩展槽的索引号; x<MAC>: 基于MAC地址的命名; p<bus>s<slot>: 基于总线及槽的拓扑结构进行命名; Linux网络命令的使用: 1、ifcfg
ifconfig [INTERFACE] # ifconfig -a:显示所有接口,包括inactive状态的接口; ifconfig interface [aftype] options |address... # ifconfigIFACE IP/MASK [up|down] # ifconfigIFACE IP netmask NETMASK 例:ifconfig eth0192.168.10.100/24 up ifconfig eth0 192.168.10.101 netmask255.255.255.0 options: [-]promisc: 启用或禁用混杂模式 例:ifconfig eth0 promisc 表示启用混杂模式 ifconfig eth0 –promisc 表示禁用混杂模式
route命令: 路由条目类型: 主机路由:目标地址为单个IP; 网络路由:目标地址为IP网络; 默认路由:目标为任意主机,0.0.0.0/0.0.0.0 查看: # route -n 添加: route add [-net|-host] target [netmask Nm][gwGW][[dev]if] 例:route add -net10.0.0.0/8 gw 192.168.10.1 dev eth0 或 route add -net0.0.0.0/0.0.0.0 gw 192.168.10.1 删除: route del [-net|-host] target [netmask Nm][gwGW][[deev]if] 例:route del -net10.0.0.0/8 或route del -net 10.0.0.0/8 gw 192.168.10.1
netstat命令: 显示路由表: -r: 显示内核路由表; -n: 显示数字格式; 显示网络连接: netstat[--tcp|-t][--udp|-u][--sctp|-S][--raw|-w][--listening|-l][--all|-a][--numeric|-n][--extend|-e[--extend|-e]][--program|-p] -t: TCP协议的相关连接,连接均有其状态;FSM(Finate State Machine); -u: UDP相关的连接 -w: raw socket相关的连接 -l: 牌监听状态的连接 -a: 所有状态 -n:以数字格式显示IP和port -e: 扩展格式 -p:显示相关的进程及PID 注:传输层协议: tcp: 面向连接的协议:通信开始之前,要建立一个虚链路;通信完成后还要拆除连接; udp: 无连接的协议:直接发送数据报文,无需建立虚链路;
显示接口的统计数据: netstat {--interfaces|-I|-i} [--all|-a] [--extend|-e][--verbose|-v] [--program|-p][--numeric|-n] 显示所有接口: netstat -i 指定接口: netstat-I<IFace> 例:netstat -Ieth0 ifup/ifdown命令: 注意:通过配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置; 例:ifup eth0
配置主机名:
hostname命令:
查看:hostname
配置:hostname HOSTNAME
当前系统有效,重启后无效;
CentOS 7:
hostnamectl命令
hostnamectl status显示当前主机名信息;
hostnamectl set-hostname: 设定主机名,永久有效;

配置文件:/etc/sysconfig/network
HOSTNAME=<HOSTNAME>

注意:此方法的设置不会立即生效;但以后会一直有效;

配置DNS服务器指向:
配置文件:/etc/resolv.conf
nameserver DNS_SERVER_IP(最多可以有三个)

2、iproute

ip [ OPTIONS ] OBJECT { COMMAND | help }
ip link: 网络设备配置
ip link set:改变网络设备属性;
dev NAME (default): 指明要管理的设备,dev关键字可省略;
up and down;
例:ip link set eth0 down
multicast on or multicast off:启用或禁用多播功能;
例:ip link set multicast on
name NAME: 重命名;
例:ip link set eth0 down
ip link set eth0 name eno666
mtu NUMBER: 设置MTU的大小,默认为1500;
netns PID: ns为namespace,用于将接口移动到指定的网络名称空间;
例:ip netns help 只支持CentOS 7
删除:
ip netns del mynet
ip link show:显示网络设备属性;
例:ip link show/ ip link list
ip netns:

ip netns list: 列出所有netns

ip netns add NAME: 创建指定的netns
ip netns del NAME: 删除指定的netns
ip netns exec NAME COMMAND: 在指定的netns中运行命令
ip address:

ip address add:
ip addr add IFADDR dev IFACE
例:ip addr add 192.168.10.100/24 dev eth0
[label NAME]: 为额外添加的地址指明接口别名;
例:ip addr add 10.1.1.10/8 dev eth0 label eth0:0
[broadcast ADDRESS]:广播地址;会根据IP和NETMASK自动计算得到;
[scope SCOPE_VALUE]:
global: 全局可用;
link: 接口可用;
host: 仅本机可用;
ip address del:

ip addr delete IFADDR dev IFACE
例:ip addr del 10.0.10.100/8 dev eth0
ip address show:

ip addr list[IFACE]: 仅显示指定接口的地址;
ip address flush:

ip addr flush dev IFACE
例:ip addr flush dev eth0
ip route

ip route add
ip route change
ip route replace
ip route add TYPE FREFIX via GW [dev IFACE] [src SOURCE_IP]
例:ip route list
ip route add 19.168.0.0/24 via 10.0.0.1 dev eth0 src 10.0.20.100
ip route add default via 172.16.0.1 dev eth0
ip route add default via GW
ip route delete

ip route del TYPE PREFIX
例:ip route delete 192.168.1.0/24
ip route show

例:ip route show src 172.16.100.6
ip route flush

例:ip route flush 10/8
ip route get

ip route get TYPE PREFIX
例:ip route get 192.168.0.0/24

ss命令:
ss [options] [ FILTER ]
选项
-t: TCP协议的相关连接
-u: UDP相关的连接
-w: raw socket相关的连接
-l: 监听状态的连接
-a:所有状态的连接
-n: 数字格式
-p: 相关的程序及其PID
-e: 扩展格式信息
-m: 内存用量
-o: 计时器信息
FILTER := [ state TCP-STATE ] [ EXPRESSION ]

TCP的常见状态
TCP FSM:
LISTEN:
ESTABLISEHD:
FIN_WAIT_1:
FIN_WAIT_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

配置文件:
IP/NETMASK/GW/DNS等属性的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
IFACE: 接口名称;
路由的相关配置文件:/etc/sysconfig/network-scripts/route-IFACE

注:配置文件修改之后,如果要生效,需要重启网络服务;

给接口配置多个地址:
ip addr之外,ifconfig或配置文件都可以;
(1) ifconfig IFACE_LABEL IPADDR/NETMASK
IFACE_LABEL: eth0:0,eth0:1,...

例:ifconfig eno33554984:0 192.168.20.100/24

(2) 为别名添加配置文件;
DEVICE=IFACE_LABEL
BOOTPROTO: 网卡别名不支持动态获取地址;可使用:static, none标识;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息