網卡命名規則
centos6和之前,網絡接口使用連續號碼命名,eth0,eth1.
Centos7,採用dmidecode採集命名方案,採集主板信息,實現網卡命名唯一化
如果firmware(固件)或BIOS爲主板集成的設備提供的索引信息可用時,以此命名,例如:ifcfg-ens33
如果firmware(固件)或BIOS爲PCI-E擴展槽可用時,以此命名,例如,ifcfg-enp33
如果硬件接口的物理位置可用時,以此命名,例如:enp2s0
如果都不可用時,採用舊版本命名方法
en*
O:主板板載網卡,集成設備的設備索引號
P:獨立網卡,PCI網卡
S:熱插拔網卡,usb之類,擴展槽的索引號
後面的數字表示:MAC地址+主板信息計算出唯一的序列
查看網卡物理連接是否正常
[root@localhost ~]# mii-tool ens33
ens33: negotiated 1000baseT-FD flow-control, link ok
查看ip相關信息
ifconfig命令被用於配置和顯示linux內核中網絡接口的網絡參數
[root@localhost ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.162 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::7511:1afa:bc50:a085 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:7a:44:ce txqueuelen 1000 (Ethernet)
RX packets 11084 bytes 9447213 (9.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4704 bytes 455830 (445.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
可以看到網卡名稱是ens33
那麼它的配置文件就是ifcfg-ens33
[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet" #設備類型是以太網
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none" #static靜態ip或者dhcp,或none(不指定), 當是none時,配上ip之後效果適合static效果一樣的
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33" #網卡名字(名稱可以更改,一般和設備名字相同)
UUID="d3afb034-7430-4460-b891-f18f2cf7465c" #網卡uuid,全球唯一
DEVICE="ens33" #設備名字(在內核中識別的名字,不是隨便更改的)
ONBOOT="yes" #啓用該設備,如果是no, 表示不啓動網絡設備
IPADDR="192.168.1.162" #ip地址
PREFIX="24" #子網掩碼,相當於255.255.255.0
GATEWAY="192.168.1.1" # 默認網關
DNS1="8.8.8.8" #首選dns,如果要配置兩個dns,則再加一行,DNS2='114.114.114.114'
IPV6_PRIVACY="no"
爲虛擬機添加一塊網卡
步驟關機 > 設置 > 添加設備 > 網絡適配器 > 添加 > 選擇橋接模式 > 開機
選項-a : 查看所有網絡設備, 包括沒有啓動的網卡設備
[root@localhost ~]# ifconfig -a
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.162 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::7511:1afa:bc50:a085 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:7a:44:ce txqueuelen 1000 (Ethernet)
RX packets 80 bytes 10900 (10.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 75 bytes 9260 (9.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::81fc:e69e:c455:db43 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:7a:44:d8 txqueuelen 1000 (Ethernet)
RX packets 4 bytes 240 (240.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 16 bytes 2592 (2.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
可以看到,新增加的網卡名稱是ens37,這是由內核識別出來的
生成網卡配置文件
進入網卡配置文件目錄
cd /etc/sysconfig/network-scripts/
複製出一個ens37的網卡配置文件
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens37
修改配置文件
將
NAME="ens33"
UUID="d3afb034-7430-4460-b891-f18f2cf7465c"
DEVICE="ens33"
IPADDR="192.168.1.162"
改爲
NAME="ens37"
DEVICE="ens37"
IPADDR="192.168.1.131"
更改網卡名稱,設備名稱,由於不知道uuid,所以將uuid刪除, 注意ip不要衝突
保存退出
重啓網卡服務
[root@localhost network-scripts]# service network restart
薑還是老的辣(從centos5到至今)
現在可以遠程連接到這臺虛擬機了
ssh [email protected]
臨時修改ip地址
臨時修改ip地址
[root@localhost network-scripts]# ifconfig ens37 192.168.1.32
[root@localhost network-scripts]# ifconfig ens37
ens37: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.32 netmask 255.255.255.0 broadcast 192.168.1.255
給一個網卡配置多個臨時ip地址
[root@localhost network-scripts]# ifconfig ens37:1 192.168.1.123
[root@localhost network-scripts]# ifconfig ens37:1
ens37:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.123 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:0c:29:7a:44:d8 txqueuelen 1000 (Ethernet)
現在實驗了一下,物理機通過ssh [email protected]和 ssh [email protected]都是可以遠程連接的
當我們重啓服務的時候,臨時ip就不生效了
查看端口的監聽狀態
netstat 命令: 查看系統中網絡連接狀態信息
常用參數格式: netstat -anutp
-a, --all 顯示本機所有連接和監聽的端口
-n, --numeric 以數字形式顯示當前建立的有效鏈接和端口
-u, 顯示utp協議鏈接
-t, 顯示tcp協議鏈接
-p, --programs 顯示鏈接對應的PID與程序名
[root@localhost ~]# netstat -anutp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 829/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 983/master
tcp 0 0 192.168.1.162:22 192.168.1.110:50471 ESTABLISHED 2280/sshd: sss@pts/
tcp6 0 0 :::22 :::* LISTEN 829/sshd
tcp6 0 0 ::1:25 :::* LISTEN 983/master
udp 0 0 127.0.0.1:323 0.0.0.0:* 540/chronyd
udp6 0 0 ::1:323 :::* 540/chronyd
解釋
Proto 鏈接協議的種類
Recv-Q 接收的字節數
Send-Q 從本服務器,發出去的字節數
Local Address 本地的ip地址,可以是ip,也可以是主機名
Foreign Address 遠程主機的ip地址
網絡的連接狀態
CLOSED 初始(無連接)狀態
LISTEN 偵聽狀態,等待遠程機器的連接請求
ESTABLISHED 完成tcp三次握手後,主動連接端進入ESTABLISHED狀態,此時連接已經建立,可以進行通信
TIME_WAIT; 在tcp四次揮手時,主動關閉端發送了ack包之後,等待最多MSL時間,讓被動關閉端收到ACK包
擴展:MSL,一個數據報文在網絡中能夠生存的最長時間,超過兩分鐘即認爲這個報文已經在網絡中被拋棄了,
對於tcp連接,在雙方進入TIME_WAIT狀態後,通常會等待兩倍的MSL時間,再關閉連接,作用是爲了防止由於FIN報文丟包,對端重發導致與後續的TCP鏈接請求產生順序混亂
- 實戰:服務騎上有大量的TIME_WAI連接,如何優化TCP連接,快速釋放tcp連接
解決
linux下默認的MSL等待時間是60秒
[root@localhost ~]# cat /proc/sys/net/ipv4/tcp_fin_timeout
60
通過縮短time_wait時間來快速釋放連接
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
更改主機名
vim /etc/hostname
配置ip與主機名(域名)的對應關係(優先級高於DNS)
vim /etc/hosts
查看路由信息
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 ens33
0.0.0.0 192.168.1.1 0.0.0.0 UG 101 0 0 ens37
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 ens37
Destination: 目標網絡或者目標主機
Gateway: 網關,網關地址,如果是本地網段IP,就顯示0.0.0.0
Genmask: 子網掩碼
添加路由條目
route add -net 192.168.2.0 netmask 255.255.255.0 dev ens37
刪除路由條目
route del -net 192.168.2.0 netmask 255.255.255.0
場景:多個網卡,多個網段,實現不同數據走不同網卡,比如網絡管理和生產數據分開管理
路由跟蹤
路由跟蹤:查看經過多少個路由器到達目標網址
traceroute
[root@localhost ~]# traceroute sunlizhao.cn
traceroute to sunlizhao.cn (162.159.211.80), 30 hops max, 60 byte packets
1 gateway (192.168.1.1) 5.478 ms 5.216 ms 5.018 ms
2 100.74.48.1 (100.74.48.1) 4.882 ms 4.766 ms 16.547 ms
3 * * *
4 * * *
5 221.183.12.61 (221.183.12.61) 15.753 ms 221.183.24.237 (221.183.24.237) 15.658 ms 15.466 ms
6 221.183.22.97 (221.183.22.97) 58.331 ms 221.183.22.93 (221.183.22.93) 100.722 ms 100.528 ms
7 221.176.22.162 (221.176.22.162) 45.762 ms 221.176.24.10 (221.176.24.10) 45.639 ms 221.176.22.162 (221.176.22.162) 45.457 ms
8 221.176.24.138 (221.176.24.138) 48.924 ms 221.176.24.142 (221.176.24.142) 45.099 ms 221.176.24.230 (221.176.24.230) 52.561 ms
9 223.118.10.2 (223.118.10.2) 48.500 ms 48.391 ms 48.364 ms
10 223.119.6.105 (223.119.6.105) 60.036 ms 59.825 ms 59.622 ms
11 162.159.211.80 (162.159.211.80) 75.074 ms 68.747 ms 74.574 ms
場景:新上線的服務器sunlizhao.cn 某個地域的用戶需要經過幾條才能到達服務器
ping
ping 命令的一般格式爲
-c 數目 在發送指定數據的包後停止
-i 描述 設定間隔幾秒送一個網絡封包給一臺機器,預設值是一秒送一次
arping 查看ip地址是否用衝突
例子:查看網關是否有衝突
[root@localhost ~]# arping -I ens33 192.168.1.1
ARPING 192.168.1.1 from 192.168.1.162 ens33
Unicast reply from 192.168.1.1 [34:BD:F9:3B:54:28] 4.477ms
Unicast reply from 192.168.1.1 [34:BD:F9:3B:54:28] 4.823ms
Unicast reply from 192.168.1.1 [34:BD:F9:3B:54:28] 4.557ms
注意:如果一個ip,得到兩個mac,那麼就有人冒充網關了
watch
作用:實時監測命令的運行結果,可以看到所有變化數據包的大小
-d 高亮顯示指令輸出信息不同之處
-n 指定指令執行的間隔時間(秒)
每隔一秒高亮差異顯示網卡ens33的相關信息
watch -d -n 1 'ifconfig ens33'
ctrl + c 退出