首頁 > 軟體

Linux系統網路設定與管理

2020-06-16 17:15:27

1、圖形化網路設定工具

(1)CentOS6下圖形化網路設定工具

1)system-config-network(或system-config-network-tui)

2)setup

(2)cnetos7下圖形化網路設定管理工具

1)nm-connection-editor(需要在圖形化介面終端中使用)

2)nmtui

3)nmcli

2、ifconfig命令的使用(centos7上預設沒有此命令,需要安裝net-tools包)

(1)檢視主機ip

1)ifconfig    #檢視所有介面網路設定資訊

2)ifconfig interface#檢視指定介面的網路設定資訊

(2)啟用或者停用網絡卡

1)關閉網絡卡:ifconfig eth0down

2)啟用網絡卡:ifconfig eth0up

(3)修改設定IP地址

1)設定修改IP地址:ifconfig eth1 ipaddress/netmask(臨時生效)

[root@linuxidc ~]$ifconfigeth0  #檢視eth0IP地址

eth0      Link encap:Ethernet  HWaddr 00:0C:29:D3:7B:9B

          inet addr:172.16.254.250  Bcast:172.16.255.255  Mask:255.255.0.0

          inet6 addr:fe80::20c:29ff:fed3:7b9b/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500 Metric:1

          RX packets:28487 errors:0 dropped:0overruns:0 frame:0

          TX packets:157 errors:0 dropped:0overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:2833396 (2.7 MiB)  TX bytes:25918 (25.3 KiB)

[root@linuxidc ~]$ifconfigeth0 192.168.1.2/24  #修改eth0IP地址

(4)設定網絡卡別名:ifconfig eth0:0 ipaddress/netmaskup

[root@linuxidc ~]# ifconfigeth0:0 6.6.6.6/24

[root@linuxidc ~]# ifconfigeth0:0

eth0:0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1280

        inet 6.6.6.6  netmask 255.255.255.0  broadcast 6.6.6.255

        ether 00:0c:29:ed:0f:11  txqueuelen 100  (Ethernet)

3、路由管理命令router

(1)檢視路由:route –n

[root@linuxidc ~]$route –n  #檢視路由表

Kernel IP routing table

Destination    Gateway        Genmask        Flags Metric Ref    Use Iface

192.168.80.0    0.0.0.0        255.255.255.0  U    1      0        0 eth1

172.16.0.0      0.0.0.0        255.255.0.0    U    1      0        0 eth0

0.0.0.0        172.16.0.1      0.0.0.0        UG  0      0        0 eth0

(2)新增與刪除

新增路由:route add[-net|-host] target [netmask Nm] [gwGw] [[dev] If]

刪除路由:route del[-net|-host] target [gwGw] [netmask Nm] [[dev] If]

(3)設定路由案例:

Linux設定路由拓撲圖

1)Linux1的設定

[root@linux1 ~]# echo 1>  /proc/sys/net/ipv4/ip_forward  #開啟主機路由轉發功能

[root@linux1 ~]# route add -net192.168.2.0/30 gw 192.168.1.2

[root@linux1 ~]# route add -net10.0.0.0/24 gw 192.168.1.2           

[root@linux1 ~]# route

Kernel IP routing table

Destination    Gateway        Genmask        Flags Metric Ref    Use Iface

default        server.magelinu 0.0.0.0        UG  100    0        0 eth2

10.0.0.0        192.168.1.2    255.255.255.0  UG  0      0        0 eth0

172.16.0.0      0.0.0.0        255.255.0.0    U    100    0        0 eth2

192.168.1.0    0.0.0.0        255.255.255.252 U    100  0        0 eth0

192.168.2.0    192.168.1.2    255.255.255.252 UG    0    0

2)linux2的設定

[root@linux2 ~]# echo 1>  /proc/sys/net/ipv4/ip_forward

[root@linux2 ~]# route add -net172.16.1.0/24 gw 192.168.1.1

[root@linux2 ~]# route add -net10.0.0.0/24 gw 192.168.2.2

[root@linux2 ~]# route

Kernel IP routing table

Destination    Gateway        Genmask        Flags Metric Ref    Use Iface

10.0.0.0        192.168.2.2    255.255.255.0  UG  0      0        0 eth1

172.16.1.0      192.168.1.1    255.255.255.0  UG  0      0        0 eth0

192.168.1.0    0.0.0.0        255.255.255.0  U    100    0        0 eth0

192.168.2.0    0.0.0.0        255.255.255.252 U    100  0

3)linux3設定

[root@linux3 ~] echo 1>  /proc/sys/net/ipv4/ip_forward

[root@linux3 ~]$route add -net192.168.1.0/30 gw 192.168.2.1

[root@linux3 ~]$route add -net172.16.1.0/30 gw 192.168.2.1

[root@linux3 ~]$route

Kernel IP routing table

Destination    Gateway        Genmask        Flags Metric Ref    Use Iface

10.0.0.0        0.0.0.0        255.255.255.0  U    100    0        0 eth1

172.16.1.0      192.168.2.1    255.255.255.252 UG    0    0        0 eth0

192.168.1.0    192.168.2.1    255.255.255.252 UG    0    0        0 eth0

192.168.2.0    0.0.0.0        255.255.255.252 U    100  0        0 eth0

192.168.122.0  0.0.0.0        255.255.255.0  U    0      0

4)linux4的設定(linux4當做客戶機時不用設定路由,將閘道器指向下一跳即可,此處為linux1的eth0介面地址)

[root@linux1 ~]$ echo 1>  /proc/sys/net/ipv4/ip_forward

[root@linux1 ~]$route add –net192.168.1.0/30 gw 172.16.1.1

[root@linux1 ~]$ route add –net192.168.2.0/30 gw 172.16.1.1

[root@linux1 ~]$ route add –net10.0.0.0/24 gw 172.16.1.1

[root@linux1 ~]$route

Kernel IP routing table

Destination    Gateway        Genmask        Flags Metric Ref    Use Iface

192.168.2.0    172.16.1.1    255.255.255.252 UG    0    0        0 eth0

192.168.1.0    172.16.1.1    255.255.255.252 UG    0      0      0 eth0

10.0.0.0        172.16.1.1    255.255.255.0  UG  0      0        0 eth0

172.16.1.0      *              255.255.255.0  U    1      0        0 eth0

default        172.16.1.1    0.0.0.0        UG  0      0        0 eth0

5)linux5的設定(Linux5當做閘道器使用時不用設定路由,將閘道器指向下一跳地址即可,此處為linux3的eth1介面地址即可)

[root@linux5 ~]$echo 1>  /proc/sys/net/ipv4/ip_forward

[root@linux5 ~]$ route add -net192.168.2.0/30 gw 10.0.0.254

[root@linux5 ~]$ route add -net192.168.1.0/30 gw 10.0.0.254

[root@linux5 ~]$ route add -net172.16.1.0/24 gw 10.0.0.254

[root@linux5 ~]$route

Kernel IP routing table

Destination    Gateway        Genmask        Flags Metric Ref    Use Iface

192.168.2.0    10.0.0.1      255.255.255.252 UG    0    0        0 eth1

192.168.1.0    10.0.0.1      255.255.255.252 UG    0    0        0 eth1

10.0.0.0        *              255.255.255.0  U    1      0        0 eth1

172.16.1.0      10.0.0.1      255.255.255.0  UG  0      0        0 eth1

172.16.0.0      *              255.255.0.0    U    1      0        0 eth0

default        server.magelinu 0.0.0.0        UG  0      0        0 eth0

(4)Linux主機設定動態路由

1)需要安裝包quagga

[root@linux5 ~]$yum installquagga

2)設定:

[root@linux5 ~]$cd /etc/quagga/

[root@linux5 quagga]$cpospfd.conf.sample ospfd.conf  #修改組態檔,時組態檔生效

[root@linux5quagga]$/etc/init.d/ospfd start          #啟動ospf路由協定

[root@linux5 ~]$vtysh        #進入設定動態路由

Hello, this is Quagga (version0.99.15).

Copyright 1996-2005 KunihiroIshiguro, et al.

linux5#

linux5#

linux5# enable

% Unknown command.

linux5# configure  terminal

linux5(config)#

4、網路管理命令ip

(1)使用IP命令管理網絡卡

1)關閉網絡卡:ip link setdev eth0 down

2)啟用網絡卡:ip link setdev eth0 up

(2)使用ip命令設定網路

1)用法:ip addr{ add |del } IFADDR dev STRING

2)常用選項:

    [label LABEL]:新增地址時指明網絡卡別名

    [scope {global|link|host}]:指明作用域

      global: 全域性可用

      link: 僅連結可用

      host: 本機可用

    [broadcast ADDRESS]:指明廣播地址

[root@linuxidc ~]# ip addr add6.6.6.6/24 dev eth0 label eth0:0  #新增IP地址指定標籤

[root@linuxidc ~]# ip addr        #檢視網絡卡設定資訊

……

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:ed:0f:11 brdff:ff:ff:ff:ff:ff

    inet 172.16.250.102/16 brd 172.16.255.255scope global dynamic eth0

      valid_lft 85913sec preferred_lft85913sec

    inet6.6.6.6/24 scope global eth0:0

      valid_lft forever preferred_lft forever

    inet6 fe80::20c:29ff:feed:f11/64 scope link

      valid_lft forever preferred_lft forever

[root@linuxidc ~]# ip addr del6.6.6.6/24 dev eth0 label eth0:0 #刪除地址

3)修改網絡卡MTU(最大傳輸單元)

    命令:ip link set devIFACE mtu 1500

[root@linuxidc ~]# ip link setdev eth0 mtu 1000  #改變傳輸單元

[root@linuxidc ~]# ip -s -s linkls eth0            #檢視網絡卡1的詳細資訊

2: eth0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu1000 qdisc pfifo_fast state UP mode DEFAULT qlen 1000

    link/ether 00:0c:29:ed:0f:11 brdff:ff:ff:ff:ff:ff

    RX: bytes packets  errors  dropped overrun mcast 

    13836570  145845  0      0      0      0     

    RX errors: length  crc    frame  fifo    missed

              0        0      0      0      0     

    TX: bytes packets  errors  dropped carrier collsns

    218116    1694    0      0      0      0     

    TX errors: aborted  fifo  window heartbeat

              0        0      0      0

3)改變裝置佇列傳輸長度:ip link set dev IFACE txqueuelen

[root@linuxidc ~]# ip link setdev eth0 txqueuelen 100  #改變網絡卡佇列傳輸長度

[root@linuxidc ~]# ip -s -s linkls eth0                #檢視修改後網絡卡最大傳輸單元 

2: eth0:<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1000 qdisc pfifo_fast state UP modeDEFAULT qlen 100

(3)使用ip命令設定路由

1)新增路由:ip route addTARGET via GW dev IFACE srcSOURCE_IP

2)刪除路由:ip routedelete

3)檢視路由:ip route(或ip route (show |list))

4)清空路由表:ip routeflush[dev IFACE] [via PREFIX]

[root@linuxidc ~]# ip route add10.0.0.0/24 via 172.16.0.1  #新增路由

[root@linuxidc ~]# ip route  #檢視路由表

default via 172.16.0.1 deveth0  proto static  metric 100

10.0.0.0/24 via 172.16.0.1 deveth0

172.16.0.0/16 dev eth0  proto kernel scope link  src172.16.250.102  metric 100

192.168.122.0/24 devvirbr0  proto kernel  scope link src 192.168.122.1

[root@linuxidc ~]# ip routeflush dev eth0  #清空路由表

5、網路狀態檢視命令netstat命令使用

(1)用法:netstat[--tcp|-t] [--udp|-u] [--raw|-w][--listening|-l] [--all|-a] [--numeric|-n] [--extend|-e[--extend|-e]][--program|-p]

(2)引數:

1)-t: tcp協定相關

2)-u: udp協定相關

3)-w: raw socket相關

4)-l: 處於監聽狀態

5)-a: 所有狀態

6)-n: 以數位顯示IP和埠;

7)-e:擴充套件格式

8)-p: 顯示相關進程及PID

(3)組合使用

[root@linuxidc ~]# netstat–tan    #以數位形式顯示tcp協定相關的狀態

Active Internet connections(servers and established)

Proto Recv-Q Send-Q LocalAddress          Foreign Address        State   

tcp        0    0 192.168.122.1:53      0.0.0.0:*              LISTEN   

tcp        0    0 0.0.0.0:22            0.0.0.0:*              LISTEN   

tcp        0    0 127.0.0.1:631          0.0.0.0:*              LISTEN   

[root@linuxidc ~]# netstat–tnl  #以數位形式顯示所有處於監聽狀態的tcp協定狀態

Active Internet connections(only servers)

Proto Recv-Q Send-Q LocalAddress          Foreign Address        State   

tcp        0    0 192.168.122.1:53      0.0.0.0:*              LISTEN   

tcp        0    0 0.0.0.0:22            0.0.0.0:*              LISTEN 

[root@linuxidc ~]# netstat -lntp

Active Internet connections(only servers)

Proto Recv-Q Send-Q LocalAddress  Foreign Address      State      PID/Program name 

tcp        0 0 192.168.122.1:53    0.0.0.0:*            LISTEN      1826/dnsmasq     

tcp        0 0 0.0.0.0:22          0.0.0.0:*            LISTEN      1143/sshd 

(4)顯示路由表:netstat{--route|-r} [--numeric|-n]

[root@linuxidc ~]# netstat–rn  #以數位的形式顯示網絡卡資訊(不加-n會嘗試解析成主機名)

Kernel IP routing table

Destination    Gateway        Genmask        Flags  MSS Window  irtt Iface

0.0.0.0        172.16.0.1      0.0.0.0        UG        0 0          0 eth0

172.16.0.0      0.0.0.0        255.255.0.0    U        0 0          0 eth0

192.168.122.0  0.0.0.0        255.255.255.0  U        0 0          0 virbr0

(5)顯示介面統計資料:netstat{--interfaces|-I|-i}[iface] [--all|-a] [--extend|-e] [--program|-p] [--numeric|-n]

[root@linuxidc ~]# netstat–i    #檢視所有網絡卡資訊   

Kernel Interface table

Iface      MTU  RX-OK RX-ERR RX-DRP RX-OVR  TX-OK TX-ERR TX-DRP TX-OVR Flg

eth0      1000  158203      0      0 0          2050      0    0      0 BMRU

lo      65536      176    0      0 0          176      0    0      0 LRU

virbr0    1500      0      0      0 0            0      0    0      0 BMU

[root@linuxidc ~]# netstat-I=eth0  #檢視指定網絡卡資訊

Kernel Interface table

Iface      MTU  RX-OK RX-ERR RX-DRP RX-OVR  TX-OK TX-ERR TX-DRP TX-OVR Flg

eth0      1000  158301      0      0 0          2055      0    0      0 BMRU

[root@linuxidc ~]# ifconfig -seth0  #使用ifconfig命令檢視指定網絡卡資訊

Iface      MTU  RX-OK RX-ERR RX-DRP RX-OVR  TX-OK TX-ERR TX-DRP TX-OVR Flg

eth0      1000  158505      0      0 0          2100      0    0      0 BMRU

6、網路狀態檢視命令ss命令使用(用法同netstat基本相同)

(1)作用:netstat通過遍歷proc來獲取socket資訊,ss使用netlink與核心tcp_diag模組通訊獲取socket資訊。

(2)用法:ss[OPTION]... [FILTER]

(3)常用選項:

(4)選項:

1)-t: tcp協定相關

2)-u: udp協定相關

3)-w: 裸通訊端相關

4)-x:unixsock相關

5)-l: listen狀態的連線

6)-a: 所有

7)-n: 數位格式

8)-p: 相關的程式及PID

9)-e: 擴充套件的資訊

10)-m:記憶體用量

11)-o:計時器資訊

(5)組合使用

[root@linuxidc ~]# ss -tan

State  Recv-Q Send-Q        Local Address:Port                Peer Address:Port           

LISTEN  0 5              192.168.122.1:53                        *:*               

LISTEN  0 128                *:22                                    *:*               

LISTEN  0 128                127.0.0.1:631                          *:*               

LISTEN 0 10                  127.0.0.1:25                              *:*

[root@linuxidc ~]# ss -tanl

State    Recv-Q Send-Q    Local Address:Port                  Peer Address:Port           

LISTEN    0 5            192.168.122.1:53                      *:*               

LISTEN  0 128              *:22                                *:*               

(6)常見用法

  1)ss -l 顯示本地開啟的所有埠

  2)ss -pl 顯示每個進程具體開啟的socket

  3)ss -t -a 顯示所有tcp socket

  4)ss -u -a 顯示所有的UDP Socekt

  5)ss -o stateestablished(tcp狀態) '( dport = :ssh or sport = :ssh )' 顯示所有已建立的ssh連線

  7)ss -o state established(tcp狀態) '( dport = :http or sport = :http )' 顯示所有已建立的HTTP連線

  8)ss -s 列出當前socket詳細資訊

#檢視已經建立的ssh連結

[root@linuxidc ~]# ss -o stateestablished '( dport = :ssh or sport = :ssh )'

Netid Recv-Q Send-Q        Local Address:Port          Peer Address:Port             

tcp  0 52      172.16.250.102:ssh        172.16.252.112:49458                timer:(on,331ms,0)

#檢視已經關閉的http連結

[root@linuxidc ~]# ss -o stateclosing '( dport = :http or sport = :http )'

Netid Recv-Q Send-Q  LocalAddress:Port                      PeerAddress:Port

7、網路相關的組態檔

  通過命令設定的IP地址及通過命令設定的路由資訊都是臨時的,在系統重新啟動後都會失效,如果想永久生效,需要將裝置資訊寫入組態檔

(1)網絡卡組態檔(/etc/sysconfig/network-scripts/ifcfg-IFACE)

[root@linux5 ~]$cat/etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0    #此組態檔應用到的裝置

HWADDR=00:0c:29:d3:7b:9b    #mac地址

TYPE=Ethernet  #介面型別;常見有的Ethernet, Bridge

UUID=73ee782d-02ed-4a8e-acd2-e4f6aec30c5f    #裝置的惟一標識

ONBOOT=yes  #在系統引導時是否啟用此裝置

#NM是NetworkManager的簡寫,此網絡卡是否接受NM控制;建議CentOS6為“no”

NM_CONTROLLED=yes

BOOTPROTO=dhcp  #啟用此裝置時使用的地址設定協定,常用的dhcp, static, none, bootp

USERCTL=no      #普通使用者是否可控制此裝置

#如果BOOTPROTO的值為“dhcp”,是否允許dhcpserver分配的dns伺服器指向資訊直接覆蓋至/etc/resolv.conf檔案中

PEERDNS=yes

IPADDR=10.0.0.10  #指明IP地址

NETMASK=255.255.255.0  #子網掩碼

GATEWAY=10.0.0.254      #預設閘道器

centos6中網絡卡組態檔與NetworkManager的關係:

1)當NetworkManager服務關閉PEER1DNS=NO時不會生成dns組態檔(/etc/resolv.conf),需要手工建立設定

2)當NetworkManager服務關閉PEERDNS=yes時dns為手工指定的

3)NwtworkManager開啟,PEER1DNS=no時,不會從dhcp獲取dns

4)NwtworkManager開啟,PEER1DNS=yes時, 會從dhcp伺服器自動獲取dns

(2)路由相關的組態檔(/etc/sysconfig/network-scripts/route-IFACE)

路由組態檔預設是不存在的,需要時需要自己手動建立並設定,設定完成後需要重新啟動網絡卡才能生效。

1)設定方法一

    TARGET via GW

    如:10.0.0.0/8 via172.16.0.1

2)設定方法二:每三行定義一條路由

    ADDRESS#=TARGET

    NETMASK#=mask

    GATEWAY#=GW

[root@linux5 ~]$cat/etc/sysconfig/network-scripts/route-eth1 #路由組態檔

192.168.2.0/30 via 10.0.0.254

192.168.1.0/30 via 10.0.0.254

172.16.2.0/24 via 10.0.0.254

[root@linux5 ~]$route del -net192.168.2.0/30 gw 10.0.0.254  #刪除之前的設定資訊

[root@linux5 ~]$route del -net192.168.1.0/30 gw 10.0.0.254

[root@linux5 ~]$route del -net172.16.1.0/24 gw 10.0.0.254

[root@linux5~]$/etc/init.d/network restart    #重新啟動網絡卡

[root@linux5 ~]$route                      #檢視路由表

Kernel IP routing table

Destination    Gateway        Genmask        Flags Metric Ref    Use Iface

192.168.2.0    10.0.0.254      255.255.255.252 UG    0    0        0 eth1

192.168.1.0    10.0.0.254      255.255.255.252 UG    0    0        0 eth1

10.0.0.0        *              255.255.255.0  U    1      0        0 eth1

172.16.1.0      10.0.0.254      255.255.255.0  UG  0      0        0 eth1

172.16.0.0      *              255.255.0.0    U    1      0        0 eth0

default        server.magelinu 0.0.0.0        UG  0      0        0 eth0

(3)網絡卡別名組態檔

通過命令修改設定的網絡卡別名或增加的網絡卡IP地址都是臨時生效的,想要永久生效,需要生成獨立的組態檔,設定完成後重新啟動網絡卡生效。

[root@linux5 ~]$cat/etc/sysconfig/network-scripts/ifcfg-eth0:0 #給網絡卡eth0新增ip地址

DEVICE=eth0:0        #應用到的裝置

IPADDR=6.6.6.6      #IP地址

NETMASK=255.0.0.0  #子網掩碼資訊

ONPARENT=yes

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-05/143533.htm


IT145.com E-mail:sddin#qq.com