当我们拥有一个崭新的计算机的时候,第一步恐怕都是迫不及待的下载各种软件,看视频,听音乐等,这里的关键的一点是要有网络。现在的个人计算机大部分都是windows操作系统的,接入网络网络很简单,插上网线也许就能上网了,最麻烦不过找到网络和共享中心手动配置一个ip地址、网关地址和dns服务器就能上网了,当然这都是得益于图形化界面。但是现在很多的服务器都是linux操作系统且没有图形化的界面,这时候我们就需要了解怎样正确的给linux主机配置网络属性了,本次博客就来说说以正确的方式打开linux操作系统的网络属性配置(本次博客基于的发行版和版本:centOS7、centOS6.5)。

接入网络的两种方式

一、手动的指定

1.使用命令

一般是临时的修改,重启后失效,如:ifconfig、route、ip addr等。

2.修改配置文件

修改文件配置,永久有效,但是可能不能立即生效,需要重启服务。

二、动态获取

如果本地网路中存在DHCP服务,可以动态的获取到ip地址、网关地址、DNS服务器地址等。

常用的管理和配置命令

一、ifconfig

1.不加任何选项,查看处于活动状态下的接口,-a选项显示所有接口,包括inactive状态的接口:

[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr :0C::9F:AA:AD
inet addr:192.168.172.136 Bcast:192.168.172.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe9f:aaad/ Scope:Link
UP BROADCAST RUNNING MULTICAST MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (146.2 KiB) TX bytes: (28.5 KiB) lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::/ Scope:Host
UP LOOPBACK RUNNING MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (0.0 b) TX bytes: (0.0 b)
[root@localhost ~]# ifconfig -a
eth0 Link encap:Ethernet HWaddr :0C::9F:AA:AD
inet addr:192.168.172.136 Bcast:192.168.172.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe9f:aaad/ Scope:Link
UP BROADCAST RUNNING MULTICAST MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (150.3 KiB) TX bytes: (31.7 KiB) eth1 Link encap:Ethernet HWaddr :0C::9F:AA:B7
BROADCAST MULTICAST MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (0.0 b) TX bytes: (0.0 b) lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::/ Scope:Host
UP LOOPBACK RUNNING MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (0.0 b) TX bytes: (0.0 b)

接口的命名方式:

.传统的命令方式:
以太网:eth1,eth2...ethn #centos6较常见的命名方式
PPP网络:ppp1,ppp2...pppn
.可预测的命令方案
如果固件或者BIOS为主板上集成的设备提供的索引信息可以用,根据此索引进行命令,例如:eno1,eno2....enon;
如果固件或者BIOS为PCI-E扩展槽上所提供的索引信息可以用,根据此索引进行命令,例如:ens1,ens2...ensn;
如果硬件接口的物理位置信息可用,则根据此信息命令,如enp2s0
如果用户显示定义,也可以根据MAC地址命令,例如enx1232131231
.命名格式的组成
en:以太网
wl:无线网
ww:广域网
.名称类型
o<index>:集成设备的设备索引号
s<slot>:扩展槽的索引号
x<MAC>:基于MAC地址的命名
p<bus>s<slot>:基于总线槽的拓扑结构进行命名

接口命名方式

2. 配置接口ip地址掩码的两种方式:

ifconfig INTERFACE IP/MASK [up|down]      #up和down为可选项
ifconfig INTERFACE IP netmask NETMASK [up|down]

举例:

[root@localhost ~]# ifconfig eth1 192.168.1.1/ up
[root@localhost ~]#
[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr :0C::9F:AA:AD
inet addr:192.168.172.136 Bcast:192.168.172.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe9f:aaad/ Scope:Link
UP BROADCAST RUNNING MULTICAST MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (164.4 KiB) TX bytes: (42.2 KiB) eth1 Link encap:Ethernet HWaddr :0C::9F:AA:B7
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe9f:aab7/ Scope:Link
UP BROADCAST RUNNING MULTICAST MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (0.0 b) TX bytes: (398.0 b) lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::/ Scope:Host
UP LOOPBACK RUNNING MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (0.0 b) TX bytes: (0.0 b)

3.开启接口的杂合模式,这里就不先做太多的说明,后面博客中会说明:

[root@localhost ~]# ifconfig eth1 promisc
[root@localhost ~]#
[root@localhost ~]# ifconfig eth1
eth1 Link encap:Ethernet HWaddr :0C::9F:AA:B7
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe9f:aab7/ Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU: Metric: #这里多了一个PROMISC
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (2.9 KiB) TX bytes: (468.0 b)

4.新增和删除IPv6地址

ifconfig INTERFACE add addr/prefixlen
ifconfig INTERFACE del addr/prefixlen

举例:

[root@localhost ~]# ifconfig eth1 add :::::/  #新增一个IPV6地址
[root@localhost ~]#
[root@localhost ~]# ifconfig eth1
eth1 Link encap:Ethernet HWaddr :0C::9F:AA:B7
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: :::::/ Scope:Global
inet6 addr: fe80::20c:29ff:fe9f:aab7/ Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (6.4 KiB) TX bytes: (836.0 b)
[root@localhost ~]# ifconfig eth1 del :::::/ #删除ipv6地址
[root@localhost ~]#
[root@localhost ~]# ifconfig eth1
eth1 Link encap:Ethernet HWaddr :0C::9F:AA:B7
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe9f:aab7/ Scope:Link
UP BROADCAST RUNNING PROMISC MULTICAST MTU: Metric:
RX packets: errors: dropped: overruns: frame:
TX packets: errors: dropped: overruns: carrier:
collisions: txqueuelen:
RX bytes: (7.2 KiB) TX bytes: (1016.0 b)

如果在没有配置ipv6地址的情况下,我们会发现每个接口都有一个开头为fe80的ipv6地址,这个地址被称为链路本地的地址,其前64为都是固定的格式,后64是位是基于EUI-64生成的,通俗的来说就是基于MAC地址生成的,链路本地地址只能用户本地的通信,如果想要实现上网的功能,就必须要给接口配置一个全局的地址,也就是全球可聚合单播地址,配置的方式就如上,显示为Global。

可以给接口起别名配置多个IP地址:

[root@localhost ~]# ifconfig ens34: 192.168.179.130 netmask 255.255.255.0
[root@localhost ~]#
[root@localhost ~]# ifconfig
ens32: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 192.168.172.134 netmask 255.255.255.0 broadcast 192.168.172.255
inet6 fe80:::ed31:efad:25d0 prefixlen scopeid 0x20<link>
ether :0c::db:7f: txqueuelen (Ethernet)
RX packets bytes (12.2 MiB)
RX errors dropped overruns frame
TX packets bytes (2.0 MiB)
TX errors dropped overruns carrier collisions ens34: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 192.168.179.128 netmask 255.255.255.0 broadcast 192.168.179.255
ether :0c::db:7f: txqueuelen (Ethernet)
RX packets bytes (89.7 KiB)
RX errors dropped overruns frame
TX packets bytes (28.6 KiB)
TX errors dropped overruns carrier collisions ens34:: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 192.168.179.130 netmask 255.255.255.0 broadcast 192.168.179.255
ether :0c::db:7f: txqueuelen (Ethernet)

然后为别名添加配置文件即可,记得DEVICE为别名名称且BOOTPROTO:不支持动态获取地址。

注意:执行ifconfig的时候,命令执行后立即生效的,但是重启后失效!

二、route

1.查看路由条目

route -n #用数字表示,不加-n选项,可能会以主机名和其他的符号来显示地址

举例:

[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.172.0 * 255.255.255.0 U eth0
link-local * 255.255.0.0 U eth0
default 192.168.172.2 0.0.0.0 UG eth0
[root@localhost ~]#
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.172.0 0.0.0.0 255.255.255.0 U eth0
169.254.0.0 0.0.0.0 255.255.0.0 U eth0
0.0.0.0 192.168.172.2 0.0.0.0 UG eth0

2.添加路由条目

route add [-net|-host]  target [netmask Nm]  [gw GW] [[dev] If]

举例:

[root@localhost ~]# route add -net 100.100.100.0/  gw 192.168.1.1  #接口可省略
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
100.100.100.0 192.168.1.1 255.255.255.0 UG eth1
192.168.1.0 0.0.0.0 255.255.255.0 U eth1
192.168.172.0 0.0.0.0 255.255.255.0 U eth0
169.254.0.0 0.0.0.0 255.255.0.0 U eth0
0.0.0.0 192.168.172.2 0.0.0.0 UG eth0
[root@localhost ~]# route add default gw 192.168.1.1 dev eth1 #使用default参数创建默认路由
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
100.100.100.0 192.168.1.1 255.255.255.0 UG eth1
192.168.1.0 0.0.0.0 255.255.255.0 U eth1
192.168.172.0 0.0.0.0 255.255.255.0 U eth0
169.254.0.0 0.0.0.0 255.255.0.0 U eth0
0.0.0.0 192.168.1.1 0.0.0.0 UG eth1
0.0.0.0 192.168.172.2 0.0.0.0 UG eth0

3.删除路由

route del [-net|-host] target [gw GW] [netmask Nm] [[dev] If]

举例:

[root@localhost ~]# route del -net 100.100.100.0/
[root@localhost ~]# route del -net 0.0.0.0/ gw 192.168.1.1 #如果目的IP地址存在多个,可以指定网关地址,避免误删
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 0.0.0.0 255.255.255.0 U eth1
192.168.172.0 0.0.0.0 255.255.255.0 U eth0
169.254.0.0 0.0.0.0 255.255.0.0 U eth0
0.0.0.0 192.168.172.2 0.0.0.0 UG eth0

三、netstat命令

专门用来显示命令

1.显示路由表

netstat -rn
-r:显示内核路由表
-n:数字格式

举例:

[root@localhost ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.1.0 0.0.0.0 255.255.255.0 U eth1
192.168.172.0 0.0.0.0 255.255.255.0 U eth0
169.254.0.0 0.0.0.0 255.255.0.0 U eth0
0.0.0.0 192.168.172.2 0.0.0.0 UG eth0

2.显示网络连接

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相关连接
-w:raw socket相关连接
-l:处于监听状态的连接
-a:所有状态
-n:以数字格式显示ip和端口
-e:扩展格式
-p:显示相关进程及PID 常用组合:
-tan -uan -tnl -unl -tunlp

举例:

[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.0.0:* LISTEN
tcp 127.0.0.1: 0.0.0.0:* LISTEN
tcp 192.168.172.136: 192.168.172.1: ESTABLISHED
tcp ::: :::* LISTEN
tcp ::: :::* 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.0.0:*
[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.0.0:* LISTEN
tcp 127.0.0.1: 0.0.0.0:* LISTEN
tcp ::: :::* LISTEN
tcp ::: :::* LISTEN
[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.0.0:*
[root@localhost ~]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0.0.0.0: 0.0.0.0:* LISTEN /sshd
tcp 127.0.0.1: 0.0.0.0:* LISTEN /master
tcp ::: :::* LISTEN /sshd
tcp ::: :::* LISTEN /master
udp 0.0.0.0: 0.0.0.0:* /dhclient

3.显示接口的统计数据

netstat    {--interfaces|-I|-i}    [iface]   [--all|-a]   [--extend|-e]   [--verbose|-v]   [--program|-p]  [--numeric|-n]
所有接口的信息:netstat -i
指定的接口:netstat -I<INTERFACE>

举例:

[root@localhost ~]# netstat -i
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 BMRU
eth1 BMRU
lo LRU
[root@localhost ~]# netstat -Ieth1
Kernel Interface table
Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth1 BMRU

四、ifup和ifdown

开启或者关闭接口,通过配置文件来识别接口并完成配置,如果接口没有配置文件,则不能生效。

ifup INTERFACE
ifdown INTERFACE

五、ip

ip的功能很强大,这里只做一些常用的用法的介绍,具体可以见man手册。

NAME:show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
OBJECT := { link | addr | route | netns } #注意,在写命令的时候,OBJECT可以简写,各个OBJECT的子命令也可以简写

1. ip link:网络设备管理

ip link set:修改设备的属性
dev NAME:默认参数,指明要管理的设备,关键字dev可以省略;
{up|down}:开启或关闭设备
{multicast on|multicast off}:开启或关闭多播功能
{name NAME}:重命名接口,必须先将设备关闭
netns PID|netnsname:netns为名称空间,将接口移动到指定的网络名称空间
ip link show:查看设备的状态
ip link help:显示帮助信息

举例:

[root@localhost ~]# ip link set ens34 down  #关闭ens34
[root@localhost ~]# ip link set ens34 name eth34 #重命名
[root@localhost ~]#
[root@localhost ~]# ifconfig -a
ens32: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 192.168.172.134 netmask 255.255.255.0 broadcast 192.168.172.255
inet6 fe80:::ed31:efad:25d0 prefixlen scopeid 0x20<link>
ether :0c::db:7f: txqueuelen (Ethernet)
RX packets bytes (9.6 MiB)
RX errors dropped overruns frame
TX packets bytes (1.1 MiB)
TX errors dropped overruns carrier collisions eth34: flags=<BROADCAST,MULTICAST> mtu
ether :0c::db:7f: txqueuelen (Ethernet)
RX packets bytes (53.8 KiB)
RX errors dropped overruns frame
TX packets bytes (15.2 KiB)
TX errors dropped overruns carrier collisions
[root@localhost ~]# ip link set eth34 name ens34
[root@localhost ~]# ip link set ens34 up
[root@localhost ~]# ifconfig
ens32: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 192.168.172.134 netmask 255.255.255.0 broadcast 192.168.172.255
inet6 fe80:::ed31:efad:25d0 prefixlen scopeid 0x20<link>
ether :0c::db:7f: txqueuelen (Ethernet)
RX packets bytes (9.6 MiB)
RX errors dropped overruns frame
TX packets bytes (1.1 MiB)
TX errors dropped overruns carrier collisions ens34: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 192.168.179.128 netmask 255.255.255.0 broadcast 192.168.179.255
inet6 fe80:::d2dc:: prefixlen scopeid 0x20<link>
ether :0c::db:7f: txqueuelen (Ethernet)
RX packets bytes (54.4 KiB)
RX errors dropped overruns frame
TX packets bytes (16.3 KiB)
TX errors dropped overruns carrier collisions

2.ip netns:管理网络名称空间(manage network namespaces)

ip netns list:列出所有的网络名称空间
ip netns add NAME:创建指定的网络名称空间
ip netns del NAME:删除指定的网络名称空间
ip netns exec NAME COMMAND:在指定的netns中运行命令

举例:

[root@localhost ~]# ip netns add mynetns  #创建了一个名称空间
[root@localhost ~]#
[root@localhost ~]# ip netns list #查看名称空间
mynetns
[root@localhost ~]# ip link set ens34 netns mynetns #将ens34绑定到名称空间mynetns
[root@localhost ~]# ifconfig -a #这时候我们会发现设备没有了
ens32: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 192.168.172.134 netmask 255.255.255.0 broadcast 192.168.172.255
inet6 fe80:::ed31:efad:25d0 prefixlen scopeid 0x20<link>
ether :0c::db:7f: txqueuelen (Ethernet)
RX packets bytes (9.7 MiB)
RX errors dropped overruns frame
TX packets bytes (1.1 MiB)
TX errors dropped overruns carrier collisions lo: flags=<UP,LOOPBACK,RUNNING> mtu
inet 127.0.0.1 netmask 255.0.0.0
inet6 :: prefixlen scopeid 0x10<host>
loop txqueuelen (Local Loopback)
RX packets bytes (6.1 KiB)
RX errors dropped overruns frame
TX packets bytes (6.1 KiB)
TX errors dropped overruns carrier collisions
[root@localhost ~]# ip link show
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN mode DEFAULT qlen
link/loopback ::::: brd :::::
: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP mode DEFAULT qlen
link/ether :0c::db:7f: brd ff:ff:ff:ff:ff:ff
[root@localhost ~]# ip netns exec mynetns ip link show #只有在名称空间内执行命令才能看到,使用ifconfig无效
: lo: <LOOPBACK> mtu qdisc noop state DOWN mode DEFAULT qlen
link/loopback ::::: brd :::::
: ens34: <BROADCAST,MULTICAST> mtu qdisc noop state DOWN mode DEFAULT qlen
link/ether :0c::db:7f: brd ff:ff:ff:ff:ff:ff
[root@localhost ~]# ip netns exec mynetns ip link set ens34 up #启用接口
[root@localhost ~]# ip netns exec mynetns ip link show
: lo: <LOOPBACK> mtu qdisc noop state DOWN mode DEFAULT qlen
link/loopback ::::: brd :::::
: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP mode DEFAULT qlen
link/ether :0c::db:7f: brd ff:ff:ff:ff:ff:ff

3.ip address:协议地址管理(protocol address management)

ip address IFADDR dev INTERFACE:新增地址,一个接口可以有多个地址
ip address delete IFADDR dev INTERFACE:删除接口的地址
ip address show [INTERFACE]:显示接口地址
ip address flush dev INTERFACE:删除接口地址

举例:

[root@localhost ~]# ip address flush ens34
[root@localhost ~]# ifconfig
ens32: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 192.168.172.134 netmask 255.255.255.0 broadcast 192.168.172.255
inet6 fe80:::ed31:efad:25d0 prefixlen scopeid 0x20<link>
ether :0c::db:7f: txqueuelen (Ethernet)
RX packets bytes (9.8 MiB)
RX errors dropped overruns frame
TX packets bytes (1.2 MiB)
TX errors dropped overruns carrier collisions ens34: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
ether :0c::db:7f: txqueuelen (Ethernet)
RX packets bytes (56.1 KiB)
RX errors dropped overruns frame
TX packets bytes (18.5 KiB)
TX errors dropped overruns carrier collisions
[root@localhost ~]# ip address add 192.168.179.22/ dev ens34
[root@localhost ~]#
[root@localhost ~]# ifconfig ens34
ens34: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
inet 192.168.179.22 netmask 255.255.255.0 broadcast 0.0.0.0
ether :0c::db:7f: txqueuelen (Ethernet)
RX packets bytes (56.4 KiB)
RX errors dropped overruns frame
TX packets bytes (18.7 KiB)
TX errors dropped overruns carrier collisions
[root@localhost ~]# ip address delete 192.168.179.22/ dev ens34
[root@localhost ~]# ifconfig ens34
ens34: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
ether :0c::db:7f: txqueuelen (Ethernet)
RX packets bytes (57.1 KiB)
RX errors dropped overruns frame
TX packets bytes (19.3 KiB)
TX errors dropped overruns carrier collisions
[root@localhost ~]# ip address show
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN qlen
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
valid_lft forever preferred_lft forever
inet6 ::/ scope host
valid_lft forever preferred_lft forever
: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :0c::db:7f: brd ff:ff:ff:ff:ff:ff
inet 192.168.172.134/ brd 192.168.172.255 scope global dynamic ens32
valid_lft 1180sec preferred_lft 1180sec
inet6 fe80:::ed31:efad:25d0/ scope link
valid_lft forever preferred_lft forever
: ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :0c::db:7f: brd ff:ff:ff:ff:ff:ff

4.ip route:路由表管理(routing table management)

ip route add  TYPE PREFIX  via GW  [dev  IFACE]  [src SOURCE_IP]:新增一条路由
ip route delete TYPE PREFIX:删除路由
ip route show [TYPE PRIFIX]:查看路由
ip route flush:清空路由
ip route get TYPE PREFIX:获得一个单独的路由信息
详见帮助信息:man ip route

举例:

[root@localhost ~]# ip route show
default via 192.168.172.2 dev ens32 proto static metric
192.168.172.0/ dev ens32 proto kernel scope link src 192.168.172.134 metric
192.168.179.0/ dev ens34 proto kernel scope link src 192.168.179.128
192.168.179.0/ dev ens34 proto kernel scope link src 192.168.179.128 metric
[root@localhost ~]#
[root@localhost ~]# ip route add 100.100.100.0/ via 192.168.179.128 dev ens34
[root@localhost ~]#
[root@localhost ~]# ip route show
default via 192.168.172.2 dev ens32 proto static metric
100.100.100.0/ via 192.168.179.128 dev ens34
192.168.172.0/ dev ens32 proto kernel scope link src 192.168.172.134 metric
192.168.179.0/ dev ens34 proto kernel scope link src 192.168.179.128
192.168.179.0/ dev ens34 proto kernel scope link src 192.168.179.128 metric
[root@localhost ~]# ip route show 100.100.100.0/
100.100.100.0/ via 192.168.179.128 dev ens34
[root@localhost ~]# ip route get 100.100.100.0/
100.100.100.0 dev ens34 src 192.168.179.128
cache

六、ss命令

ss和netstat的功能类似,但是比netstat的功能强大。

net [options] [FILTER]
options:
-t:TCP的相关连接
-u:UDP的相关连接
-w:raw socket的相关连接
-l:监听状态的连接
-a:所有状态的连接
-n:数字格式显示
-p:相关的程序及其PID
-e:扩展格式信息
-m:内存用量
-o:计时器信息
FILTER:
[ state TCP-STATE ] [ EXPRESSION ]
TCP-STATE:
LISTEN:监听
ESTABLISEHD:已经建立连接
FIN_WAIT_1:
FIN_WAIT_2:
SYN_SENT:
SYN_RECV:
CLOSED:
EXPRESSION:
dport:目的端口
sport:源端口
...

举例:

[root@localhost ~]# ss -tan
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN *: *:*
LISTEN 127.0.0.1: *:*
ESTAB 192.168.172.134: 192.168.172.1:
LISTEN ::: :::*
LISTEN ::: :::*
[root@localhost ~]# ss -tanp
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN *: *:* users:(("sshd",pid=,fd=))
LISTEN 127.0.0.1: *:* users:(("master",pid=,fd=))
ESTAB 192.168.172.134: 192.168.172.1: users:(("sshd",pid=,fd=))
LISTEN ::: :::* users:(("sshd",pid=,fd=))
LISTEN ::: :::* users:(("master",pid=,fd=))
[root@localhost ~]# ss -uan
State Recv-Q Send-Q Local Address:Port Peer Address:Port
ESTAB 192.168.172.134: 61.216.153.106:
UNCONN 127.0.0.1: *:*
UNCONN *: *:*
UNCONN *: *:*
UNCONN *: *:*
UNCONN *: *:*
UNCONN ::: :::*
UNCONN ::: :::*
UNCONN ::: :::*
[root@localhost ~]# ss -tan '( dport = :22 or sport = :22 )'
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN *: *:*
ESTAB 192.168.172.134: 192.168.172.1:
LISTEN ::: :::*
[root@localhost ~]#
[root@localhost ~]# ss -tan state ESTABLISHED
Recv-Q Send-Q Local Address:Port Peer Address:Port
192.168.172.134: 192.168.172.1:

七、配置主机名

hostname

hostname:查看主机名
hostname HOSTNAME:修改主机名,重启后无效

在centos7中:

hostnamectl status:显示当前主机名等信息
hostnamectl set-hostname HOSTNAME:设置主机名,永久有效

网络属性配置文件

一、主机名的配置文件

/etc/sysconfig/network (在centos7有这个文件,但是为空,因为在centos7中新增了hostnamectl  set-hostname,可以设置永久有效的主机名了):

centos6:
[root@localhost ~]# vim /etc/sysconfig/network NETWORKING=yes
HOSTNAME=localhost.localdomain

注意:修改配置文件不会立即生效,但是以后会一直有效。

二、DNS的配置文件

/etc/hosts:负责ip地址与域名快速解析的文件,hosts文件包含了IP地址和主机名之间的映射,在域名解析的过程中,会先查看hosts文件中是否有域名和ip地址之间的映射关系,如果没有则向DNS服务器发起域名解析的请求:

[root@frankhost ~]# vim /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
:: localhost localhost.localdomain localhost6 localhost6.localdomain6

/etc/resolv.conf:配置的是DNS服务器的地址,当主机要访问某个域名的时候,就会向resolv.conf的中的DNS服务器发起解析的请求:

[root@localhost ~]# vim /etc/resolv.conf 

# Generated by NetworkManager
search localdomain
nameserver 192.168.172.2
nameserver 192.168.179.1

三、接口和路由的配置文件

/etc/sysconfig/network-scripts/ifcfg-IFACE:通过大量的参数来定义接口的属性,可以通过vim等文本编辑器直接修改:

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

TYPE=Ethernet    #接口类型
BOOTPROTO=dhcp #激活此接口使用什么协议来配置接口的属性,有dhcp、bootp、static、none等
DEFROUTE=yes #是否以此接口创建默认路由
PEERDNS=yes #如果BOOTPROTO的值为DHCP,是否允许dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes #是否初始化IPV6
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32 #此配置文件对于的设备名称
UUID=a3471195-913d-4e38-b521-47ffa1859ffe #此设备的唯一标识
DEVICE=ens32 #此设备文件对于的设备名称
ONBOOT=yes

除了以上的一些参数之外还有其他一些比较重要的参数:

DNS1:DNS指向,最多可以有三个
DOMAIN:DNS搜索域
IPADDR:ip地址
NETMASK:子网掩码;在centos7中支持使用PREFIX以长度方式指明子网掩码
GATEWAY:默认网关
USERCTL:是否允许普通用户控制
HWADDR:设备的MAC地址
NM_CONTROLLED:是否使用NetworkManager服务来控制接口

/etc/sysconfig/network-scripts/route-IFACE:针对每个接口都有其对应的路由配置文件,有两种配置方式,但是不可以混用:
(1)每行配置一条路由:

target/prefix via GW

(2)每三行配置一条路由:

ADDRESS#=target
NETWORK#=mask
GATEWAY#=NEXTHOP
#为数字0.1.2.....

举例:

[root@frankhost ~]# vim /etc/sysconfig/network-scripts/route-eth0

100.100.100.0/ via 192.168.172.136
[root@frankhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
100.100.100.0 192.168.172.136 255.255.255.0 UG eth0
192.168.172.0 0.0.0.0 255.255.255.0 U eth0
169.254.0.0 0.0.0.0 255.255.0.0 U eth0
0.0.0.0 192.168.172.2 0.0.0.0 UG [root@frankhost ~]# vim /etc/sysconfig/network-scripts/route-eth0 ADDRESS0=192.168.1.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.172.136
[root@frankhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 192.168.172.136 255.255.255.0 UG eth0
192.168.172.0 0.0.0.0 255.255.255.0 U eth0
169.254.0.0 0.0.0.0 255.255.0.0 U eth0
0.0.0.0 192.168.172.2 0.0.0.0 UG eth0

图像化的方式配置网络属性

在centos6中:

执行system-config-network或者setup命令:

安装:yum -y install system-config-network-tui

安装:yum -y install setuptool

setup界面:

在centos7中:
执行nmtui命令

该怎么用就不多说了,毕竟是傻瓜式的配置,永久有效。

在centos7中有一个很强大也很复杂的网络配置管理命令:nmcli,这里暂时就不做介绍了,以后有机会单独写一篇博客,nmcli参考链接:https://linux.cn/article-6241-1.html,或者请看man手册。

【linux相识相知】网络属性配置的更多相关文章

  1. Linux基础入门之网络属性配置

    Linux基础入门之网络属性配置 摘要 Linux网络属性配置,最根本的就是ip和子网掩码(netmask),子网掩码是用来让本地主机来判断通信目标是否是本地网络内主机的,从而采取不同的通信机制. L ...

  2. Linux网络属性配置命令和管理详解

    一.Linux网络属性配置 1.Linux主机接入到网络方式 IP/NETMASK:实现本地网络通信 路由(网关):可以进行跨网络通信 DNS服务器地址:基于主机名的通信,Linux可以有三个DNS地 ...

  3. CentOS(六)--Linux系统的网络环境配置

    Linux系统下的网络环境配置,Linux.Unix就是网络的世界,所以在Linux系统中如何配置网络环境变量是至关重要的,这里将会给出3种Linux系统下网络环境配置的方法! 在配置网络环境之前,首 ...

  4. Linux网络属性配置

    目录 IP地址分类 如何将Linux主机接入到网络中 网络接口的命名方式 ifcfg系列命令 如何配置主机名 如何配置DNS服务器指向 iproute2系列命令 Linux管理网络服务 永久生效配置路 ...

  5. centos和ubuntu的网络属性配置

        一. centos的网络配置    1.  修改 /etc/sysconfig/network-scripts/ifcfg-IFACE:             DEVICE:此配置文件应用到 ...

  6. 【Linux相识相知】yum的配置使用和程序包的编译安装

    在上一篇博客中,写到了如何使用rpm命令来安装.卸载软件等,但是大家都知道,各个软件包之间可能存在依赖关系,如果安装某个软件需要额外的依赖其他若干的包,那么我们就需要将其他额外的包一个一个的安装上去, ...

  7. 十八、centos7网络属性配置

    一.为什么需要这个 服务器通常有多块网卡,有板载集成的,同时也有插在PCIe插槽的.Linux系统的命名原来是eth0,eth1这样的形式,但是这个编号往往不一定准确对应网卡接口的物理顺序.为解决这类 ...

  8. 【linux相识相知】用户及权限管理

    linux系统是多用户(Multi-users)和多任务(Multi-tasks)的,这样的目的是为了一台linux主机可以给很多用户提供服务同时运行多种服务,但是我们是怎么区分每个用户呢?作为一个管 ...

  9. 【linux相识相知】磁盘分区及文件系统管理详解

    磁盘,提供持久的数据存储,它不像我们的内存,如果突然断电了,在内存中的数据一般都会被丢掉了,内存中的数据在保存的时候,会被写到硬盘里面,磁盘也是一种I/O设备. 我们都知道磁盘分区完成之后,还要进行格 ...

随机推荐

  1. ubuntu14.10,安装ksnapshot(截图软件)

    Linux:ubuntu14.10 ubuntu软件中心对它的描述:KSnapshot captures images of the screen.  It can capture the whole ...

  2. SpringMVC 入门程序

    SpringMVC是什么 SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于 Spring FrameWork 的后续产品,已经融合在 Spr ...

  3. luoguP4868 Preprefix sum

    https://www.luogu.org/problemnew/show/P4868 线段树上加等差数列,基础区间修改单点查询 等差数列具有可加性,当在同一段区间内时,首项相加公差相加即可 #inc ...

  4. 2018数学建模A题优秀论文:高温作业专用服装设计

    高温作业专用服装设计 摘 要 本文针对多层材料的高温作业服装的传热问题进行研究,综合考虑多种传热方式建立传热模型,并以此模型为基础解决了服装设计中各层材料最佳厚度的问题. 对于问题一,要求在热物性系数 ...

  5. cp命令覆盖不提示

    参数说明 -i, --interactive prompt before overwrite (overrides a previous -n option)   #文件存在是,交互式提示是否覆盖 - ...

  6. PHP简单实现一言 / 随机一句功能

    很多网站都喜欢在页面中加个一言,不过一般都是调用的第三方api.其实,使用万能的php能用短短的几行代码就实现该功能! 将下列代码复制并粘贴到 api.php 中保存,你的专属“一言” API 就搭建 ...

  7. 获取当前按钮或者html的ID名称

    今天做的上传图片,点击图片删除. 随机给图片id,获取图片id,然后删除图片. 由于图片id是随机的,用点击img或者点击class,获取id都不行,最后用onclick事件获取. js代码如下: $ ...

  8. nginx关闭默认站点/空主机头(禁止IP直接访问、防止域名恶意解析)

    监控时做了负载均衡,所以只能让nginx指定域名访问,那我们就可以防止因为域名不对跳到默认的页面去. curl  -I   -H  “host:域名”   --include   https://19 ...

  9. Python第一天学习成果

    1.变成可执行程序,在开头需加#!/usr/bin/env python找解释器 2.Python不支持常量,但建议用全大写就表明是常量 3.Unicode:2字节 ASCII:1字节 UTF-8(可 ...

  10. origin横纵坐标颠倒

    origin默认是只能多个纵坐标,不能多个横坐标,所以这种情况只能先作成多个Y,然后像这样exchange一下.