2021-05-12 14:32:11
Linux系統網路設定與管理
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
相關文章