我们安装好一台linux主机系统,要想将其接入网络就需要配置好网络配置了,centos5.x,centos6.x,到现在的centos7.x主要有三大配置网络的家族工具供我们使用:
这里主要以静态配置网络地址方式说明,首先从古老的ifcfg家族命令开始介绍:
ifcfg家族:ifconfig,route,netstat
ifconfig命令:网卡接口的查看和管理
格式:ifconfig [interface]
-a:显示所有的接口信息,包含没有激活状态的接口;
-s:简单显示接口的网络状况;
ifconfig interface [aftype] options | address ...
ifconfig IFACE IP/MASK [up|down]
ifconfig IFACE IP netmask NETMASK
例:
还可以在一块网卡上添加多个IP:
常用选项:
[-]promisc:打开网卡的混杂模式,也就是网络中所有接口的流量都会接收;
这个命令还可以为网卡设置IPv6的地址信息:
add addr/prefixlen
del addr/prefixlen
route命令:路由查看和管理
查看:route -n
添加:route add [-net|-host] target [netmask Nm] [gw GW] [[dev] If]
删除:route del [-net|-host] target [gw Gw] [netmask Nm] [[dev] If]
netstat命令:
显示路由表: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协议相关连接;
-l:处于监听状态的连接;
-a:所有状态的连接;
-n:以数字格式显示IP和Port;
-e:扩展格式;
-p:显示相关的进程及PID;
常用格式:-tan,-uan,-tnl,-tunlp
-tan
-uan
-tnl
-tunlp
显示接口网络统计信息:
-i:显示所有接口信息
-I<IFACE>:显示指定网卡接口信息;
ifup/ifdown命令:
这两个命令是通过配置文件来识别接口并完成配置的;
iproute家族:
ip命令:
命令格式:ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route | netns }
ip OBJECT:
ip link:网卡设备配置
ip link set:配置设备属性;
属性:dev NAME(default):指明要管理的设备名称,dev关键字可以省略;
up/down:启用或停止网卡;
multicast on/multicast off:启用或禁用多播功能;
name NAME:重命名接口;
mtu NUMBER:设置MTU的大小,默认为1500;
netns PID:ns为namespace,用于将接口移动到指定的网络名称空间;
ip link show:显示网卡信息;
ip link help:显示简要的使用信息;
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 addr add IFADDR dev IFACE;
常用选项:
[label NAME]:为额外添加的地址指明接口别名;
[broadcast ADDRESS]:广播地址;会根据IP和NETMASK自动计算得到;
[scope SCOPE_VALUE]:
global:全局可用;
link:接口可用;
host:仅本机可用;
ip addr delete IFADDR dev IFACE:删除地址配置
ip addr list [IFACE]:显示接口的地址
ip addr flush dev IFACE:清空网卡配置
ip route:路由表管理
ip route add:添加新路由
ip route change:改变路由;
ip route replace:改变或添加一个新路由;
ip route add TYPE PREFIX via GW [dev IFACE] [src SOURCE_IP]
via:下一跳路由地址
ip route del TYPE PRIFIX:删除一个路由
ip route show:显示路由表信息;
ip route flush:清空路由表
ip route get TYPE PRIFIX:获取一个简单的路由表;
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:等待断开连接状态1
FIN_WAIT_2:等待断开连接状态2
SYN_SENT:发出断开连接请求状态;
SYN_RECV:接收到断开连接请求;
CLOSED: 关闭连接状态
最后要介绍的就是centos7中使用的新贵nmcli,nmtui:
命令行:nmcli
图形化:nmtui
nmcli命令:
nmcli [ OPTIONS ] OBJECT { COMMAND | help }
device - show and manage network interfaces
COMMAND := { status | show | connect | disconnect | delete | wifi | wimax }
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>
如何修改IP地址等属性:
# nmcli conn modify IFACE [+|-]setting.property value
ipv4.address
ipv4.gateway
ipv4.dns1
ipv4.method
manual
由于nmcli命令还不是很成熟,暂不做过多解释
nmtui命令:跟centos5.x,centos6.x中的setup命令界面相似,可以通过该可视界面配置网络,但得重启网卡生效;
图形界面简单易用,我就不做过多介绍了。
除了上边介绍的三大管理网络配置家族的工具,我们还可以通过修改配置文件来使得修改的网络属性永久生效:
/etc/sysconfig/network-scripts/ifcfg-IFACE系列文件,我们可以通过他们来修改ip地址,子网掩码,网关,DNS等相关信息;(IFACE指接口名称)
/etc/sysconfig/network-scripts/route-IFACE文件,可以通过修改此文件来使得通过该接口的路由信息永久生效
ifcfg-IFACE文件通过大量的参数来定义接口的属性,可以通过vim等编辑器修改,也可以通过setup(centos6.x)或nmtui(centos7.x)工具来修改,下面介绍一下该配置文件的常用参数:
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服务来控制接口;
如果要让添加的非默认路由信息生效,就要在/etc/sysconfig/network-scripts/目录下创建配置文件ifcfg-IFACE文件了:
支持两种配置方式,但不可混用;
(1) 每行一个路由条目:
TARGET via GW
(2) 每三行一个路由条目:
ADDRESS#=TARGET
NETMASK#=MASK
GATEWAY#=NEXTHOP
注意:通过配置文件修改生成的网络配置要想生效,都要通过重启网络服务达成;
CentOS 6:service network restart
CentOS 7:systemctl restart network.service