Linux网络属性配置
一、 ifcfg命令家族:ifconfig,route,netstat
(一) ifconfig命令:接口及地址查看和管理
1.ifconfig [INTERFACE]
默认显示激活状态信息
RX表示:接受到的包
error:错误的包的个数
dropped:丢包的个数
TX:发送的包
ifconfig -a:显示所有接口,包括inactive状态的接口;
2. ifconfig interface [aftype] options | address ...:完成地址配置
(1) ifconfig IFACE IP/MASK [up|down]
(2) ifconfig IFACE IP netmask NETMASK
(3) options:
[-]promisc:混杂模式
注意:立即送往内核中的TCP/IP协议栈,并生效;
3.管理IPv6地址
add addr/prefixlen:添加
del addr/prefixlen:移除
(二) route命令:路由查看及管理
1.路由条目类型;
主机路由:目标地址为单个IP;
网络路由:目标地址为IP网络;
默认路由:目标为任意网络,0.0.0.0/0.0.0.0
2.显示查看:
(1) route -n:显示的是IP地址,以数字形式显示
不加-n直接显示的是主机名,比较消耗时间
(2) 添加:
route add [-net|-host] target [netmask Nm] [gw GW] [[dev] If]
net:网络路由
host:主机路由
target [netmask Nm]:网络地址,要添加掩码使用netmask指定掩码
gw GW:gw-->关键字 ,GW-->下一跳地址
[[dev] If]:可以不写,会自动判断
添加默认网关:
route add default gw GW
(3) 删除:
route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
删除默认网关
route del default
(三)netstat命令:
Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
1. 显示路由表:netstat -rn
-r:显示内核路由表
-n:数字格式
2. 显示网络连接:
(1) 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协议的相关连接,连接均有其状态,FSM(Finate State Machine);有限的状态机
-u:UDP协议相关的连接
-w:raw socket相关的连接
-l:处于监听状态的连接
-a:所有状态
-n:以数字格式显示IP和Port;
-e:扩展格式
-p:显示相关的进程及PID;
(2) 常用组合:
-tan, -uan, -tnl, -unl, -tunlp
(3) 传输层协议:
tcp:面向连接的协议;通信开始之前,要建立一个虚链路,通信完成后还要拆除连接;
udp:无连接的协议;直接发送数据报文;
(4) 显示接口的统计数据:
netstat {--interfaces|-I|-i} [iface] [--all|-a] [--extend|-e] [--verbose|-v] [--program|-p] [--numeric|-n]
所有接口:
netstat -i
指定接口:
netstat -I<IFace>
IFACE不可省略,而且与I之间不能有空格
(5) 启动或禁用接口: ifup/ifdown命令
注意:通过配置文件/etcsysconfig/network-scripts/ifcfg-IFACE来识别接口并完成配置
(四)配置主机名:
1.hostname命令:
(1) 查看:hostname
(2) 配置:hostname HOSTNAME
只对当前系统有效,重启后无效
2. hostnamectl(CentOS 7)
hostnamectl status:显示当前主机名信息
hostnamectl set-hostname:设定主机名,永久有效
3. 配置文件:/etc/sysconfig/network
HOSTNAME=<HOSTNAME>
注意:此方法的设置不会立即生效,只有重读配置文件后会生效,但以后会一直有效
CentOS 7
CentOS 6
4.传输层协议:
tcp:面向连接的协议,通信之前,要建立一个虚电路,通信完成之后还要拆除连接
udp:无连接的协议,直接发送数据报文
(五)配置DNS服务器指向:
1. 配置文件:/etc/resolv.conf
nameserver DNS_SERVER_IP
DNS_SERVER_IP:最多有三个
2.如何测试(host/nslookup/dig):
dig -t A FQDN(主机名)
FQDN-->IP
dig -x IP :一般不支持反向解析
IP-->FQDN
二、 iproute家族:
(一)ip命令:
show / manipulate routing, devices, policy routing and tunnels
1. ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT:{ link | addr | route | netns }
注意: OBJECT可简写,各OBJECT的子命令也可简写;
2. ip OBJECT:
(1) ip link:network device configuration,网络设备配置
① 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,用于将接口移动到指定的网络名称空间;
②ip link show - display device attributes:显示二层设备相关属性
③ ip link help - 显示简要使用帮助;
(2) ip netns:- manage network namespaces.
① ip netns list:列出所有的netns
② ip netns add NAME:创建指定的netns
③ ip netns del NAME:删除指定的netns
④ ip netns exec NAME COMMAND:在指定的netns中运行命令
(3) ip address - protocol address management:
① ip address add - add new protocol address
ip addr add IFADDR dev IFACE
[label NAME]:为额外添加的地址指明接口别名
[broadcast ADDRESS]:广播地址;会根据IP和NETMASK自动计算得到;
[scope SCOPE_VALUE]:
global:全局可用;
link:接口可用;
host:仅本机可用;
② ip address delete - delete protocol address:地址删除 26
ip addr delete IFADDR dev IFACE
③ ip address show - look at protocol addresses
ip addr list [IFACE]:显示指定接口的地址;
④ ip address flush - flush protocol addresses:清空所有的
ip addr flush dev IFACE
(4) ip route - routing table management:路由表管理
① ip route add - add new route:添加路由
添加默认路由
ip route add default via GW
② ip route change - change route:修改路由
③ ip route replace - change or add new one:替换路由
ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]
④ ip route delete - delete route:删除路由
ip route del TYPE PRIFIX
⑤ ip route show - list routes:显示路由
TYPE PRIFIX
⑥ ip route flush - flush routing tables:清空路由表
TYPE PRIFIX
⑦ ip route get - get a single route:获取某单个条目
ip route get TYPE PRIFIX
(二)ss命令:
1. ss [options] [ FILTER ]
(1) options:
① -t:TCP协议的相关连接
② -u:UDP协议的相关连接
③ -w:raw socket相关的连接
④ -l:监听状态的连接
⑤ -a:所有状态的连接
⑥ -n:数字格式
⑦ -p:相关的程序及其PID
⑧ -e:扩展格式信息
⑨ -m:内存用量
⑩ -o:计时器信息
(2) FILTER (过滤器):= [ state TCP-STATE ] [ EXPRESSION ]
① TCP的常见状态:
TCP FSM:
LISTEN:监听
ESTABLISEHD:建立的连接
FIN_WAIT_1:一方提出断开连接等待对方回应
FIN_WAIT_2:确认
SYN_SENT:
SYN_RECV:
CLOSED:
② EXPRESSION:
dport :目标端口
sport :源端口
三、 配置文件:
(一) IP/NETMASK/GW/DNS等属性的配置文件:/etc/sysconfig/network-scripts/ifcfg-IFACE
IFACE:接口名称;
1. 路由的相关配置文件:/etc/sysconfig/networkj-scripts/route-IFACE
2. 配置文件/etc/sysconfig/network-scripts/ifcfg-IFACE通过大量参数来定义接口的属性;其可通过vim等文本编辑器直接修改,也可以使用专用的命令的进行修改(CentOS 6:system-config-network (setup),CentOS 7: nmtui)
3. ifcfg-IFACE配置文件参数:
DEVICE:此配置文件对应的设备的名称;
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服务来控制接口配置;
4. 网络服务:
network
NetworkManager
5.管理网络服务:
CentOS 6: service SERVICE {start|stop|restart|status}
CentOS 7:systemctl {start|stop|restart|status} SERVICE[.service]
6.配置文件修改之后,如果要生效,需要重启网络服务;
CentOS 6:# service network restart
CentOS 7:# systemctl restart network.service
7. 用到非默认网关路由:/etc/sysconfig/network-scripts/route-IFACE
支持两种配置方式,但不可混用;
(1) 每行一个路由条目:
TARGET via GW
(2) 每三行一个路由条目:
ADDRESS#=TARGET
NETMASK#=MASK
GATEWAY#=NEXTHOP
8. 给接口配置多个地址:
ip addr之外,ifconfig或配置文件都可以;
(1) ifconfig IFACE_LABEL IPADDR/NETMASK
IFACE_LABEL: eth0:0, eth0:1, ...
(2) 为别名添加配置文件;
DEVICE=IFACE_LABEL
BOOTPROTO:网卡别名不支持动态获取地址;
static, none
(二)nmcli命令:
1. nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
COMMAND := { status | show | connect | disconnect | delete | wifi | wimax }
2. connection - start, stop, and manage network connections
COMMAND := { show | up | down | add | edit | modify | delete | reload | load }
modify [ id | uuid | path ] <ID> [+|-]<setting>.<property> <value>
3.如何修改IP地址等属性:
nmcli conn modify IFACE [+|-]setting.property value
ipv4.address
ipv4.gateway
ipv4.dns1
ipv4.method
manual