Centos的网络配置命令和文件

| 分类 linux  | 标签 ifconfig  ip  route  ss  netstat  DNS 

一、ifcongfig

Centos6之前最常用的配置网络命令就是ifconfig,使用ifconfig命令时最好切换到root用户的身份

1、直接使用ifconfig可以查看当前配置的网络设备的信息

例如

[root@localhost ~]# ifconfig
eno16777728: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.16.9.9  netmask 255.255.0.0  broadcast 172.16.255.255
        inet6 fe80::20c:29ff:fe83:15cb  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:83:15:cb  txqueuelen 1000  (Ethernet)
        RX packets 120796  bytes 20258545 (19.3 MiB)
        RX errors 0  dropped 1418  overruns 0  frame 0
        TX packets 28466  bytes 47363344 (45.1 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 20  bytes 1780 (1.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 20  bytes 1780 (1.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

这里可以看到我目前有一个网络设备eno16777728和一个网络回环接口lo,常见的网络接口有以下几个

eth0: ethernet的简写,一般用于以太网接口。在centos7上是eno16777728
wifi0:wifi是无线局域网,因此wifi0一般指无线网络接口。
ath0: Atheros的简写,一般指Atheros芯片所包含的无线网络接口。

2、用ifconfig启动或关闭指定网卡

ifconfig up 启动指定的网络设备
ifconfig down 关闭指定的网络设备

网卡名称一定要写在down或up之前

[root@localhost ~]# ifconfig eno16777728 down
[root@localhost ~]# ifconfig eno16777728 up

3、用ifconfig配置网络地址和网关

比如这里我配置eth0网卡的ip地址为:172.16.7.254子网掩码为255.255.0.0

注意用ifconfig改网络配置会立即生效

[root@localhost ~]# ifconfig eth0 172.16.7.254 netmask 255.255.0.0
[root@localhost ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:5E:4B:1F  
          inet addr:172.16.7.254  Bcast:172.16.255.255  Mask:255.255.0.0
          inet6 addr: fe80::20c:29ff:fe5e:4b1f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1372221 errors:2 dropped:0 overruns:0 frame:0
          TX packets:3465 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:119202924 (113.6 MiB)  TX bytes:334330 (326.4 KiB)
          Interrupt:19 Base address:0x2000

还可以给一个网卡配上多个地址,例如

[root@localhost ~]# ifconfig eth0:0 172.16.7.225 netmask 255.255.0.0
[root@localhost ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:5E:4B:1F  
          inet addr:172.16.7.254  Bcast:172.16.255.255  Mask:255.255.0.0
          inet6 addr: fe80::20c:29ff:fe5e:4b1f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1375940 errors:2 dropped:0 overruns:0 frame:0
          TX packets:3579 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:119494875 (113.9 MiB)  TX bytes:348430 (340.2 KiB)
          Interrupt:19 Base address:0x2000 

eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:5E:4B:1F  
          inet addr:172.16.7.225  Bcast:172.16.255.255  Mask:255.255.0.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:19 Base address:0x2000

如果还想增加更多则可以eth0:1 eth0:2依次继续增加

其他的一些参数:

-arp 打开或关闭指定接口上使用的ARP协议。前面加上一个负号用于关闭该选项。
-allmuti 关闭或启动指定接口的无区别模式。前面加上一个负号用于关闭该选项。
-promisc 关闭或启动指定网络设备的promiscuous模式。前面加上一个负号用于关闭该选项。
add<地址> 设置网络设备IPv6的IP地址。
del<地址> 删除网络设备IPv6的IP地址。
media<网络媒介类型> 设置网络设备的媒介类型。
mem_start<内存地址> 设置网络设备在主内存所占用的起始地址。
metric<数目> 指定在计算数据包的转送次数时,所要加上的数目。
mtu<字节> 设置网络设备的MTU。
netmask<子网掩码> 设置网络设备的子网掩码。
tunnel<地址> 建立IPv4与IPv6之间的隧道通信地址。
-broadcast<地址> 将要送往指定地址的数据包当成广播数据包来处理。
-pointopoint<地址> 与指定地址的网络设备建立直接连线,此模式具有保密功能。

二、route

route命令用于管理本机路由表,路由表就是指,本机访问指定的主机或网络需要通过的网络接口,简单点理解,你的网关就是通往所有其他网络所必须要经过的网络接口。

[root@localhost ~]# route 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.0.0      *               255.255.0.0     U     0      0        0 eth0

Destination代表目标网络
Gateway代表网关地址,*代表目标是本机网络不需要网关
Genmask代表你要访问的网络的子网掩码
Flags为路由标志,标记当前网络节点的状态。
    Flags标志说明:
        U Up表示此路由当前为启动状态
        H Host,表示此网关为一主机
        G Gateway,表示此网关为一路由器
        R Reinstate Route,使用动态路由重新初始化的路由
        D Dynamically,此路由是动态性地写入
        M Modified,此路由是由路由守护程序或导向器动态修改
        ! 表示此路由当前为关闭状态
Metric代表路由距离,到达指定网络所需的中转数
Ref代表路由项引用次数
Use代表此路由项被路由软件查找的次数
Iface 该路由表项对应的输出接口

route常用命令:

add : 添加一条路由规则
del : 删除一条路由规则
-net : 目的地址是一个网络
-host : 目的地址是一个主机
target : 目的网络或主机
netmask : 目的地址的网络掩码
gw : 路由数据包通过的网关
dev : 为路由指定的网络接口

1、添加一个主机路由到eth0

[root@localhost ~]# route add -host 172.16.1.2  dev eth0
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.1.2      *               255.255.255.255 UH    0      0        0 eth0
172.16.0.0      *               255.255.0.0     U     0      0        0 eth0

2、删除路由

[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.1.2      *               255.255.255.255 UH    0      0        0 eth0
192.168.122.0   *               255.255.255.0   U     0      0        0 virbr0
172.16.0.0      *               255.255.0.0     U     0      0        0 eth0

[root@localhost ~]# route del -net 192.168.122.0 netmask 255.255.255.0 virbr0

[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.1.2      *               255.255.255.255 UH    0      0        0 eth0
172.16.0.0      *               255.255.0.0     U     0      0        0 eth0

3、添加默认网关

[root@localhost ~]# route add default gw 172.16.0.1
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.1.2      *               255.255.255.255 UH    0      0        0 eth0
172.16.0.0      *               255.255.0.0     U     0      0        0 eth0
default         172.16.0.1      0.0.0.0         UG    0      0        0 eth0

4、删除默认网关

[root@localhost ~]# route del default eth0
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.1.2      *               255.255.255.255 UH    0      0        0 eth0
172.16.0.0      *               255.255.0.0     U     0      0        0 eth0

5、添加网络到路由

[root@localhost ~]# route add -net 172.16.9.9 netmask 255.255.255.255 gw 172.16.0.1 eth0
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.9.9      172.16.0.1      255.255.255.255 UGH   0      0        0 eth0
172.16.1.2      *               255.255.255.255 UH    0      0        0 eth0
172.16.0.0      *               255.255.0.0     U     0      0        0 eth0

三、DNS服务器指定

编辑/etc/resolv.conf

这里我配置三个DNS为例

[root@localhost ~]# vim /etc/resolv.conf 
#打开后的内容
# Generated by NetworkManager


# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com
#下面是三个DNS
DNS1=172.16.0.1
DNS2=8.8.8.8
DNS3=114.114.114.114

四、ip

ip命令的功能和ifconfig类似,但是功能更加强大,所以centos7之后的系统有得包组是不带ifconfig而只带ip命令了

1、查看当前配置的所有网络设备的信息

[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:83:15:cb brd ff:ff:ff:ff:ff:ff
    inet 172.16.9.9/16 brd 172.16.255.255 scope global eno16777728
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe83:15cb/64 scope link 
       valid_lft forever preferred_lft forever

后面接上指定的网卡也可以查看指定网卡的信息,也可使用ip address show

2、添加删除地址

添加

[root@localhost ~]# ip addr add 172.16.9.10 dev eno16777728:1
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:83:15:cb brd ff:ff:ff:ff:ff:ff
    inet 172.16.9.9/16 brd 172.16.255.255 scope global eno16777728
       valid_lft forever preferred_lft forever
    inet 172.16.9.10/32 scope global eno16777728
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe83:15cb/64 scope link 
       valid_lft forever preferred_lft forever

删除

[root@localhost ~]# ip addr del 172.16.9.10 dev eno16777728:1
[root@localhost ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eno16777728: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:83:15:cb brd ff:ff:ff:ff:ff:ff
    inet 172.16.9.9/16 brd 172.16.255.255 scope global eno16777728
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fe83:15cb/64 scope link 
       valid_lft forever preferred_lft forever

3、查看现有的路由表

[root@localhost ~]# ip route show
default via 172.16.0.1 dev eno16777728  proto static  metric 100 
172.16.0.0/16 dev eno16777728  proto kernel  scope link  src 172.16.9.9  metric 100

4、添加删除路由和网关

添加路由

[root@localhost ~]# ip route add 172.16.200.51 via 172.16.0.1 dev eno16777728 src 172.16.9.9
[root@localhost ~]# ip route show
default via 172.16.0.1 dev eno16777728  proto static  metric 100 
172.16.0.0/16 dev eno16777728  proto kernel  scope link  src 172.16.9.9  metric 100 
172.16.200.51 via 172.16.0.1 dev eno16777728  src 172.16.9.9
#172.16.200.51为目标ip
#172.16.0.1为路由
#172.16.9.9为源ip

删除路由

[root@localhost ~]# ip route del 172.16.200.51
[root@localhost ~]# ip route
default via 172.16.0.1 dev eno16777728  proto static  metric 100 
172.16.0.0/16 dev eno16777728  proto kernel  scope link  src 172.16.9.9  metric 100

添加默认网关

[root@localhost ~]# ip route add default via 172.16.0.1 dev eno16777728
[root@localhost ~]# ip route show
default via 172.16.0.1 dev eno16777728 
default via 172.16.0.1 dev eno16777728  proto static  metric 100 
172.16.0.0/16 dev eno16777728  proto kernel  scope link  src 172.16.9.9  metric 100

删除刚才添加的网关

[root@localhost ~]# ip route del default via 172.16.0.1 dev eno16777728
[root@localhost ~]# ip route
default via 172.16.0.1 dev eno16777728  proto static  metric 100 
172.16.0.0/16 dev eno16777728  proto kernel  scope link  src 172.16.9.9  metric 100

5、关闭网卡修改网卡名称

[root@localhost ~]# ip link set eno16777728 down
[root@localhost ~]# ip link set eno16777728 name eth0
[root@localhost ~]# ip link set show
[root@localhost ~]# ip link set eth0 up
#这样就把eno16777728改为了eth0,但是因为/etc/sysconfig/network-scripts/ifcfg-eno16777728还是原来的
#名字所以,配置不会跟着到eth0上,所以要完整的改名需要改变此配置文件中NAME=eth0,并将此文件名改为
#ifcfg-eth0

五、netstat

netstat命令主要用来查看整个系统的网络情况

1、选项

    -a或--all:显示所有连线中的端口;
    -A<网络类型>或--<网络类型>:列出该网络类型连线中的相关地址; 
    -c或--continuous:持续列出网络状态; 
    -C或--cache:显示路由器配置的快取信息;
    -e或--extend:显示网络其他相关信息; 
    -F或--fib:显示FIB; 
    -g或--groups:显示多重广播功能群组组员名单; 
    -h或--help:在线帮助; 
    -i或--interfaces:显示网络界面信息表单;
    -l或--listening:显示监控中的服务器的Socket;
    -M或--masquerade:显示伪装的网络连线; 
    -n或--numeric:直接使用ip地址,而不通过域名服务器; 
    -N或--netlink或--symbolic:显示网络硬件外围设备的符号连接名称;
    -o或--timers:显示计时器; 
    -p或--programs:显示正在使用Socket的程序识别码和程序名称; 
    -r或--route:显示Routing Table;
    -s或--statistice:显示网络工作信息统计表;
    -t或--tcp:显示TCP传输协议的连线状况; 
    -u或--udp:显示UDP传输协议的连线状况;
    -v或--verbose:显示指令执行过程; 
    -V或--version:显示版本信息; 
    -w或--raw:显示RAW传输协议的连线状况;
    -x或--unix:此参数的效果和指定"-A unix"参数相同;
    --ip或--inet:此参数的效果和指定"-A inet"参数相同。

2、常用的组合

    -tan, -uan, -tnl, -unl

显示连接的tcp端口

[root@localhost network-scripts]# 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:25            0.0.0.0:*               LISTEN     
tcp        0     52 172.16.9.9:22           172.16.7.211:54886      ESTABLISHED
tcp6       0      0 :::80                   :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN 

显示连接中的udp端口

[root@localhost network-scripts]# netstat -uan

显示所有处于监听(LISTEN)状态的tcp端口

[root@localhost network-scripts]# netstat -tnl
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:25            0.0.0.0:*               LISTEN     
tcp6       0      0 :::80                   :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN 

显示所有处于监听状态的udp端口

[root@localhost network-scripts]# netstat -unl

六、ss

ss和netstat类似,但是显示的信息更详细,速度更快,在连接数上万的情况下用ss比netstat更快更高效,所以推荐使用ss

1、选项

-t: tcp协议相关
-u: udp协议相关
-w: 裸套接字相关
-x:unix sock相关
-l: listen状态的连接
-a: 所有
-n: 数字格式
-p: 相关的程序及PID
-e: 扩展的信息
-m:内存用量
-o:计时器信息

2、常用组合

-tan:显示所有连接的tcp端口
-tanl:显示处于监听状态的tcp端口
-tanlp:显示监听状态的tcp端口并显示对应程序的PID
-uan:显示所有连接的udp端口
-uanl:显示处于监听状态的udp端口
-uanlp:显示监听状态的udp端口并显示对应程序的PID

例如:

[root@localhost network-scripts]# ss -tan
State       Recv-Q Send-Q      Local Address:Port                     Peer Address:Port              
LISTEN      0      128                     *:22                                  *:*                  
LISTEN      0      100             127.0.0.1:25                                  *:*                  
ESTAB       0      52             172.16.9.9:22                       172.16.7.211:54886              
LISTEN      0      128                    :::80                                 :::*                  
LISTEN      0      128                    :::22                                 :::*                  
LISTEN      0      100                   ::1:25                                 :::*                  

[root@localhost network-scripts]# ss -tanl
State       Recv-Q Send-Q      Local Address:Port                     Peer Address:Port              
LISTEN      0      128                     *:22                                  *:*                  
LISTEN      0      100             127.0.0.1:25                                  *:*                  
LISTEN      0      128                    :::80                                 :::*                  
LISTEN      0      128                    :::22                                 :::*                  
LISTEN      0      100                   ::1:25                                 :::*                  

[root@localhost network-scripts]# ss -tanlp
State       Recv-Q Send-Q      Local Address:Port                     Peer Address:Port              
LISTEN      0      128                     *:22                                  *:*                   users:(("sshd",pid=1250,fd=3))
LISTEN      0      100             127.0.0.1:25                                  *:*                   users:(("master",pid=2365,fd=13))
LISTEN      0      128                    :::80                                 :::*                   users:(("httpd",pid=2824,fd=4),("httpd",pid=2823,fd=4),("httpd",pid=2822,fd=4),("httpd",pid=2821,fd=4))
LISTEN      0      128                    :::22                                 :::*                   users:(("sshd",pid=1250,fd=4))
LISTEN      0      100                   ::1:25

七、网络配置文件

1、网络配置文件

前面所有的修改网络参数的命令在重启系统之后就会失效,只有更改网络配置文件/etc/sysconfig/network-scripts/ifcfg-eno16777728【注意这是Centos7的,Centos6为ifcfg-eth0】在重启之后才会有效

[root@localhost network-scripts]# vim /etc/sysconfig/network-scripts/ifcfg-eno16777728

TYPE="Ethernet"#接口类型
BOOTPROTO="static"#激活此设备时使用的地址配置协议,常用的dhcp, static, none, bootp
DEFROUTE="yes"
PEERDNS="yes"#如果BOOTPROTO的值为“dhcp”,是否允许dhcp server分配的dns服务器指向信息直接覆盖至/etc/resolv.conf文件中
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
NAME="eno16777728"#设备名称
UUID="758d5aa7-239e-4488-94b3-6c3f33688dd5"#设备的唯一标识
DEVICE="eno16777728"#此配置文件应用到的设备
ONBOOT="yes"#在系统引导时是否激活此设备
IPADDR="172.16.9.9"#IP地址
NETMASK="255.255.0.0"#子网掩码
GATEWAY="172.16.0.1"#默认网关
DNS1="61.128.128.68"#DNS服务器1
DNS2="61.128.192.68"#DNS服务器2

注意:记得重启网络服务方能生效;

重启网络服务: service network restart /etc/rc.d/init.d/network restart

2、路由表

配置文件/etc/sysconfig/network-scripts/route-eno16777728【注意这是Centos7的,Centos6为ifcfg-eth0】

路由表有两种风格,

第一种

目标网络 via 路由
172.16.55.34 via 172.16.0.1

第二种

#每三行定义一条路由
#目标地址
#子网掩码
#路由
ADDRESS0=172.16.55.34
NETMASK0=255.255.0.0
GATEWAY0=172.16.0.1

注意:记得重启网络服务方能生效;

重启网络服务:

service network restart
/etc/rc.d/init.d/network restart ​​

上一篇     下一篇