在centOS系统中用用于网络配置的有这么几个命令ifconfig,route,ip,netstat,ss。ifconfig与route命令正在逐渐被ip命令取代。
1、ifconfig:配置网络接口
ifconfig -a #显示所有处于激活状态的连接(默认)
ifconfig IFNAME #仅显示指定接口的信息
ifconfig IFNAME ADDRESS #配置网络接口的IP地址
长格式:ifconfig IFNAME IP netmask MASK
短格式:ifconfig IFNAME IP/MASK
ifconfig IFNAME up #开启IFNAME网卡
ifconfig IFNAME up #关闭IFNAME网卡
用ifconfig配置ip地址:
[root@xiaoxiao ~]# ifconfig eth1 eth1 Link encap:Ethernet HWaddr 00:0C:29:D6:C9:FA UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) [root@xiaoxiao ~]# ifconfig eth1 192.168.172.133/24 broadcast 192.168.172.255 [root@xiaoxiao ~]# ifconfig eth1 eth1 Link encap:Ethernet HWaddr 00:0C:29:D6:C9:FA inet addr:192.168.172.133 Bcast:192.168.172.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
2、route:配置路由表
route #显示路由表信息
route -n #用数字的格式显示路由信息
route add -host HOST_IP gw NEXT_HOP [dev DEVICE] #添加主机路由
route add -net HOST_IP gw NEXT_HOP [dev DEVICE] #添加主机路由
route add default gw GW_ADD #添加默认路由
route del -host HOST_IP #删除主机路由
route del -net HOST_IP #删除网络路由
route del default #删除默认路由显示路由表:
[root@xiaoxiao ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 114.114.114.114 192.168.172.3 255.255.255.255 UGH 0 0 0 eth1 #主机路由 192.168.172.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.172.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 0.0.0.0 192.168.172.2 0.0.0.0 UG 0 0 0 eth0 #默认路由
说明:Destination表示目的网络或者目的主机,gateway需要经过的网关,Genmask子网掩码,Flags标示符(U:改路由条目生效,G:改路由条目需要使用网关地址,H:目标是主机名(host)......),Metric到目标地址(Destination)的距离(usually counted in hops),Iface对应的接口。
Destination为0.0.0.0表示默认路由条目,Gateway为0.0.0.0表示该目的地址就在本网络上,不需要网关。
添加主机、网络、默认路由:
[root@xiaoxiao ~]# route add -host 115.115.115.115 gw 192.168.172.3 dev eth1 [root@xiaoxiao ~]# route add -net 116.116.116.0/24 gw 192.168.172.3 dev eth1 [root@xiaoxiao ~]# route add default gw 192.168.172.4 [root@xiaoxiao ~]# route -n Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 115.115.115.115 192.168.172.3 255.255.255.255 UGH 0 0 0 eth1 116.116.116.0 192.168.172.3 255.255.255.0 UG 0 0 0 eth1 #网络路由 192.168.172.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 192.168.172.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1 169.254.0.0 0.0.0.0 255.255.0.0 U 1002 0 0 eth0 0.0.0.0 192.168.172.4 0.0.0.0 UG 0 0 0 eth0 #仅第一个默认路由生效 0.0.0.0 192.168.172.2 0.0.0.0 UG 0 0 0 eth0
添加了192.168.172.4这条默认路由之后,最下面的那条路由就会失效。
删除刚刚添加的路由条目:
[root@xiaoxiao ~]# route del -host 115.115.115.115 [root@xiaoxiao ~]# route del -net 116.116.116.0/24 [root@xiaoxiao ~]# route del default
注意:在添加路由时,网关必须和当前主机的ip地址处在同一个网段中,不然会添加失败。
3、ip。ip有很多子命令,这里只介绍常用的3个。ip link用于管理接口,ip addr用于协议地址,ip route用于管理路由。ip是一个比较新的命令,用于取代ifconfig和route,所以建议使用这个命令来配置网络的相关属性。
ip link:
ip link show [dev DEVICE] #显示指定接口的状态信息
ip link set IFNAME {up|down} #开启或关闭网卡
ip link set IFNAME promise {on|off} #开启或关闭网络的混合模式
ip link set IFNAME mtu 1400 #设置网卡最大传输单元
ip add:
ip addr show [dev DEVICE] #显示指定接口的地址信息
ip addr flush [dev DEVICE] #请出指定接口的地址信息
ip addr {add|del} ADDRESS [label IFALIAS(指定别名)] [scope] [brd BCAST_ADDRESS(指定广播地址)] dev DEVICE
# 为一个接口配置地址(可以为一个接口配置多个地址)
显示,添加,删除ip地址:
[root@xiaoxiao ~]# ip addr show dev eth1 3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 00:0c:29:d6:c9:fa brd ff:ff:ff:ff:ff:ff [root@xiaoxiao ~]# ip addr add 192.168.172.134/24 brd 192.168.172.255 dev eth1 [root@xiaoxiao ~]# ip addr show dev eth1 3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 00:0c:29:d6:c9:fa brd ff:ff:ff:ff:ff:ff inet 192.168.172.134/24 brd 192.168.172.255 scope global eth1 [root@xiaoxiao ~]# ip addr del 192.168.172.134/24 dev eth1 [root@xiaoxiao ~]# ip addr show dev eth1 3: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 00:0c:29:d6:c9:fa brd ff:ff:ff:ff:ff:ff
ip route:
ip route list #列出路由信息
ip route flush #清空路由表
ip route add DESTINATION [via NEXT_HOP] [src SOURCE_ADDRESS] [dev DEVICE]
#添加路由信息(src表示来自于纳鞋底至的包)
ip route add default via NEXT_HOP #添加默认路由
ip route del DESTINATION #删除路由
ip route del default #删除默认路由
添加主机路由、网络路由,查看路由表:
[root@xiaoxiao ~]# ip route add 115.115.115.115 via 192.168.172.5 dev eth1 [root@xiaoxiao ~]# ip route add 115.115.116.0/24 via 192.168.172.5 dev eth1 [root@xiaoxiao ~]# ip route list 115.115.115.115 via 192.168.172.5 dev eth1 115.115.116.0/24 via 192.168.172.5 dev eth1 192.168.172.0/24 dev eth0 proto kernel scope link src 192.168.172.131 192.168.172.0/24 dev eth1 proto kernel scope link src 192.168.172.135 169.254.0.0/16 dev eth0 scope link metric 1002
注意:当已经有默认路由存在时,无法用ip命令再次添加,需要先删除再进行添加
[root@xiaoxiao ~]# ip route add default via 192.168.172.136 RTNETLINK answers: File exists #添加失败,因为已经存在默认路由 [root@xiaoxiao ~]# ip route del default #删除原来的默认路由 [root@xiaoxiao ~]# ip route add default via 192.168.172.136 [root@xiaoxiao ~]# ip route list 115.115.115.115 via 192.168.172.5 dev eth1 115.115.116.0/24 via 192.168.172.5 dev eth1 192.168.172.0/24 dev eth0 proto kernel scope link src 192.168.172.131 192.168.172.0/24 dev eth1 proto kernel scope link src 192.168.172.135 169.254.0.0/16 dev eth0 scope link metric 1002 default via 192.168.172.136 dev eth0 #添加成功
以上的配置会立即生效,但不会永久有效,重启系统或者网络服务之后,配置就会失效。若想要永久有效需要到配置文件中进行配置。
网络的相关配置文件:
/etc/sysconfig/network-scripts/ifcfg-IFNAME #网络接口的配置文件
/etc/hosts #完成主机名映射IP地址的功能
/etc/resolv.conf #域名服务客户端的配置文件,用于指定域名服务器的地址
/etc/sysconfig/network #主机最基本的网络信息,包括主机名,在系统启动使用到
/etc/sysconfig/network-scripts/route-IFNAME #路由表的配置信息
1、/etc/sysconfig/network-scripts/ifcfg-IFNAME:
DEVICE=eth0 #此配置文件所关联到的设备,设备文件要与本文件名ifcfg-后面保持一致 TYPE=Ethernet #网络接口类型{Ethernet|bridge} UUID=e6799ee4-6f92-4f00-b10d-0b5227102a1f ONBOOT=no #是否在开机过程中激活此接口 NM_CONTROLLED=no #该设备是否被NetworkManager管理 BOOTPROTO=dhcp #启动协议{dhcp|none|static|bootp} DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" HWADDR=00:0C:29:D6:C9:F0 #mac地址 PEERDNS=yes #是否接受dhcp服务器指派的dns服务器地址 PEERROUTES=yes LAST_CONNECT=1429555046 USERCTL={yes|no} #是否允许普通用户控制此接口 IPADDR= #IP地址 DNS1= #主DNS服务器地址 DNS2= NETMASK= #子网掩码 GATEWAY= #默认网关
配置完需要重启网络服务:
/etc/init.d/network restart 或 service network restart
centOS7中网络服务为NetworkManager:
/etc/init.d/NetworkManager restart 或 service NetworkManager restart
2、/etc/sysconfig/network-scripts/route-IFNAME: 配置静态路由(这个配置文件默认没有,需要自己添加)
配置文件的格式1:每行一个路由条目
配置文件格式2: 每三行一个路由条目DESTINATION via NETX_HOP
ADDRESS#=DESTINATIONNETMASK#=MASKGATEWAY#=GW
注意:这种格式的书写方式,#表示数字,必须从0开始(第一个路由条目为0,第二个为1......),=两边没有空格
3、/etc/hosts
[xiaoxiao@xiaoxiao ~]$ cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
/etc/hosts这个文件的默认内容如上,第一行是ipv4信息,第二行是ipv6信息。这是一个本地解析的配置文件,localhost,localhost.localdomain,localhost4......都会被解析成127.0.0.1。
[xiaoxiao@xiaoxiao ~]$ ping localhost -c 2 PING localhost (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.114 ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.105 ms
[xiaoxiao@xiaoxiao ~]$ ping localhost4 -c 2 PING localhost (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.050 ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.054 ms
4、/etc/resolv.conf
; generated by /sbin/dhclient-script nameserver 192.168.188.101 nameserver 114.114.114.114
这是我虚拟机上的这个文件的内容,这个文件用于指定域名解析的DNS服务器ip地址等信息,配置参数一般有4个:
nameserver #指定DNS服务器的IP地址
domain #定义本地域名信息
search #定义域名的搜索列表
sortlist #对gethostbyname返回的地址进行排序
最常用的是nameserver这个参数,其他的一般都不指定。
5、/etc/sysconfig/network
[xiaoxiao@xiaoxiao ~]$ cat /etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=xiaoxiao GATEWAY=192.168.0.1
典型配置如上,参数说明:
NETWORKING #设置网络是否有效
NETWORKING_IPV6 #IPV6网络是否有效
HOSTNAME #设置主机名,最好和/etc/hosts文件中的设置一样
GATEWAY #指定默认网关
网络管理相关的工具:
ping:send ICMP ECHO_REQUEST to network hosts(man中的解释)
ping [option]... IP
-c #: 报文的个数-W timeout: 等待响应报文的超时时长;
[root@xiaoxiao ~]# ping www.baidu.com -c 3 -W 3 PING www.a.shifen.com (180.97.33.108) 56(84) bytes of data. 64 bytes from 180.97.33.108: icmp_seq=1 ttl=128 time=12.1 ms 64 bytes from 180.97.33.108: icmp_seq=2 ttl=128 time=11.6 ms 64 bytes from 180.97.33.108: icmp_seq=3 ttl=128 time=11.2 ms --- www.a.shifen.com ping statistics --- 3 packets transmitted, 3 received, 0% packet loss, time 2015ms rtt min/avg/max/mdev = 11.289/11.699/12.184/0.369 ms
traceroute:
traceroute HOST
获取当前主机到达目标主机所经过的所有网关
[xiaoxiao@xiaoxiao ~]$ traceroute baidu.com traceroute to baidu.com (123.125.114.144), 30 hops max, 60 byte packets 1 192.168.0.1 (192.168.0.1) 0.969 ms 1.574 ms 0.945 ms 2 192.168.188.1 (192.168.188.1) 72.099 ms 71.877 ms 71.171 ms 3 * * * 4 * * * 5 * * * ...........
netstat:查看网络状态信息
-t #tcp协议相关的连接-u #udp协议相关的连接-n #显示数字格式的地址-l #listen,显示处于监听状态的连接-a # 所有状态的连接(包括已建立连接和监听的连接)-p #显示会话中的进程程序名及进程号-r #routing,显示路由表
使用方式如下:
[xiaoxiao@xiaoxiao ~]$ netstat -tunl Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 0 :::22 :::* LISTEN tcp 0 0 ::1:631 :::* LISTEN tcp 0 0 ::1:25 :::* LISTEN udp 0 0 0.0.0.0:68 0.0.0.0:* udp 0 0 0.0.0.0:631 0.0.0.0:*
[xiaoxiao@xiaoxiao ~]$ netstat -tan Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 52 192.168.0.152:22 192.168.0.105:2986 ESTABLISHED tcp 0 0 192.168.0.152:22 192.168.0.60:52684 ESTABLISHED tcp 0 0 :::22 :::* LISTEN tcp 0 0 ::1:631 :::* LISTEN tcp 0 0 ::1:25 :::* LISTEN
显示路由表(同route -n):
[xiaoxiao@xiaoxiao ~]$ netstat -nr Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0 0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
注意:这里的State一般有两种状态:connected(established)和listen,若选项中没有-l,则显示connected状态的进程,若加上则显示处于监听状态的进程
ss:查看网络状态信息
这个命令用法与netstat相似,但功能更加强大,具体用法可以参考netstat。这里只给出一个例子
[xiaoxiao@lwg ~]$ ss -tunl Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port udp UNCONN 0 0 *:68 *:* udp UNCONN 0 0 *:631 *:* tcp LISTEN 0 128 :::22 :::* tcp LISTEN 0 128 *:22 *:* tcp LISTEN 0 128 127.0.0.1:631 *:* tcp LISTEN 0 128 ::1:631 :::* tcp LISTEN 0 100 ::1:25 :::* tcp LISTEN 0 100 127.0.0.1:25 *:*
原文地址:http://ljbaby.blog.51cto.com/10002758/1638036