1. 在linux虛擬中安裝dhcpv6后,Server發(fā)送的dhcpv6 advertise報(bào)文中的udp校驗(yàn)和出錯(cuò),導(dǎo)致用戶不能獲取IPv6地址
修正方法:將該接口的校驗(yàn)關(guān)閉
ethtool --offload enp3s0 rx off tx off
Actual changes:
rx-checksumming: off
tx-checksumming: off
tx-checksum-ip-generic: off
tcp-segmentation-offload: off
tx-tcp-segmentation: off [requested on]
tx-tcp6-segmentation: off [requested on]
原因分析: 實(shí)體主機(jī)中有的網(wǎng)卡不支持硬件校驗(yàn)和計(jì)算,但是虛擬機(jī)中卻默認(rèn)通過網(wǎng)卡自動(dòng)進(jìn)行校驗(yàn)和計(jì)算(應(yīng)用層使用了隨機(jī)校驗(yàn)和填充),而實(shí)際網(wǎng)卡并不具備該能力,所以發(fā)出的報(bào)文校驗(yàn)和是錯(cuò)誤的。
2. FreeBSD中su:Sorry問題解決
FreeBSD中不能直接使用su提升用戶權(quán)限,需要將用戶加入wheel組才能使用
編輯/etc/group文件,將用戶加入
wheel:*:0:root,用戶名
如
cat /etc/group | grep wheel
wheel:*:0:root,admin
3. Linux 掛在光驅(qū)
mount -t cd9660 /dev/cd0 /mnt/cdrom
4. linux加載新的硬盤
a). fdisk -l 可以看到新加載的硬盤,如/dev/sdb
b). 對硬盤進(jìn)行分區(qū)
fdisk /dev/sdb
m --- 查看命令菜單
n --- 新建分區(qū)(選擇創(chuàng)建主分區(qū)或擴(kuò)展分區(qū),選擇分區(qū)號(hào)和分區(qū)大小---起始和終止扇區(qū))
w --- 分區(qū)信息寫入sdb磁盤中
c). 內(nèi)核重新讀取分區(qū)表
partprobe /dev/sdb
d). 創(chuàng)建文件系統(tǒng)(格式化分區(qū)) --- 主流ext4或xfsd
mkfs.ext4 /dev/sdb1
e). 臨時(shí)掛載
mkdir /mnt/disk2
mount /dev/sdb1 /mnt/disk2
df -h #查看實(shí)際掛載情況

f). 永久掛載
參考/etc/fstab內(nèi)容

加入行:
/dev/sdb1 /mnt/disk2 ext4 defaults 0 0
5. 其中samba服務(wù)(與windows的文件共享)
a). 安裝文件
yum install samba samba-client samba-common -y
b). 關(guān)閉SeLinux
/etc/selinux/config, vim /etc/selinux/config,將SELINU置為disabled (SELINUX=disabled)
注:未啟動(dòng)先,需要臨時(shí)關(guān)閉(執(zhí)行setenforce 0),否則后面打開時(shí),會(huì)出現(xiàn)無權(quán)限訪問問題
c). 配置/etc/samba/smb.conf

d). 防火墻放開samba服務(wù)
firewall-cmd --permanent --add-service=samba
firewall-cmd reload
e). 其中smb服務(wù)
systemctl enable smb
systemctl enable nmb
systemctl start nmb smb
f). 設(shè)置samba用戶(smbpasswd –a 用戶名)

注: 需要關(guān)閉SELINUX否則會(huì)導(dǎo)致無權(quán)限訪問問題
6. KVM虛擬機(jī)網(wǎng)絡(luò)速度慢的問題
ethtool --offload enp1s0 gso off tso off sg off gro off rx off tx off
或啟動(dòng)虛擬機(jī)時(shí)自動(dòng)執(zhí)行
增加腳本,如/root/setnetwork.sh
[root@centos8 ~]# cat /root/setnetwork.sh
#!/bin/bash
para="on"
if [ $1 == "off" ];then
para="off"
elif [ $1 == "on" ];then
para="on"
fi
echo "set interface offload $para"
ethtool --offload enp1s0 gso $para tso $para sg $para gro $para rx $para tx $para &
ethtool --offload enp3s0 gso $para tso $para sg $para gro $para rx $para tx $para &
編寫自定義服務(wù)
[root@centos8 ~]# cat /usr/lib/systemd/system/setnetwork.service
[Unit]
Description=set interface offload
After=network.target
[Service]
Type=forking
ExecStart=/root/setnetwork.sh off
ExecStop=/root/setnetwork.sh on
[Install]
WantedBy=multi-user.target
執(zhí)行
systemctl enable setnetwork
systemctl start setnetwork
若系統(tǒng)是windows, 則需要在網(wǎng)卡設(shè)置屬性

將其Large Send Offload(IPv4, IPv6), TCP/UDP Checksum offload(IPv4, IPv6)均置為Disable

7. 在centos 8.1 KVM上安裝win10
一般默認(rèn)安裝了virtio-win, 若沒有安裝,手動(dòng)安裝一次
dnf install virtio-win
完成后,按照普通虛擬機(jī)安裝步驟進(jìn)行,第一次啟動(dòng)前,對配置進(jìn)行如下修改
a). 磁盤類型按照實(shí)際的磁盤選擇(如使用STATA)
b). 網(wǎng)卡選擇e1000e
c). 增加顯示器(如圖所示)

8. 文件句柄相關(guān)的Linux命令
查看允許最大文件開啟數(shù)目(ulimit –a)

查看最大系統(tǒng)句柄最大數(shù)量限制
[root@centos8 ~]# cat /proc/sys/fs/file-max
382320
查看當(dāng)前打開句柄總數(shù)
[root@centos8 ~]# lsof|awk '{print $2}'|wc -l
35978
查看句柄打開數(shù)量最大的進(jìn)程名稱
[root@centos8 ~]# lsof|awk '{print $2}'|sort|uniq -c|sort -nr|more
11826 2446
9490 2448
9490 2447
…
# 倒敘排列(第一列為句柄數(shù)量,第二列為進(jìn)程ID)
[root@centos8 ~]# ps aux | grep 2446
Apache 2446 0.0 0.3 1933748 13412 ? Sl May10 0:16 /usr/sbin/httpd –DFOREGROUND
#查看進(jìn)程
修改文件句柄限制
[root@centos8 ~]# cat /etc/security/limits.conf

9. 查看TCP Socket相關(guān)的統(tǒng)計(jì)信息
統(tǒng)計(jì)tcp連接狀態(tài)(IPv4, IPv6))
[root@node19216820131 ~]# netstat -n | awk '/^tcp*/ {++S[$NF]} END {for(a in S) print a, S[a]}'
SYN_RECV 5
CLOSE_WAIT 8
ESTABLISHED 1540
FIN_WAIT1 1
FIN_WAIT2 1
TIME_WAIT 220
TCP連接狀態(tài)詳解
- LISTEN: 偵聽來自遠(yuǎn)方的TCP端口的連接請求
- SYN-SENT: 在發(fā)送連接請求后等待匹配的連接請求(ACK),即應(yīng)用開始啟動(dòng)一個(gè)TCP連接
- SYN-RECEIVED:收到和發(fā)送一個(gè)連接請求后等待對方對連接請求的確認(rèn),即一個(gè)連接請求已到達(dá),等待確認(rèn)
- ESTABLISHED: 代表一個(gè)打開的連接,數(shù)據(jù)正常交互
- FIN-WAIT-1: 等待遠(yuǎn)程TCP連接中斷請求,或先前的連接中斷請求的確認(rèn):我已完成傳輸,等你哦
- FIN-WAIT-2: 從遠(yuǎn)程TCP等待連接中斷請求,對方已同意釋放連接
- CLOSE-WAIT: 等待從本地用戶發(fā)來的連接中斷請求
- CLOSING: 等待遠(yuǎn)程TCP對連接中斷的確認(rèn):兩邊同時(shí)嘗試關(guān)閉連接
- LAST-ACK: 等待原來的發(fā)向遠(yuǎn)程TCP的連接中斷請求的確認(rèn):等所有的報(bào)文到達(dá)或死掉
- TIME-WAIT: 等待足夠的時(shí)間以確保遠(yuǎn)程TCP接收到連接中斷請求的確認(rèn)
客戶端與服務(wù)器端建立TCP/IP連接后關(guān)閉SOCKET后,服務(wù)器端連接的端口狀態(tài)為TIME_WAIT, 主動(dòng)關(guān)閉的一方在發(fā)送最后一個(gè) ack 后就會(huì)進(jìn)入 TIME_WAIT 狀態(tài) 停留2MSL(max segment lifetime)時(shí)間,這個(gè)是TCP/IP必不可少的。
- CLOSED: 沒有任何連接狀態(tài)
若有大量的TIME_WAIT狀態(tài)的連接,通過調(diào)整內(nèi)核參數(shù)解決(vim /etc/sysctl.conf)
加入以下內(nèi)容:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
然后執(zhí)行 /sbin/sysctl -p 讓參數(shù)生效。
- net.ipv4.tcp_syncookies = 1 表示開啟SYN cookies。當(dāng)出現(xiàn)SYN等待隊(duì)列溢出時(shí),啟用cookies來處理,可防范少量SYN攻擊,默認(rèn)為0,表示關(guān)閉;
- net.ipv4.tcp_tw_reuse = 1 表示開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認(rèn)為0,表示關(guān)閉;
- net.ipv4.tcp_tw_recycle = 1 表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認(rèn)為0,表示關(guān)閉。
- net.ipv4.tcp_fin_timeout 修改系統(tǒng)默認(rèn)的 TIMEOUT 時(shí)間
10. 查看服務(wù)那個(gè)端口建立的連接最多
netstat -na | grep ESTABLISHED | awk '{ print $5 }'| sort | uniq -c | sort -r -n

查看那個(gè)IP建立的連接數(shù)目最多
netstat -na | grep ESTABLISHED | awk '{ print $5 }' | awk -F: '{ print $1 }' | sort | uniq -c | sort -r –n

附注:awk
- BEGIN語句塊在awk開始從輸入流中讀取行之前被運(yùn)行,這是一個(gè)可選的語句塊,如變量初始化、打印輸出表格的表頭等語句通常能夠?qū)懺贐EGIN語句塊中。
- END語句塊在awk從輸入流中讀取全然部的行之后即被運(yùn)行。如打印全部行的分析結(jié)果這類信息匯總都是在END語句塊中完畢,它也是一個(gè)可選語句塊。
- pattern語句塊中的通用命令是最重要的部分,它也是可選的。假設(shè)沒有提供pattern語句塊,則默認(rèn)運(yùn)行{ print },即打印每個(gè)讀取到的行。awk讀取的每一行都會(huì)運(yùn)行該語句塊。
這三個(gè)部分缺少任何一部分都可以。