Linux下的网络配置方法(一)

    Linux的网络配置方法有多种,而且随发行版及版本而略微不同。我目前的测试环境为CentOS6和CentOS7。

    常用的网络配置命令或方法有:ifconfig,route,netstat,ip,ss,nmcli,配置文件。

一、简介

    ifconfig:是个比较传统的命令,可以配置网络接口的启用及关闭,IP地址等等,但此命令已不被推荐使用;

    route:主要用于配置路由,已不被推荐使用;

    netstat:主要用于查看网络状态,也已不被推荐使用;

    ip:是个功能更全面的命令,可以管理网络接口以及路由,可以取代ifconfig和route命令;

    ss:同netstat一样主要用于查看网络状态,但能提供更多的信息;

    修改配置文件:从根本上配置网络的方法;

    nmcli:NetworkManager command line,功能不断得到完善的命令,主要用于管理网络接口,WIFI,蓝牙等等。

二、详细用法

    1. ifconfig

        直接输入ifconfig或者ifconfig -a会查看所有网络接口的信息:

        

        开启或关闭某个网络接口:

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

        

        设置IP地址:ifconfig INTERFACE IP/MASK

[root@localhost ~]# ifconfig eno16777736 192.168.1.108/24

        注意:这个操作会覆盖旧的IP;

        启用或关闭混杂模式,用于网络监控:

        ifconfig INTERFACE -promisc

        ifconfig INTERFACE promisc

        注意:使用ifconfig修改的内容会立即生效,但不会永久生效,若想永久生效,须修改配置文件。

    2. route 路由管理命令

        直接在shell中输入route命令,会显示所有路由信息:

[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.33    0.0.0.0         UG    100    0        0 eno16777736
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eno16777736

        使用route添加主机路由:

[root@localhost ~]# route add -host 192.168.1.3 gw 192.168.1.33 dev eno16777736
    # -host:添加主机路由;gw:gatway;eno16777736:网络接口名;
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.33    0.0.0.0         UG    100    0        0 eno16777736
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eno16777736
192.168.1.3     192.168.1.33    255.255.255.255 UGH   0      0        0 eno16777736
    # 最后一条为新加的路由;

    使用route添加网络路由:

[root@localhost ~]# route add -net 198.162.2.0/24 gw 192.168.1.33 dev eno16777736
    # -net:网络路由;198.162.2.0/24:IP/MASK;注意添加网络路由需要附带子网掩码MASK;
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.33    0.0.0.0         UG    100    0        0 eno16777736
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eno16777736
192.168.1.3     192.168.1.33    255.255.255.255 UGH   0      0        0 eno16777736
198.162.2.0     192.168.1.33    255.255.255.0   UG    0      0        0 eno16777736
    # 最后一条为新加;

    添加默认路由:

[root@localhost ~]# route add default gw 192.168.1.1 dev eno16777736
    # 注意使用default选项;最后应加上dev名;
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.1     0.0.0.0         UG    0      0        0 eno16777736
    # 上一条为新加;
default         192.168.1.33    0.0.0.0         UG    100    0        0 eno16777736
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eno16777736
192.168.1.3     192.168.1.33    255.255.255.255 UGH   0      0        0 eno16777736
198.162.2.0     192.168.1.33    255.255.255.0   UG    0      0        0 eno16777736

    删除一条路由:

[root@localhost ~]# route del -host 192.168.1.3
[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.1.33    0.0.0.0         UG    100    0        0 eno16777736
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eno16777736
198.162.2.0     192.168.1.33    255.255.255.0   UG    0      0        0 eno16777736

    注意: route命令修改的内容也是临时有效,重启失效。

    3. netstat命令

        netstat命令用于查看网络状态,常用选项有:

            -t: 查看tcp连接

            -u:查看udp连接

            -n:以数字方式查看端口和IP

            -a:显示所有状态

            -l:查看处于监听状态的连接

            常用选项组合:

[root@localhost ~]# 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      0 192.168.1.105:22        192.168.1.104:49415     ESTABLISHED
tcp        0     52 192.168.1.105:22        192.168.1.104:54643     ESTABLISHED
tcp        0      0 192.168.1.105:22        192.168.1.104:54637     ESTABLISHED
tcp        0      0 192.168.1.105:22        192.168.1.104:54499     ESTABLISHED
tcp6       0      0 :::80                   :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN         
[root@localhost ~]# 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     
[root@localhost ~]# netstat -uan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 0.0.0.0:68              0.0.0.0:*                          
udp        0      0 0.0.0.0:123             0.0.0.0:*                          
udp        0      0 127.0.0.1:323           0.0.0.0:*                          
udp        0      0 0.0.0.0:35178           0.0.0.0:*                          
udp6       0      0 :::123                  :::*                               
udp6       0      0 :::21826                :::*                               
udp6       0      0 ::1:323                 :::*                               
[root@localhost ~]# netstat -unl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 0.0.0.0:68              0.0.0.0:*                          
udp        0      0 0.0.0.0:123             0.0.0.0:*                          
udp        0      0 127.0.0.1:323           0.0.0.0:*                          
udp        0      0 0.0.0.0:35178           0.0.0.0:*                          
udp6       0      0 :::123                  :::*                               
udp6       0      0 :::21826                :::*                               
udp6       0      0 ::1:323                 :::*

    4. ip命令的使用方法:

        ip [ OPTIONS ] OBJECT { COMMAND | help }

            常用的OBJECT有:link,addr,route;

            每个OBJECT对应不同的COMMAND;

            可以对每个OBJECT查看其man手册,也可以查看其帮助:

              eg:man ip link;

                 ip link help;

        ip link常用于开启或关闭某个网络接口,及显示其信息:

[root@localhost ~]# ip link set dev eno16777736 up
[root@localhost ~]# ip link show dev eno16777736 
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT 
qlen 1000    link/ether 00:0c:29:df:39:4e brd ff:ff:ff:ff:ff:ff

        ip addr常用于查看IP地址,增加IP地址,删除IP地址

[root@localhost ~]# ip addr add 192.168.1.108/24 dev eno16777736
    # 为eno16777736增加一个IP;
    # 注意使用了ip addr下的次级命令add,add后面是IP/MASK,最后是dev+网络接口号;
[root@localhost ~]# ip addr show dev eno16777736 
    # ip addr show dev INTERFACE命令用于查看特定INTERFACE的信息;
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:df:39:4e brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.105/24 brd 192.168.1.255 scope global dynamic eno16777736
       valid_lft 4694sec preferred_lft 4694sec
    inet 192.168.1.108/24 scope global secondary eno16777736
        # 注意此条IP是新加的;
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fedf:394e/64 scope link 
       valid_lft forever preferred_lft forever
[root@localhost ~]# ip addr del 192.168.1.108/24
    # 删除IP,后面不带INTERFACE参数是不能删除IP的,因为没有操作对象;
Not enough information: "dev" argument is required.
[root@localhost ~]# ip addr del 192.168.1.108/24 dev eno16777736
    # 此为删除IP的正确操作;
[root@localhost ~]# ip addr show
    # 这条命令最后不带INTERFACE参数,默认显示所有INTERFACE的信息;
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: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:df:39:4e brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.105/24 brd 192.168.1.255 scope global dynamic eno16777736
       valid_lft 4599sec preferred_lft 4599sec
    inet6 fe80::20c:29ff:fedf:394e/64 scope link 
       valid_lft forever preferred_lft forever

        ip route 是路由管理命令:

[root@localhost ~]# ip route add 192.168.1.109 via 192.168.1.33
    # 使用格式1:ip route add 主机路由IP via 网关
[root@localhost ~]# ip route show
    # 查看路由;
default via 192.168.1.33 dev eno16777736  proto static  metric 100 
192.168.1.0/24 dev eno16777736  proto kernel  scope link  src 192.168.1.105  metric 100 
192.168.1.109 via 192.168.1.33 dev eno16777736 
[root@localhost ~]# ip addr add 192.168.1.108/24 dev eno16777736.
    # 添加一个IP用于测试;添加完成后本机有2个IP地址;
[root@localhost ~]# ip route add 192.168.1.111 via 192.168.1.33 src 192.168.1.108
    # 指定新加的主机路由的源IP是本机新加的IP;
    # 此为ip route add的第二种格式,最后加上了src参数;
[root@localhost ~]# ip route replace 192.168.1.109 via 192.168.1.33 src 192.168.1.105
    # 修改一个路由信息;
[root@localhost ~]# ip route add 192.168.2.0/24 via 192.168.1.33
    # 添加网络路由;
[root@localhost ~]# ip route delete 192.168.1.111
    # 删除一条主机路由;
[root@localhost ~]# ip route delete 192.168.2.0/24
    # 删除一条网络路由;

    IP命令的修改同样也非永久有效。

    5. ss

        ss与netstat用法差不多,请自行测试吧。

(后面超过字数限制,转接Linux下的网络配置方法(二)。)

原创文章,作者:Jacen,如若转载,请注明出处:http://www.178linux.com/9928

(1)
JacenJacen
上一篇 2015-12-15
下一篇 2015-12-15

相关推荐

  • Mariadb数据库复制系列(三):半同步复制

       实验三:半同步复制的实现 默认情况下,主从复制的结构中,主从节点之间复制操作是异步的,这样就有可能造成主从节点之间数据不一致的情况发生,所谓版同步复制就是指在一主多从的场景中,我们设定主节点与其中一个或多个从节点(一般是一个)的数据复制是同步进行的,从而保证了该从节点和主节点之间的数据的一致性。故当主节点发生故障时,就可以基于其他方式将该从节点提升为主…

    Linux干货 2016-11-24
  • 轻松实现源码打包安装[原创]

    通常我们在Linux/Unix下安装一平台时往往需要十几甚至更多安装包,这些源码包来源于网络、本地硬盘、移动设备。有时碰到网络不畅通或下载地址失效会带来很多麻烦,一个好方法便是将常用的软件包下载到本地硬盘存放。问题是久而久之连自己都不晓得哪些包才是适用的。现用makeself来实现自解压倒安装倒是一个很好的解决方案,下面以制作Func客户端安装包为例。 一、…

    Linux干货 2015-03-27
  • LVS负载均衡初接触

    Linux Cluster : Cluster : 计算机集合, 为解决某个特定问题组合起来形成的单个系统; Linux Cluster 类型 : LB : Load Balancing, 负载均衡;()HA : High Avaiibality, 高可用;( 通过冗余的方式让活动主机出现问题时取而代之, 并具有原主机一致的功能)HP : High Perf…

    Linux干货 2016-10-28
  • N22+北京zhangzhangzhang+第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 cp -r /etc/skel /home/tuser1    ls -ld /home/tuser1   &nb…

    Linux干货 2016-09-05
  • 第四周作业2

    #### 1、 复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 首先,利用cp命令将/etc/skel目录复制为/home/tuser1: “` [root@localhost ~]# cp -r /etc/skel /home/tuser1 “` 随…

    Linux干货 2018-03-24
  • 磁盘和文件系统创建

    磁盘结构:主要是由盘体、控制电路、接口部件等组成。盘体里面封装了多个盘片的腔体;控制电路包含硬盘BIOS、主控芯片和硬件缓存等单元;接口部件包含电源、数据接口主从跳线等。读取硬盘数据时,主轴电机带动盘片旋转,副轴电机带动磁头臂将磁头放到相应的数据存放的柱面和磁道上,再由磁头读出相应扇区中的数据。(图1-1) 磁道(track):每个盘面被划分成了多个同心圆环…

    Linux干货 2016-02-14

评论列表(1条)

  • stanley
    stanley 2015-12-15 22:52

    介绍的很详细,专业,赞