Linux网络配置相关
一、IP及路由配置和查看
Linux网络查看专业名词:
- Multicast : 组播
- Broadcase : 广播
- Hwaddr ether : 以太网地址
- txquuelen:传输队列长度
- RX:接收
- TX:传输
- dropped:丢包
- overruns:溢出
- Collisions:冲突
ifconfig命令
ifconfig - configure a network interface
#######synopsis:
- ifconfig [interface]
- ifconfig interface [aftype] options | address ...
- [options]
- -a : 查看所有网卡信息,包括未激活网卡信息
- [-]promisc : 开启或关混杂模式
ifconfig eth1 promisc #启用混杂模式
ifconfig eth1 -promisc #关闭混杂模式
ifconfig eth1 down #停用eth1网卡
ifconfig eth1 up #启用网卡
ifconfig eth1 172.16.249.112/16 #配置eth1网卡ip
ifconfig eth1 172.16.249.112 netmask 255.255.0.0
- [options]
#######ifconfig修改的信息被立即送往内核,所以立即生效,但重启操作系统或服务后,配置将丢失
route命令
route - show / manipulate the IP routing table
synopsis:
- route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]
- route [-v] [-A family] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]
- [options]
- -n : 以数字格式显示,不反解主机名
- 查看路由信息
route -n : 以数字显示路由信息
[root@zhenping ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 - 添加路由信息
route add -net 116.228.0.0/16 gw 192.168.0.100 dev eth1 #添加一个网络的路由信息
route add -net 0.0.0.0/0.0.0.0 gw 192.168.10.1 : 添加默认网关
route add default gw 192.168.10.1 : 添加默认网关
oute add -host 10.0.0.1/32 gw 192.168.10.1 # 添加主机路由 - 删除路由信息
route del -net 116.228.0.0/16 #删除网络路由,如果掩码不同,有多个条目,需要指定gw的内容
route del default : 删除默认路由
=========
ifup and ifdown命令
ifup eht1 # 启用eth1接口
ifdown eth1 # 禁用eth1接口
IP命令
ip -show / manipulate routing, devices, policy routing and tunnels
synopsis: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] }
- [OBJECT]
- ip link set
- dev NAME(default):dev可以不用写
ip link set eht1 up #启用eth1网卡
ip link set eth1 down #禁用eth1网卡 - arp on | arp off : 关闭ARP功能
ip link set eth1 arp on
ip link set eth1 arp off
#禁用和启用eth1的arp功能 - multicast on | multicase off : 关闭组播功能
ip link set eth1 multicast off
ip link set eth1 multicast on
#禁用和启用eth1的组播功能 - name NAME : 修改名字
ip link set eth1 name eth10 # 把网卡eth1改名到eth10 - txqlen NUM : 修改传输长度
ip link set eth10 txqlen 1000 #修改eth10的队列长度为1000,默认为1000 - mtu NUM : 修改MTU值
ip link set eth1 mtu 1000 #修改MTU最大传输单元为1000,默认为1500 - netns PID : 将网卡添加到指定的名称空间中
ip link set eth1 netns mynet # 将网卡eth1添加到netns mynet网络中
- dev NAME(default):dev可以不用写
- ip link show
ip link show eth1
ip link list eth1
#都是查看网卡的信息,可以不跟设备,不跟设备是查看所有网卡 - ip link help
ip link help # 查看link参数帮助 - ip netns (manager network namesapce),其centos 6不支持
ip netns add mynet :添加一个mynet的名称空间
ip link set eth1 netns mynet : 将eht1添加到Mynet的名称空间中
ip netns exec mynet ip link show :在名称空间中执行ip link show命令
ip netns del mynet:删除指定的Mynet ns。
ip netns list:列出所有的netns - ip addr add : 添加新地址
- ip addr add 192.168.10.100/24 dev eth1 #在eth1上加IP,可以反重添加多个
- label NAME
- ip addr add 10.1.1.10/8 dev eth1 label eth1:0 :对eth1添加IP,并指定一个eth1:0别名,这样ifconfig才能看到
- brocast ADDRESS : 广播地址,会根据IP和NETMASK自动计算得到
- [scope SCOPE_VALUE]:作用域
- global:全局可用
- link : 接口可用
- host:仅本机可用
- ip addr del :删除地址
- ip addr del 192.168.0.201/24 dev eth1 :删除eth1上的地址
- ip addr del 192.168.0.202/24 dev eth1:1 : 删除eth1:1的地址
- ip addr [list|show]: 查看接口IP信息
- ip addr list eth1 : 只查看eth1设备的地址信息
- ip addr list : 查看所有设备的地址信息
- ip addr flush : 清空所有IP地址
- ip addr flush dev eth1 :清空eth1上的所有IP地址
- ip route :路由管理
- add : ip route add TYPE PREFIX via <GW> [dev] [src SRC_IP],添加路由
ip route add 116.228.0.0/16 via 192.168.0.1 #添加116.228.0.0/16的路由
ip route add 116.228.0.0/16 via 192.168.0.1 dev eth0 # 为eth0添加路由信息 - change : 修改路由
- replace :替换路由
- delete : 删除路由 ,格式:ip route del TYPE PRIFIX
ip route del 116.228.0.0/16 : 删除116.228.0.0/16的路由信息
ip route del 10/8 - show:显示路由
ip route show src 172.16.100.6 - flush:清空路由
ip route flush 10/8 - get:获取单条路由
ip route get 192.168.0.0/24
- add : ip route add TYPE PREFIX via <GW> [dev] [src SRC_IP],添加路由
- ip link set
二、查看网络状态相关工具
TCP常见状态表示名词:
- LISTEN :正在监听的
- ESTABLISHED : 建立的连接
- FIN_WAIT_1 : 请求断开
- FIN_WAIT_2 :确认断开
- SYN_SENT : 请求连接
- SYN_RECV : 接收连接请求
- CLOSE : 关闭连接
netstat命令
netstat - netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
- synopsis: netstat [—tcp|-t] [—udp| -u] [--raw|-w][--listening|-l][--all|-a][—numeric | -n] [--program|-p]
- [options]
- -r : 显示路由表信息
- -n : 以数字格式显示
route -rn # 以数字格式显示路由表信息,不做名称解析 - -t : 显示TCP连接着的链接
- -u : 显示UDP正在连接链接
- -w : 祼套接字的连接
- -l : 处理监听状态的连接
- -a : 所有的状态
- -n : 数字格式显示IP和PORT
- -e : 扩展格式,多显示了:进程启动用户以及进程的Inode号码
- -p : 显示相关的进程及PID
netstat -tan #显示所有TCP相关的连接,并且不做名称解析
netstat -uan #显示所有UDP相关的连接,并且不做名称解析
netstat -tnl #显示所有TCP正在监听的连接
netstat -unl #显示所有UDP正在监听的连接
netstat -tunlap # 显示所有TCP及UDP所有的连接,并显示进程所对应的程序
netstat -tunlp #显示所有TCP及UDP正在监听的连接,并显示进程所对应的程序 - -i : 显示所有接口的统计数据
- -I<IFACE> : 显示指定接口的统计数据
netstat -Ieth0 #显示eth0的统计数据,参数与接口名称不能有空格
ss命令:
ss - another utility to investigate socket
synopsis : ss [options] [ FILTER ]
- [options]
- -t:tcp协议相关的连接
- -u:UDP协议相关的连接
- -w: raw socket相关的连接
- -l : 监听状态的连接
- -a :所有状态的连接
- -n: 数字格式
- -p:相关的程序及其它PID
- -e :扩展格式信息
- -m:内存用量
- -o: 计时器信息
*[FILTER] - FILTER := [ state TCP-STATE ] [ EXPRESSION ]
- 示例:
- ss -tan ‘( dport = :22 or sport = :22 )’ #显示源端口为22目标端口为22的TCP连接
- ss -tan state ESTABLISHED : #显示TCP正在连接的链接
- ss -tan state ESTABLISHED ‘( dport = :22 or sport = :22 )' #显示状态为正在传输的连接,且源端口目标端口都为22的
- 示例:
======
修改配置文件实现更改计算机名、IP及路由
计算机名的配置文件
- /etc/sysconfig/network(Centos6)
- /etc/hostname (Centos7):直接写计算机名称,没有格式
配置格式:HOSTNAME=MYPC
- /etc/hosts
- 配置格式
- IP 主机名 别名
- 配置格式
注意:hosts文件是计算机自己访问自己的时候,才会使用到,默认的127.0.01这行不能修改,以免影响个别服务的正常运行。当使用dig``nslookup等命令时,将不会访问hosts文件。
hostname命令
- hostname HOSTNAME
注意:使用命令修改下次重启系统将丢失
专属命令修改计算机名,同时将保存至配置文件中
- Centos6/5
- system-config-network
- setup
- Centos7
- nmtui
- hostnamectl
- hostnamectl set-hostname NAME (设置计算机名)
- hostnamectl status (查看计算机名)
============
DNS的配置文件
- /etc/resolv.conf
格式:
- nameserver XXXXX (最多可配置三个)
==========
网卡的配置文件(RHEL系)
配置文件路径:/etc/sysconfig/network-scripts/ifcfg-IFACE
ifcf-IFACE配置文件字段含义
- NAME : 网卡配置名称,需要跟配置文件名保持一致(Centos7)
- DEVICE : 此配置文件对应的设备名称
- ONBOOT : 系统引导时是否激活此接口
- yes : 表示随系统启动激活设备
- no : 表示不随系统启动激活设备
- NETBOOT : 是否支持网络引导
- yes
- no
- UUID : 设备的唯一标识符
- IPV6INIT : 是否初始化IPV6
- BOOTPROTO : IP地址的配置方式
- none : 静态
- dhcp : 动态
- static : 静态
- bootp
- TYPE : 网卡类型
- Ethernet : 以太接口
- Bridge : 风桥
- DNS1 : 主DNS地址
- DNS2 : 辅DNS地址
- DOMAIN : DNS搜索域
- DEFROUTE
- GATEWAY : 默认网关
- IPADDR : IP地址
- NETMASK : 网络掩码地址
- PREFIX : 网络掩码短格式(Centos7)
- USERCTL : 是否允许普通用户控制此设备
- PEERDNS : 当为DHCP模式,是否允许使用DHCP Server的DNS配置信息覆盖本地手动DNS地址指向,默认允许
- NM_CONTROLLDE : 是否使用network manager服务控制接口
- HWADDR : 设备的MAC地址
注意:DHCP模式优先级高于static和none模式
配置一张网卡多IP的配置方法
方法一:
- 建立网卡名为eth0:1的文件
- 配置网络信息参数
- DEVICE名称需与配置文件名称一致
- 不支持DHCP,IP必须为手动指定
方法二
- ip addr add 192.168.0.100 dev eth0 label eth0:1
注意:此配置方法不会永久有效
========
s配置文件配置路由表方法
配置文件路径:/etc/sysconfig/network-scripts/route-IFACE
- 文件配置格式一:
- 每行一个路由条目
- 配置格式:TARGET via GW
- 每三行一个路由条目
- ADDRESS#=TRAGET
- NETMASK#=MASK
- GATEWAY#=NEXTHOP
- 每行一个路由条目
========
nmcli命令
nmcli - Centos7 平台的命令行网络配置工具
- nmcli [options] Object {command | help}
- device - 硬件配置模式
- status
- show
- connect
- disconnect
- delete
- connect - 启用、停止管理网络连接
- show
- down
- modify - 额外添加、删除一个IP地址
Linux网络配置相关
一、IP及路由配置和查看
Linux网络查看专业名词:
- Multicast : 组播
- Broadcase : 广播
- Hwaddr ether : 以太网地址
- txquuelen:传输队列长度
- RX:接收
- TX:传输
- dropped:丢包
- overruns:溢出
- Collisions:冲突
-
ifconfig命令
ifconfig - configure a network interface
#######synopsis:
- ifconfig [interface]
- ifconfig interface [aftype] options | address ...
- [options]
- -a : 查看所有网卡信息,包括未激活网卡信息
- [-]promisc : 开启或关混杂模式
ifconfig eth1 promisc #启用混杂模式
ifconfig eth1 -promisc #关闭混杂模式
ifconfig eth1 down #停用eth1网卡
ifconfig eth1 up #启用网卡
ifconfig eth1 172.16.249.112/16 #配置eth1网卡ip
ifconfig eth1 172.16.249.112 netmask 255.255.0.0
- [options]
-
#######ifconfig修改的信息被立即送往内核,所以立即生效,但重启操作系统或服务后,配置将丢失
route命令
route - show / manipulate the IP routing table
synopsis:
- route [-v] [-A family] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]
- route [-v] [-A family] del [-net|-host] target [gw Gw] [netmask Nm] [metric N] [[dev] If]
- [options]
- -n : 以数字格式显示,不反解主机名
- 查看路由信息
route -n : 以数字显示路由信息
[root@zhenping ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 - 添加路由信息
route add -net 116.228.0.0/16 gw 192.168.0.100 dev eth1 #添加一个网络的路由信息
route add -net 0.0.0.0/0.0.0.0 gw 192.168.10.1 : 添加默认网关
route add default gw 192.168.10.1 : 添加默认网关
oute add -host 10.0.0.1/32 gw 192.168.10.1 # 添加主机路由 - 删除路由信息
route del -net 116.228.0.0/16 #删除网络路由,如果掩码不同,有多个条目,需要指定gw的内容
route del default : 删除默认路由 -
=========
ifup and ifdown命令
ifup eht1 # 启用eth1接口
ifdown eth1 # 禁用eth1接口IP命令
ip -show / manipulate routing, devices, policy routing and tunnels
synopsis: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] }
- [OBJECT]
- ip link set
- dev NAME(default):dev可以不用写
ip link set eht1 up #启用eth1网卡
ip link set eth1 down #禁用eth1网卡 - arp on | arp off : 关闭ARP功能
ip link set eth1 arp on
ip link set eth1 arp off
#禁用和启用eth1的arp功能 - multicast on | multicase off : 关闭组播功能
ip link set eth1 multicast off
ip link set eth1 multicast on
#禁用和启用eth1的组播功能 - name NAME : 修改名字
ip link set eth1 name eth10 # 把网卡eth1改名到eth10 - txqlen NUM : 修改传输长度
ip link set eth10 txqlen 1000 #修改eth10的队列长度为1000,默认为1000 - mtu NUM : 修改MTU值
ip link set eth1 mtu 1000 #修改MTU最大传输单元为1000,默认为1500 - netns PID : 将网卡添加到指定的名称空间中
ip link set eth1 netns mynet # 将网卡eth1添加到netns mynet网络中
- dev NAME(default):dev可以不用写
- ip link show
ip link show eth1
ip link list eth1
#都是查看网卡的信息,可以不跟设备,不跟设备是查看所有网卡 - ip link help
ip link help # 查看link参数帮助 - ip netns (manager network namesapce),其centos 6不支持
ip netns add mynet :添加一个mynet的名称空间
ip link set eth1 netns mynet : 将eht1添加到Mynet的名称空间中
ip netns exec mynet ip link show :在名称空间中执行ip link show命令
ip netns del mynet:删除指定的Mynet ns。
ip netns list:列出所有的netns - ip addr add : 添加新地址
- ip addr add 192.168.10.100/24 dev eth1 #在eth1上加IP,可以反重添加多个
- label NAME
- ip addr add 10.1.1.10/8 dev eth1 label eth1:0 :对eth1添加IP,并指定一个eth1:0别名,这样ifconfig才能看到
- brocast ADDRESS : 广播地址,会根据IP和NETMASK自动计算得到
- [scope SCOPE_VALUE]:作用域
- global:全局可用
- link : 接口可用
- host:仅本机可用
- ip addr del :删除地址
- ip addr del 192.168.0.201/24 dev eth1 :删除eth1上的地址
- ip addr del 192.168.0.202/24 dev eth1:1 : 删除eth1:1的地址
- ip addr [list|show]: 查看接口IP信息
- ip addr list eth1 : 只查看eth1设备的地址信息
- ip addr list : 查看所有设备的地址信息
- ip addr flush : 清空所有IP地址
- ip addr flush dev eth1 :清空eth1上的所有IP地址
- ip route :路由管理
- add : ip route add TYPE PREFIX via <GW> [dev] [src SRC_IP],添加路由
ip route add 116.228.0.0/16 via 192.168.0.1 #添加116.228.0.0/16的路由
ip route add 116.228.0.0/16 via 192.168.0.1 dev eth0 # 为eth0添加路由信息 - change : 修改路由
- replace :替换路由
- delete : 删除路由 ,格式:ip route del TYPE PRIFIX
ip route del 116.228.0.0/16 : 删除116.228.0.0/16的路由信息
ip route del 10/8 - show:显示路由
ip route show src 172.16.100.6 - flush:清空路由
ip route flush 10/8 - get:获取单条路由
ip route get 192.168.0.0/24
- add : ip route add TYPE PREFIX via <GW> [dev] [src SRC_IP],添加路由
- ip link set
-
二、查看网络状态相关工具
TCP常见状态表示名词:
- LISTEN :正在监听的
- ESTABLISHED : 建立的连接
- FIN_WAIT_1 : 请求断开
- FIN_WAIT_2 :确认断开
- SYN_SENT : 请求连接
- SYN_RECV : 接收连接请求
- CLOSE : 关闭连接
-
netstat命令
netstat - netstat - Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
- synopsis: netstat [—tcp|-t] [—udp| -u] [--raw|-w][--listening|-l][--all|-a][—numeric | -n] [--program|-p]
- [options]
- -r : 显示路由表信息
- -n : 以数字格式显示
route -rn # 以数字格式显示路由表信息,不做名称解析 - -t : 显示TCP连接着的链接
- -u : 显示UDP正在连接链接
- -w : 祼套接字的连接
- -l : 处理监听状态的连接
- -a : 所有的状态
- -n : 数字格式显示IP和PORT
- -e : 扩展格式,多显示了:进程启动用户以及进程的Inode号码
- -p : 显示相关的进程及PID
netstat -tan #显示所有TCP相关的连接,并且不做名称解析
netstat -uan #显示所有UDP相关的连接,并且不做名称解析
netstat -tnl #显示所有TCP正在监听的连接
netstat -unl #显示所有UDP正在监听的连接
netstat -tunlap # 显示所有TCP及UDP所有的连接,并显示进程所对应的程序
netstat -tunlp #显示所有TCP及UDP正在监听的连接,并显示进程所对应的程序 - -i : 显示所有接口的统计数据
- -I<IFACE> : 显示指定接口的统计数据
netstat -Ieth0 #显示eth0的统计数据,参数与接口名称不能有空格
-
ss命令:
ss - another utility to investigate socket
synopsis : ss [options] [ FILTER ]
- [options]
- -t:tcp协议相关的连接
- -u:UDP协议相关的连接
- -w: raw socket相关的连接
- -l : 监听状态的连接
- -a :所有状态的连接
- -n: 数字格式
- -p:相关的程序及其它PID
- -e :扩展格式信息
- -m:内存用量
- -o: 计时器信息
*[FILTER] - FILTER := [ state TCP-STATE ] [ EXPRESSION ]
- 示例:
- ss -tan ‘( dport = :22 or sport = :22 )’ #显示源端口为22目标端口为22的TCP连接
- ss -tan state ESTABLISHED : #显示TCP正在连接的链接
- ss -tan state ESTABLISHED ‘( dport = :22 or sport = :22 )' #显示状态为正在传输的连接,且源端口目标端口都为22的
- 示例:
-
======
修改配置文件实现更改计算机名、IP及路由
计算机名的配置文件
- /etc/sysconfig/network(Centos6)
- /etc/hostname (Centos7):直接写计算机名称,没有格式
-
配置格式:HOSTNAME=MYPC
- /etc/hosts
- 配置格式
- IP 主机名 别名
- 配置格式
-
注意:hosts文件是计算机自己访问自己的时候,才会使用到,默认的127.0.01这行不能修改,以免影响个别服务的正常运行。当使用dig``nslookup等命令时,将不会访问hosts文件。
hostname命令
- hostname HOSTNAME
-
注意:使用命令修改下次重启系统将丢失
专属命令修改计算机名,同时将保存至配置文件中
- Centos6/5
- system-config-network
- setup
- Centos7
- nmtui
- hostnamectl
- hostnamectl set-hostname NAME (设置计算机名)
- hostnamectl status (查看计算机名)
============
-
DNS的配置文件
- /etc/resolv.conf
-
格式:
- nameserver XXXXX (最多可配置三个)
-
==========
网卡的配置文件(RHEL系)
配置文件路径:/etc/sysconfig/network-scripts/ifcfg-IFACE
ifcf-IFACE配置文件字段含义
- NAME : 网卡配置名称,需要跟配置文件名保持一致(Centos7)
- DEVICE : 此配置文件对应的设备名称
- ONBOOT : 系统引导时是否激活此接口
- yes : 表示随系统启动激活设备
- no : 表示不随系统启动激活设备
- NETBOOT : 是否支持网络引导
- yes
- no
- UUID : 设备的唯一标识符
- IPV6INIT : 是否初始化IPV6
- BOOTPROTO : IP地址的配置方式
- none : 静态
- dhcp : 动态
- static : 静态
- bootp
- TYPE : 网卡类型
- Ethernet : 以太接口
- Bridge : 风桥
- DNS1 : 主DNS地址
- DNS2 : 辅DNS地址
- DOMAIN : DNS搜索域
- DEFROUTE
- GATEWAY : 默认网关
- IPADDR : IP地址
- NETMASK : 网络掩码地址
- PREFIX : 网络掩码短格式(Centos7)
- USERCTL : 是否允许普通用户控制此设备
- PEERDNS : 当为DHCP模式,是否允许使用DHCP Server的DNS配置信息覆盖本地手动DNS地址指向,默认允许
- NM_CONTROLLDE : 是否使用network manager服务控制接口
- HWADDR : 设备的MAC地址
-
注意:DHCP模式优先级高于static和none模式
配置一张网卡多IP的配置方法
方法一:
- 建立网卡名为eth0:1的文件
- 配置网络信息参数
- DEVICE名称需与配置文件名称一致
- 不支持DHCP,IP必须为手动指定
-
方法二
- ip addr add 192.168.0.100 dev eth0 label eth0:1
-
注意:此配置方法不会永久有效
========
s配置文件配置路由表方法
配置文件路径:/etc/sysconfig/network-scripts/route-IFACE
- 文件配置格式一:
- 每行一个路由条目
- 配置格式:TARGET via GW
- 每三行一个路由条目
- ADDRESS#=TRAGET
- NETMASK#=MASK
- GATEWAY#=NEXTHOP
- 每行一个路由条目
-
========
nmcli命令
nmcli - Centos7 平台的命令行网络配置工具
- nmcli [options] Object {command | help}
- device - 硬件配置模式
- status
- show
- connect
- disconnect
- delete
- connect - 启用、停止管理网络连接
- show
- down
- modify - 额外添加、删除一个IP地址
- device - 硬件配置模式
- device - 硬件配置模式