Linux网络属性管理

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 -n 命令,会显示所有路由信息:

[root@localhost ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0       192.168.1.1       0.0.0.0         UG    100    0    0 eno16777736

192.168.1.0     0.0.0.0         255.255.255.0     U     100    0    0 eno16777736

使用route添加主机路由:

[root@localhost ~]# route add -host 192.168.10.3 gw 192.168.1.1 dev eno16777736 

# -host:添加主机路由;gw:gatway;eno16777736:网络接口名;

[root@localhost ~]# route -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0       192.168.1.1      0.0.0.0         UG    100    0     0 eno16777736

192.168.1.0    0.0.0.0         255.255.255.0     U     100    0     0 eno16777736

192.168.10.3   192.168.1.1       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 -n

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

0.0.0.0       192.168.1.1       0.0.0.0         UG    100  0     0 eno16777736

192.168.1.0     0.0.0.0         255.255.255.0     U     100  0     0 eno16777736

192.168.2.0     192.168.1.1      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 del -host 192.168.1.3

删除网络路由,默认路由同理

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

3. netstat命令

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

-t: 查看tcp连接

-u:查看udp连接

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

-a:显示所有状态

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

常用选项组合:

[root@localhost ~]# netstat -tan  查看所有TCP连接状态

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 192.168.1.200:22           192.168.1.108:5141      ESTABLISHED

tcp6  0     0 :::22                   :::*                LISTEN     

tcp   0     0 ::1:25                  :::*                LISTEN     

[root@localhost ~]# netstat -uan  查看所有UDP连接状态

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address           Foreign Address         State      

udp   0     0   127.0.0.1:323           0.0.0.0:*                          

udp6  0     0   ::1:323                 :::*                              

4. ip命令的使用方法:

ip [ OPTIONS ] OBJECT { COMMAND | help }

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

每个OBJECT对应不同的COMMAND;

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

如:man ip link;

ip link help;

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

[root@localhost ~]# ip link set 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 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 与netstat用法差不多。

   ss [OPTION]… [FILTER]

选项:

  -t: tcp协议相关

      -u: udp协议相关

  -w: 裸套接字相关

  -x:unix sock相关

  -l: listen状态的连接

  -a: 所有

  -n: 数字格式

  -p: 相关的程序及PID

  -e: 扩展的信息

  -m:内存用量

  -o:计时器信息

       FILTER := [ state TCP-STATE ] [ EXPRESSION ]

   如:[root@localhost ~]# ss state established 'dport = :ssh or sport = :ssh'

      [root@localhost ~]# ss state established 'dport = :22 or sport = :22'

      [root@localhost ~]# ss state time-wait

6.nmcli命令:NetworkManager Command Line,此命令所做的修改会永久有效,不需要再修改配置文件。

nmcli [ OPTIONS ] OBJECT { COMMAND | help }

其中,OPTIONS不常用。

OBJECT是必须项,常用的有:

 1)、general 注意用于查看网络状态,主机名等

nmcli general help:查看nmcli general帮助;

[root@localhost network-scripts]# nmcli general

# 查看网络接口状态;

STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN 

connected full enabled enabled enabled enabled 

[root@localhost network-scripts]# nmcli g status

# general可以简写为g;

STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN 

connected full enabled enabled enabled enabled 

[root@localhost ~]# nmcli general hostname

# 查看主机名

localhost.localdomain

[root@localhost ~]# nmcli general hostname mylinux

# 修改主机名,注意将要修改的主机名作为参数传递进来;会永久生效

 2)、connection

nmcli conn help 查看帮助

nmcli conn show 显示所有连接

[root@localhost ~]# nmcli conn modify eno16777736 ipv4.addresses 192.168.1.108/24 修改一个IP及MASK;

[root@localhost ~]# nmcli conn modify eno16777736 +ipv4.addresses 192.168.1.108/24 添加一个IP及MASK;

[root@localhost ~]# nmcli conn modify eno16777736 -ipv4.addresses 192.168.1.108/24 减去一个IP及MASK;

说明:ipv4.addresses为<setting>.<property>格式,可以man nm-settings查看所有可用组合格式。

注意:对connection所做的所有修改,均需重启connection生效,重启方法:

[root@localhost ~]# nmcli con down eno16777736; nmcli con up eno16777736

 3)、device 主要用于查看网络信息

[root@mylinux ~]# nmcli device status

DEVICE TYPE STATE CONNECTION 

eno16777736 ethernet connected eno16777736 

lo loopback unmanaged — 

[root@mylinux ~]# nmcli device show

GENERAL.DEVICE: eno16777736

GENERAL.TYPE: ethernet

GENERAL.HWADDR: 00:0C:29:DF:39:4E

GENERAL.MTU: 1500

GENERAL.STATE: 100 (connected)

GENERAL.CONNECTION: eno16777736

GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/8

WIRED-PROPERTIES.CARRIER: on

IP4.ADDRESS[1]: 192.168.1.105/24

IP4.ADDRESS[2]: 192.168.1.108/24

IP4.GATEWAY: 192.168.1.33

IP4.DNS[1]: 10.64.101.209

IP4.DNS[2]: 10.64.102.209

IP6.ADDRESS[1]: fe80::20c:29ff:fedf:394e/64

IP6.GATEWAY: 

GENERAL.DEVICE: lo

GENERAL.TYPE: loopback

GENERAL.HWADDR: 00:00:00:00:00:00

GENERAL.MTU: 65536

GENERAL.STATE: 10 (unmanaged)

GENERAL.CONNECTION: —

GENERAL.CON-PATH: —

IP4.ADDRESS[1]: 127.0.0.1/8

IP4.GATEWAY: 

IP6.ADDRESS[1]: ::1/128

# 注意status和show命令显示的信息不一样。

 4)、networking 网络总开关

nmcli networking on 或者 off。

Linux除了提供命令行来管理网络接口之外,还提供了图形界面管理网络接口:

你可以直接在命令行中输入命令名称打开其操作界面。

常用的有:

nmtui

system-config-network-tui

这两个工具就不详细介绍了~~~

    

其次:使用配置文件方法介绍

linux下配置网络的方法还可以通过修改配置文件和使用nmcli命令来完成:

1. 修改配置文件:

 1)、网络接口的配置文件为:/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME

配置文件中可以修改的项有:

DEVICE: 此配置文件应用到的设备, 应于IFACE名一致

HWADDR: MAC地址

BOOTPROTO: 激活设备地址配置协议, dhcp, static, none, bootp

NM_CONTROLLED: NM是networkmanager的缩写; 此网卡是否接受NM控制; CentOS 6上建议为no

ONBOOT: 系统引导时是否激活此设备; yes|no

TYPE: 接口类型; Ethernet, Bridge;

UUID: 设备唯一标识

IPADDR: 指明IP地址(主地址)

NETMASK: 子网掩码

GATWAY: 默认网关

DNS1: 第一个DNS服务器地址

DNS2:

DNS3:

USERCTL: 普通用户是否可控制此设备; 尽量不允许

PEERDNS: 如果BOOPPROTO的值为dhcp, 是否运行dhcp服务器分配的DNS直接覆盖配置文件的设置

2)、路由配置文件:/etc/sysconfig/network-scripts/ifcfg-INTERFACE_NAME

 两种定义方式:

1. TARGET via GW

TARGET:目标IP

GW:网关

2. 每三行定义一条路由

ADDRESS#=TARGET

NETMASK#=mask

GATEWAY#=GW

注:#为数字,表示第#组配置。

修改完成配置文件需要重启网络服务才能生效:service network restart。

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

(0)
chronychrony
上一篇 2016-05-29
下一篇 2016-05-29

相关推荐

  • ftp服务器介绍与配置

    一、 ftp服务,File Transfer Protocal 文件传输协议      1. ftp基于tcp协议,C/S架构          Server: wu-ftpd, proftpd ,pureftp,vsf…

    Linux干货 2015-06-21
  • PHP异常处理详解

    PHP异常处理详解          异常处理(又称为错误处理)功能提供了处理程序运行时出现的错误或异常情况的方法。   异常处理通常是防止未知错误产生所采取的处理措施。异常处理的好处是你不用再绞尽脑汁去考虑各种错误,这为处理某一类错误提供了一个很有效的方法,使编程效率大大提高。当异常被触发时,通常会发生:&…

    Linux干货 2015-06-02
  • 第七周作业

    第七周 1,创建一个10G分区,并格式化为ext4文件系统;(1) 要求其block大小为2048,预留空间百分比为2,卷标为MYDATA,默认挂载属性包含acl;(2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; [root@www ~]# fdisk /dev/sda <————-fd…

    Linux干货 2017-09-03
  • yum初步入门

                             yum工具是为提高RPM软件安装性而开发的一种软件包管理器,是由pyt…

    Linux干货 2015-04-01
  • Linux基于PXE实现系统全自动无人值守安装

    前言 在生产环境中,我们时常会需要在多台客户端主机或服务器安装操作系统,如果每一台都去手动安装,费时费力,显然是不现实的。那么,如何高效的完成此类工作呢?文将讲解如何实现Linux系统的全自动无人值守安装。 提供PXE服务所需安装包 dhcp:动态主机配置协议,给客户端提供ip地址 tftp-server:tftp服务器端,提供系统安装所需文件 xinetd…

    Linux干货 2015-04-01
  • locate、find命令使用总结

    一、简介    在linux系统中存在"一切皆文件"的说法,这就足以说明文件的重要性,因此查找文件也是我们必须要掌握的技能。这时候熟练使用locate、find命令也就显得至关重要。尤其是find命令常用于日常工作中如安装完某个软件之后要查看这些软件的安装配置路径,或是需要按指定条件直接查找我们需要操作的文件。因此更需…

    Linux干货 2015-08-31