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

接入网络的两种方式

一、手动的指定

1.使用命令

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

2.修改配置文件

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

二、动态获取

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

常用的管理和配置命令

一、ifconfig

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

  1. [root@localhost ~]# ifconfig
  2. eth0 Link encap:Ethernet HWaddr :0C::9F:AA:AD
  3. inet addr:192.168.172.136 Bcast:192.168.172.255 Mask:255.255.255.0
  4. inet6 addr: fe80::20c:29ff:fe9f:aaad/ Scope:Link
  5. UP BROADCAST RUNNING MULTICAST MTU: Metric:
  6. RX packets: errors: dropped: overruns: frame:
  7. TX packets: errors: dropped: overruns: carrier:
  8. collisions: txqueuelen:
  9. RX bytes: (146.2 KiB) TX bytes: (28.5 KiB)
  10.  
  11. lo Link encap:Local Loopback
  12. inet addr:127.0.0.1 Mask:255.0.0.0
  13. inet6 addr: ::/ Scope:Host
  14. UP LOOPBACK RUNNING MTU: Metric:
  15. RX packets: errors: dropped: overruns: frame:
  16. TX packets: errors: dropped: overruns: carrier:
  17. collisions: txqueuelen:
  18. RX bytes: (0.0 b) TX bytes: (0.0 b)
  19. [root@localhost ~]# ifconfig -a
  20. eth0 Link encap:Ethernet HWaddr :0C::9F:AA:AD
  21. inet addr:192.168.172.136 Bcast:192.168.172.255 Mask:255.255.255.0
  22. inet6 addr: fe80::20c:29ff:fe9f:aaad/ Scope:Link
  23. UP BROADCAST RUNNING MULTICAST MTU: Metric:
  24. RX packets: errors: dropped: overruns: frame:
  25. TX packets: errors: dropped: overruns: carrier:
  26. collisions: txqueuelen:
  27. RX bytes: (150.3 KiB) TX bytes: (31.7 KiB)
  28.  
  29. eth1 Link encap:Ethernet HWaddr :0C::9F:AA:B7
  30. BROADCAST MULTICAST MTU: Metric:
  31. RX packets: errors: dropped: overruns: frame:
  32. TX packets: errors: dropped: overruns: carrier:
  33. collisions: txqueuelen:
  34. RX bytes: (0.0 b) TX bytes: (0.0 b)
  35.  
  36. lo Link encap:Local Loopback
  37. inet addr:127.0.0.1 Mask:255.0.0.0
  38. inet6 addr: ::/ Scope:Host
  39. UP LOOPBACK RUNNING MTU: Metric:
  40. RX packets: errors: dropped: overruns: frame:
  41. TX packets: errors: dropped: overruns: carrier:
  42. collisions: txqueuelen:
  43. RX bytes: (0.0 b) TX bytes: (0.0 b)

接口的命名方式:

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

接口命名方式

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

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

举例:

  1. [root@localhost ~]# ifconfig eth1 192.168.1.1/ up
  2. [root@localhost ~]#
  3. [root@localhost ~]# ifconfig
  4. eth0 Link encap:Ethernet HWaddr :0C::9F:AA:AD
  5. inet addr:192.168.172.136 Bcast:192.168.172.255 Mask:255.255.255.0
  6. inet6 addr: fe80::20c:29ff:fe9f:aaad/ Scope:Link
  7. UP BROADCAST RUNNING MULTICAST MTU: Metric:
  8. RX packets: errors: dropped: overruns: frame:
  9. TX packets: errors: dropped: overruns: carrier:
  10. collisions: txqueuelen:
  11. RX bytes: (164.4 KiB) TX bytes: (42.2 KiB)
  12.  
  13. eth1 Link encap:Ethernet HWaddr :0C::9F:AA:B7
  14. inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
  15. inet6 addr: fe80::20c:29ff:fe9f:aab7/ Scope:Link
  16. UP BROADCAST RUNNING MULTICAST MTU: Metric:
  17. RX packets: errors: dropped: overruns: frame:
  18. TX packets: errors: dropped: overruns: carrier:
  19. collisions: txqueuelen:
  20. RX bytes: (0.0 b) TX bytes: (398.0 b)
  21.  
  22. lo Link encap:Local Loopback
  23. inet addr:127.0.0.1 Mask:255.0.0.0
  24. inet6 addr: ::/ Scope:Host
  25. UP LOOPBACK RUNNING MTU: Metric:
  26. RX packets: errors: dropped: overruns: frame:
  27. TX packets: errors: dropped: overruns: carrier:
  28. collisions: txqueuelen:
  29. RX bytes: (0.0 b) TX bytes: (0.0 b)

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

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

4.新增和删除IPv6地址

  1. ifconfig INTERFACE add addr/prefixlen
  2. ifconfig INTERFACE del addr/prefixlen

举例:

  1. [root@localhost ~]# ifconfig eth1 add :::::/ #新增一个IPV6地址
  2. [root@localhost ~]#
  3. [root@localhost ~]# ifconfig eth1
  4. eth1 Link encap:Ethernet HWaddr :0C::9F:AA:B7
  5. inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
  6. inet6 addr: :::::/ Scope:Global
  7. inet6 addr: fe80::20c:29ff:fe9f:aab7/ Scope:Link
  8. UP BROADCAST RUNNING PROMISC MULTICAST MTU: Metric:
  9. RX packets: errors: dropped: overruns: frame:
  10. TX packets: errors: dropped: overruns: carrier:
  11. collisions: txqueuelen:
  12. RX bytes: (6.4 KiB) TX bytes: (836.0 b)
  13. [root@localhost ~]# ifconfig eth1 del :::::/ #删除ipv6地址
  14. [root@localhost ~]#
  15. [root@localhost ~]# ifconfig eth1
  16. eth1 Link encap:Ethernet HWaddr :0C::9F:AA:B7
  17. inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
  18. inet6 addr: fe80::20c:29ff:fe9f:aab7/ Scope:Link
  19. UP BROADCAST RUNNING PROMISC MULTICAST MTU: Metric:
  20. RX packets: errors: dropped: overruns: frame:
  21. TX packets: errors: dropped: overruns: carrier:
  22. collisions: txqueuelen:
  23. RX bytes: (7.2 KiB) TX bytes: (1016.0 b)

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

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

  1. [root@localhost ~]# ifconfig ens34: 192.168.179.130 netmask 255.255.255.0
  2. [root@localhost ~]#
  3. [root@localhost ~]# ifconfig
  4. ens32: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
  5. inet 192.168.172.134 netmask 255.255.255.0 broadcast 192.168.172.255
  6. inet6 fe80:::ed31:efad:25d0 prefixlen scopeid 0x20<link>
  7. ether :0c::db:7f: txqueuelen (Ethernet)
  8. RX packets bytes (12.2 MiB)
  9. RX errors dropped overruns frame
  10. TX packets bytes (2.0 MiB)
  11. TX errors dropped overruns carrier collisions
  12.  
  13. ens34: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
  14. inet 192.168.179.128 netmask 255.255.255.0 broadcast 192.168.179.255
  15. ether :0c::db:7f: txqueuelen (Ethernet)
  16. RX packets bytes (89.7 KiB)
  17. RX errors dropped overruns frame
  18. TX packets bytes (28.6 KiB)
  19. TX errors dropped overruns carrier collisions
  20.  
  21. ens34:: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
  22. inet 192.168.179.130 netmask 255.255.255.0 broadcast 192.168.179.255
  23. ether :0c::db:7f: txqueuelen (Ethernet)

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

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

二、route

1.查看路由条目

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

举例:

  1. [root@localhost ~]# route
  2. Kernel IP routing table
  3. Destination Gateway Genmask Flags Metric Ref Use Iface
  4. 192.168.172.0 * 255.255.255.0 U eth0
  5. link-local * 255.255.0.0 U eth0
  6. default 192.168.172.2 0.0.0.0 UG eth0
  7. [root@localhost ~]#
  8. [root@localhost ~]# route -n
  9. Kernel IP routing table
  10. Destination Gateway Genmask Flags Metric Ref Use Iface
  11. 192.168.172.0 0.0.0.0 255.255.255.0 U eth0
  12. 169.254.0.0 0.0.0.0 255.255.0.0 U eth0
  13. 0.0.0.0 192.168.172.2 0.0.0.0 UG eth0

2.添加路由条目

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

举例:

  1. [root@localhost ~]# route add -net 100.100.100.0/ gw 192.168.1.1 #接口可省略
  2. [root@localhost ~]# route -n
  3. Kernel IP routing table
  4. Destination Gateway Genmask Flags Metric Ref Use Iface
  5. 100.100.100.0 192.168.1.1 255.255.255.0 UG eth1
  6. 192.168.1.0 0.0.0.0 255.255.255.0 U eth1
  7. 192.168.172.0 0.0.0.0 255.255.255.0 U eth0
  8. 169.254.0.0 0.0.0.0 255.255.0.0 U eth0
  9. 0.0.0.0 192.168.172.2 0.0.0.0 UG eth0
  10. [root@localhost ~]# route add default gw 192.168.1.1 dev eth1 #使用default参数创建默认路由
  11. [root@localhost ~]# route -n
  12. Kernel IP routing table
  13. Destination Gateway Genmask Flags Metric Ref Use Iface
  14. 100.100.100.0 192.168.1.1 255.255.255.0 UG eth1
  15. 192.168.1.0 0.0.0.0 255.255.255.0 U eth1
  16. 192.168.172.0 0.0.0.0 255.255.255.0 U eth0
  17. 169.254.0.0 0.0.0.0 255.255.0.0 U eth0
  18. 0.0.0.0 192.168.1.1 0.0.0.0 UG eth1
  19. 0.0.0.0 192.168.172.2 0.0.0.0 UG eth0

3.删除路由

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

举例:

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

三、netstat命令

专门用来显示命令

1.显示路由表

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

举例:

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

2.显示网络连接

  1. netstat [--tcp|-t] [--udp|-u] [--udplite|-U] [--sctp|-S] [--raw|-w] [--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]] [--program|-p]
  2. -tTCP的相关连接
  3. -uUDP相关连接
  4. -wraw socket相关连接
  5. -l:处于监听状态的连接
  6. -a:所有状态
  7. -n:以数字格式显示ip和端口
  8. -e:扩展格式
  9. -p:显示相关进程及PID
  10.  
  11. 常用组合:
  12. -tan -uan -tnl -unl -tunlp

举例:

  1. [root@localhost ~]# netstat -tan
  2. Active Internet connections (servers and established)
  3. Proto Recv-Q Send-Q Local Address Foreign Address State
  4. tcp 0.0.0.0: 0.0.0.0:* LISTEN
  5. tcp 127.0.0.1: 0.0.0.0:* LISTEN
  6. tcp 192.168.172.136: 192.168.172.1: ESTABLISHED
  7. tcp ::: :::* LISTEN
  8. tcp ::: :::* LISTEN
  9. [root@localhost ~]# netstat -uan
  10. Active Internet connections (servers and established)
  11. Proto Recv-Q Send-Q Local Address Foreign Address State
  12. udp 0.0.0.0: 0.0.0.0:*
  13. [root@localhost ~]# netstat -tnl
  14. Active Internet connections (only servers)
  15. Proto Recv-Q Send-Q Local Address Foreign Address State
  16. tcp 0.0.0.0: 0.0.0.0:* LISTEN
  17. tcp 127.0.0.1: 0.0.0.0:* LISTEN
  18. tcp ::: :::* LISTEN
  19. tcp ::: :::* LISTEN
  20. [root@localhost ~]# netstat -unl
  21. Active Internet connections (only servers)
  22. Proto Recv-Q Send-Q Local Address Foreign Address State
  23. udp 0.0.0.0: 0.0.0.0:*
  24. [root@localhost ~]# netstat -tunlp
  25. Active Internet connections (only servers)
  26. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  27. tcp 0.0.0.0: 0.0.0.0:* LISTEN /sshd
  28. tcp 127.0.0.1: 0.0.0.0:* LISTEN /master
  29. tcp ::: :::* LISTEN /sshd
  30. tcp ::: :::* LISTEN /master
  31. udp 0.0.0.0: 0.0.0.0:* /dhclient

3.显示接口的统计数据

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

举例:

  1. [root@localhost ~]# netstat -i
  2. Kernel Interface table
  3. Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
  4. eth0 BMRU
  5. eth1 BMRU
  6. lo LRU
  7. [root@localhost ~]# netstat -Ieth1
  8. Kernel Interface table
  9. Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
  10. eth1 BMRU

四、ifup和ifdown

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

  1. ifup INTERFACE
  2. ifdown INTERFACE

五、ip

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

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

1. ip link:网络设备管理

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

举例:

  1. [root@localhost ~]# ip link set ens34 down #关闭ens34
  2. [root@localhost ~]# ip link set ens34 name eth34 #重命名
  3. [root@localhost ~]#
  4. [root@localhost ~]# ifconfig -a
  5. ens32: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
  6. inet 192.168.172.134 netmask 255.255.255.0 broadcast 192.168.172.255
  7. inet6 fe80:::ed31:efad:25d0 prefixlen scopeid 0x20<link>
  8. ether :0c::db:7f: txqueuelen (Ethernet)
  9. RX packets bytes (9.6 MiB)
  10. RX errors dropped overruns frame
  11. TX packets bytes (1.1 MiB)
  12. TX errors dropped overruns carrier collisions
  13.  
  14. eth34: flags=<BROADCAST,MULTICAST> mtu
  15. ether :0c::db:7f: txqueuelen (Ethernet)
  16. RX packets bytes (53.8 KiB)
  17. RX errors dropped overruns frame
  18. TX packets bytes (15.2 KiB)
  19. TX errors dropped overruns carrier collisions
  20. [root@localhost ~]# ip link set eth34 name ens34
  21. [root@localhost ~]# ip link set ens34 up
  22. [root@localhost ~]# ifconfig
  23. ens32: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
  24. inet 192.168.172.134 netmask 255.255.255.0 broadcast 192.168.172.255
  25. inet6 fe80:::ed31:efad:25d0 prefixlen scopeid 0x20<link>
  26. ether :0c::db:7f: txqueuelen (Ethernet)
  27. RX packets bytes (9.6 MiB)
  28. RX errors dropped overruns frame
  29. TX packets bytes (1.1 MiB)
  30. TX errors dropped overruns carrier collisions
  31.  
  32. ens34: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
  33. inet 192.168.179.128 netmask 255.255.255.0 broadcast 192.168.179.255
  34. inet6 fe80:::d2dc:: prefixlen scopeid 0x20<link>
  35. ether :0c::db:7f: txqueuelen (Ethernet)
  36. RX packets bytes (54.4 KiB)
  37. RX errors dropped overruns frame
  38. TX packets bytes (16.3 KiB)
  39. TX errors dropped overruns carrier collisions

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

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

举例:

  1. [root@localhost ~]# ip netns add mynetns #创建了一个名称空间
  2. [root@localhost ~]#
  3. [root@localhost ~]# ip netns list #查看名称空间
  4. mynetns
  5. [root@localhost ~]# ip link set ens34 netns mynetns #将ens34绑定到名称空间mynetns
  6. [root@localhost ~]# ifconfig -a #这时候我们会发现设备没有了
  7. ens32: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
  8. inet 192.168.172.134 netmask 255.255.255.0 broadcast 192.168.172.255
  9. inet6 fe80:::ed31:efad:25d0 prefixlen scopeid 0x20<link>
  10. ether :0c::db:7f: txqueuelen (Ethernet)
  11. RX packets bytes (9.7 MiB)
  12. RX errors dropped overruns frame
  13. TX packets bytes (1.1 MiB)
  14. TX errors dropped overruns carrier collisions
  15.  
  16. lo: flags=<UP,LOOPBACK,RUNNING> mtu
  17. inet 127.0.0.1 netmask 255.0.0.0
  18. inet6 :: prefixlen scopeid 0x10<host>
  19. loop txqueuelen (Local Loopback)
  20. RX packets bytes (6.1 KiB)
  21. RX errors dropped overruns frame
  22. TX packets bytes (6.1 KiB)
  23. TX errors dropped overruns carrier collisions
  24. [root@localhost ~]# ip link show
  25. : lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN mode DEFAULT qlen
  26. link/loopback ::::: brd :::::
  27. : ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP mode DEFAULT qlen
  28. link/ether :0c::db:7f: brd ff:ff:ff:ff:ff:ff
  29. [root@localhost ~]# ip netns exec mynetns ip link show #只有在名称空间内执行命令才能看到,使用ifconfig无效
  30. : lo: <LOOPBACK> mtu qdisc noop state DOWN mode DEFAULT qlen
  31. link/loopback ::::: brd :::::
  32. : ens34: <BROADCAST,MULTICAST> mtu qdisc noop state DOWN mode DEFAULT qlen
  33. link/ether :0c::db:7f: brd ff:ff:ff:ff:ff:ff
  34. [root@localhost ~]# ip netns exec mynetns ip link set ens34 up #启用接口
  35. [root@localhost ~]# ip netns exec mynetns ip link show
  36. : lo: <LOOPBACK> mtu qdisc noop state DOWN mode DEFAULT qlen
  37. link/loopback ::::: brd :::::
  38. : ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP mode DEFAULT qlen
  39. link/ether :0c::db:7f: brd ff:ff:ff:ff:ff:ff

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

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

举例:

  1. [root@localhost ~]# ip address flush ens34
  2. [root@localhost ~]# ifconfig
  3. ens32: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
  4. inet 192.168.172.134 netmask 255.255.255.0 broadcast 192.168.172.255
  5. inet6 fe80:::ed31:efad:25d0 prefixlen scopeid 0x20<link>
  6. ether :0c::db:7f: txqueuelen (Ethernet)
  7. RX packets bytes (9.8 MiB)
  8. RX errors dropped overruns frame
  9. TX packets bytes (1.2 MiB)
  10. TX errors dropped overruns carrier collisions
  11.  
  12. ens34: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
  13. ether :0c::db:7f: txqueuelen (Ethernet)
  14. RX packets bytes (56.1 KiB)
  15. RX errors dropped overruns frame
  16. TX packets bytes (18.5 KiB)
  17. TX errors dropped overruns carrier collisions
  18. [root@localhost ~]# ip address add 192.168.179.22/ dev ens34
  19. [root@localhost ~]#
  20. [root@localhost ~]# ifconfig ens34
  21. ens34: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
  22. inet 192.168.179.22 netmask 255.255.255.0 broadcast 0.0.0.0
  23. ether :0c::db:7f: txqueuelen (Ethernet)
  24. RX packets bytes (56.4 KiB)
  25. RX errors dropped overruns frame
  26. TX packets bytes (18.7 KiB)
  27. TX errors dropped overruns carrier collisions
  28. [root@localhost ~]# ip address delete 192.168.179.22/ dev ens34
  29. [root@localhost ~]# ifconfig ens34
  30. ens34: flags=<UP,BROADCAST,RUNNING,MULTICAST> mtu
  31. ether :0c::db:7f: txqueuelen (Ethernet)
  32. RX packets bytes (57.1 KiB)
  33. RX errors dropped overruns frame
  34. TX packets bytes (19.3 KiB)
  35. TX errors dropped overruns carrier collisions
  36. [root@localhost ~]# ip address show
  37. : lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN qlen
  38. link/loopback ::::: brd :::::
  39. inet 127.0.0.1/ scope host lo
  40. valid_lft forever preferred_lft forever
  41. inet6 ::/ scope host
  42. valid_lft forever preferred_lft forever
  43. : ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
  44. link/ether :0c::db:7f: brd ff:ff:ff:ff:ff:ff
  45. inet 192.168.172.134/ brd 192.168.172.255 scope global dynamic ens32
  46. valid_lft 1180sec preferred_lft 1180sec
  47. inet6 fe80:::ed31:efad:25d0/ scope link
  48. valid_lft forever preferred_lft forever
  49. : ens34: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
  50. link/ether :0c::db:7f: brd ff:ff:ff:ff:ff:ff

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

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

举例:

  1. [root@localhost ~]# ip route show
  2. default via 192.168.172.2 dev ens32 proto static metric
  3. 192.168.172.0/ dev ens32 proto kernel scope link src 192.168.172.134 metric
  4. 192.168.179.0/ dev ens34 proto kernel scope link src 192.168.179.128
  5. 192.168.179.0/ dev ens34 proto kernel scope link src 192.168.179.128 metric
  6. [root@localhost ~]#
  7. [root@localhost ~]# ip route add 100.100.100.0/ via 192.168.179.128 dev ens34
  8. [root@localhost ~]#
  9. [root@localhost ~]# ip route show
  10. default via 192.168.172.2 dev ens32 proto static metric
  11. 100.100.100.0/ via 192.168.179.128 dev ens34
  12. 192.168.172.0/ dev ens32 proto kernel scope link src 192.168.172.134 metric
  13. 192.168.179.0/ dev ens34 proto kernel scope link src 192.168.179.128
  14. 192.168.179.0/ dev ens34 proto kernel scope link src 192.168.179.128 metric
  15. [root@localhost ~]# ip route show 100.100.100.0/
  16. 100.100.100.0/ via 192.168.179.128 dev ens34
  17. [root@localhost ~]# ip route get 100.100.100.0/
  18. 100.100.100.0 dev ens34 src 192.168.179.128
  19. cache

六、ss命令

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

  1. net [options] [FILTER]
  2. options:
  3. -t:TCP的相关连接
  4. -uUDP的相关连接
  5. -wraw socket的相关连接
  6. -l:监听状态的连接
  7. -a:所有状态的连接
  8. -n:数字格式显示
  9. -p:相关的程序及其PID
  10. -e:扩展格式信息
  11. -m:内存用量
  12. -o:计时器信息
  13. FILTER
  14. [ state TCP-STATE ] [ EXPRESSION ]
  15. TCP-STATE
  16. LISTEN:监听
  17. ESTABLISEHD:已经建立连接
  18. FIN_WAIT_1
  19. FIN_WAIT_2
  20. SYN_SENT
  21. SYN_RECV
  22. CLOSED
  23. EXPRESSION
  24. dport:目的端口
  25. sport:源端口
  26. ...

举例:

  1. [root@localhost ~]# ss -tan
  2. State Recv-Q Send-Q Local Address:Port Peer Address:Port
  3. LISTEN *: *:*
  4. LISTEN 127.0.0.1: *:*
  5. ESTAB 192.168.172.134: 192.168.172.1:
  6. LISTEN ::: :::*
  7. LISTEN ::: :::*
  8. [root@localhost ~]# ss -tanp
  9. State Recv-Q Send-Q Local Address:Port Peer Address:Port
  10. LISTEN *: *:* users:(("sshd",pid=,fd=))
  11. LISTEN 127.0.0.1: *:* users:(("master",pid=,fd=))
  12. ESTAB 192.168.172.134: 192.168.172.1: users:(("sshd",pid=,fd=))
  13. LISTEN ::: :::* users:(("sshd",pid=,fd=))
  14. LISTEN ::: :::* users:(("master",pid=,fd=))
  15. [root@localhost ~]# ss -uan
  16. State Recv-Q Send-Q Local Address:Port Peer Address:Port
  17. ESTAB 192.168.172.134: 61.216.153.106:
  18. UNCONN 127.0.0.1: *:*
  19. UNCONN *: *:*
  20. UNCONN *: *:*
  21. UNCONN *: *:*
  22. UNCONN *: *:*
  23. UNCONN ::: :::*
  24. UNCONN ::: :::*
  25. UNCONN ::: :::*
  26. [root@localhost ~]# ss -tan '( dport = :22 or sport = :22 )'
  27. State Recv-Q Send-Q Local Address:Port Peer Address:Port
  28. LISTEN *: *:*
  29. ESTAB 192.168.172.134: 192.168.172.1:
  30. LISTEN ::: :::*
  31. [root@localhost ~]#
  32. [root@localhost ~]# ss -tan state ESTABLISHED
  33. Recv-Q Send-Q Local Address:Port Peer Address:Port
  34. 192.168.172.134: 192.168.172.1:

七、配置主机名

hostname

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

在centos7中:

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

网络属性配置文件

一、主机名的配置文件

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

  1. centos6
  2. [root@localhost ~]# vim /etc/sysconfig/network
  3.  
  4. NETWORKING=yes
  5. HOSTNAME=localhost.localdomain

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

二、DNS的配置文件

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

  1. [root@frankhost ~]# vim /etc/hosts
  2.  
  3. 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
  4. :: localhost localhost.localdomain localhost6 localhost6.localdomain6

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

  1. [root@localhost ~]# vim /etc/resolv.conf
  2.  
  3. # Generated by NetworkManager
  4. search localdomain
  5. nameserver 192.168.172.2
  6. nameserver 192.168.179.1

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

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

  1. [root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32
  2.  
  3. TYPE=Ethernet #接口类型
  4. BOOTPROTO=dhcp #激活此接口使用什么协议来配置接口的属性,有dhcp、bootp、static、none等
  5. DEFROUTE=yes #是否以此接口创建默认路由
  6. PEERDNS=yes #如果BOOTPROTO的值为DHCP,是否允许dhcp server分配的dns服务器指向覆盖本地手动指定的DNS服务器指向
  7. PEERROUTES=yes
  8. IPV4_FAILURE_FATAL=no
  9. IPV6INIT=yes #是否初始化IPV6
  10. IPV6_AUTOCONF=yes
  11. IPV6_DEFROUTE=yes
  12. IPV6_PEERDNS=yes
  13. IPV6_PEERROUTES=yes
  14. IPV6_FAILURE_FATAL=no
  15. IPV6_ADDR_GEN_MODE=stable-privacy
  16. NAME=ens32 #此配置文件对于的设备名称
  17. UUID=a3471195-913d-4e38-b521-47ffa1859ffe #此设备的唯一标识
  18. DEVICE=ens32 #此设备文件对于的设备名称
  19. ONBOOT=yes

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

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

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

  1. target/prefix via GW

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

  1. ADDRESS#=target
  2. NETWORK#=mask
  3. GATEWAY#=NEXTHOP
  4. #为数字0.1.2.....

举例:

  1. [root@frankhost ~]# vim /etc/sysconfig/network-scripts/route-eth0
  2.  
  3. 100.100.100.0/ via 192.168.172.136
  4. [root@frankhost ~]# route -n
  5. Kernel IP routing table
  6. Destination Gateway Genmask Flags Metric Ref Use Iface
  7. 100.100.100.0 192.168.172.136 255.255.255.0 UG eth0
  8. 192.168.172.0 0.0.0.0 255.255.255.0 U eth0
  9. 169.254.0.0 0.0.0.0 255.255.0.0 U eth0
  10. 0.0.0.0 192.168.172.2 0.0.0.0 UG
  11.  
  12. [root@frankhost ~]# vim /etc/sysconfig/network-scripts/route-eth0
  13.  
  14. ADDRESS0=192.168.1.0
  15. NETMASK0=255.255.255.0
  16. GATEWAY0=192.168.172.136
  17. [root@frankhost ~]# route -n
  18. Kernel IP routing table
  19. Destination Gateway Genmask Flags Metric Ref Use Iface
  20. 192.168.1.0 192.168.172.136 255.255.255.0 UG eth0
  21. 192.168.172.0 0.0.0.0 255.255.255.0 U eth0
  22. 169.254.0.0 0.0.0.0 255.255.0.0 U eth0
  23. 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. NSKeyedArchiver数据归档

    前言 在 OC 语言中,归档是一个过程,即用某种格式来保存一个或多个对象,以便以后还原这些对象. 通常,这个过程包括将(多个)对象写入文件中,以便以后读取该对象.可以使用归档的方法进行对象的深复制. ...

  2. leecode刷题(7)-- 加一

    leecode刷题(7)-- 加一 加一 描述: 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字. 你可以假设除了整数 ...

  3. 题解 P3386 【【模板】二分图匹配】

    题目链接 首先呢声明一下,本宝宝发这篇题解只是为了(goto a;) 个人还是比较喜欢跑dinic暴力跑最大流...竟然比匈牙利还快..如果说不懂网络流的~~蒟蒻~~大佬们.可以看看这个(反正我就是在 ...

  4. loj #2510. 「AHOI / HNOI2018」道路

    #2510. 「AHOI / HNOI2018」道路 题目描述 W 国的交通呈一棵树的形状.W 国一共有 n−1 个城市和 nnn 个乡村,其中城市从 111 到 n−1 编号,乡村从 111 到 n ...

  5. delphi 给字符指针分配内存

    今天,对接第三方dll的时候出现如下问题: 接口声明如下: long BL_tradeBalance (char *MerchantNumber,char *PosId,char *OperatorN ...

  6. 3. C/C++笔试面试经典题目三

    64. 如何打印出当前源文件的文件名以及源文件的当前行号? [参考答案]cout << __FILE__ ; cout<<__LINE__ ; __FILE__和__LINE_ ...

  7. jeecms学习笔记

    jeecms学习笔记 内容管理系统 1.栏目列表标签 作用:获取栏目的列表 [@cms_channel_list] [#list tag_list as b] <a href="${b ...

  8. Andriod ListView组件的使用

    1.介绍 总结:ListView 是一个可以以垂直滚动的方式展示条目内容的一个列表,条目的内容来自于ListAdapter(适配器). 2.操作步骤 3.内存溢出问题(快速拖到条目) 利用getVie ...

  9. [BZOJ 3262]陌上开花

    今天写了到偏序问题,发现博主真的是个傻X 传送门 以前的写法 /************************************************************** Probl ...

  10. BZOJ 5168 && Luogu P3740 [HAOI2014]贴海报 线段树~~

    据说某谷数据十分水...但幸好BZOJ上也过了...话说我记得讲课时讲的是奇奇怪怪的离散化..但现在突然觉得什么都可以线段树瞎搞了...QAQ 直接就是这个区间有没有被覆盖,被覆盖直接return: ...