FRP内网穿透

需要的东西:

1,一个vps

2,一个域名做好解析

3,一台电脑,支持虚拟机

安装服务器端:

1,ssh连接vps

2,下载frp软件:https://github.com/fatedier/frp/releases,选择适合的软件包

3,将下载的frp软件上传到vps中,输入tar -zxvf frp.tar.gz 解压文件

4,进入frp文件夹,找到frps.ini文件打开,添加一条:token = password2022(此密码为明文,所以不要使用常用密码),然后保存。

5,cd frp 进入文件夹 输入:./frps -c frps.ini 运行

6,VPS打开7000端口

7,设置服务自动运行:vi /lib/systemd/system/frps.service 输入图示内容(路径根据实际frps.ini文件所在位置设置) 设置完成后:wq保存退出

8,启动服务:systemctl start frps

开机自动启动:systemctl enable frps

客户端设置(虚拟机方法):

1,在本地电脑上创建Linux虚拟机(不在赘述)

2,ssh连接虚拟机,上传frp软件到虚拟机中解压(步骤如之前一样)

3,设置frpc.ini(如下图所示,注意修改local_ip 为自己所需登录的内网设备的ip地址,local port为内网访问端口,remote port为外网访问端口,有几个设备就按图示添加)

4,启动客户端:cd /root/frp 进入frp文件夹输入./frpc -c frpc.ini

5,设置开机自动运行:vi /lib/systemd/system/frpc.service 添加规则如图

systemctl start frpc

systemctl enable frpc

6,打开虚拟机开机自动启动

外网访问:

在浏览器中输入vps的ip加:remote port的端口号即可,此处vps的ip可以换成已经解析完成的域名来进行访问!

PVE安装群晖7.0

pve安装黑群晖7.0(黑群晖7.0安装教程)    

  本教程基于Proxmox VE(PVE)7.0虚拟机环境下安装黑群晖DS918-7.01,因此对硬件的要求如下:

1、cpu要求(如果CPU不满足要求,建议安装DS3615-7.01,安装DS3615-7.01的步骤和安装DS918-7.01的步骤大致一样,只是使用不同引导和不同安装包的区别。)

(1)至少要用第四代Intel酷睿处理器、或者同等级别的奔腾处理器、或者同等级别的赛扬处理器,比如:Intel i5-4430、J3455、N3160;

(2)至强的处理器,要求是v3或者以上级别,比如:Intel Xeon E3-1230 v3;

(3)如果是AMD,要求是锐龙3或者以上级别,比如:Ryzen 3 – 2200G;

2、网卡要求

(1)如果是用网卡直通的,要求使用Intel品牌的网卡;

(2)非直通网卡要求支持E1000e,如果你的PVE不支持E1000e网卡类型,请先按照【给ProxmoxVE (PVE)的网络模型添加E1000e网卡,让你的DSM支持最新版本】教程添加E1000e;

(3)截止2021年9月26日,使用RedPill项目开发组开源代码编译的DSM7.X引导,暂时不支持万兆物理网卡,建议采用千兆网卡(直通模式)或者E1000e虚拟网卡(非直通模式)。


【安装步骤】

1、在电脑上新建一个文件夹(我在E盘建立dsm7这个文件夹),需要注意:不可以用中文或者特殊符号。到【我的网盘】下载以下文件,全部下载完成后,然后点到下图红框处,把当前这个路径复制一下;

2、把引导文件【redpill-DS918+_7.0.1-42214(引导文件).img】改个名,去掉中文字(不可以有中文),同时把文件名改短一些,方便操作,我这改成DS918_7.0.1.img;

3、在电脑浏览器打开PVE的ip地址,用root登录,在左边栏如下图的位置右键,创建虚拟机;

4、填写虚拟机名称,VM ID这个数字自动生成不用更改,但是需要记住这个数字,后面需要用到;

5、不使用任何介质,下一步;

6、下一步;

7、在“总结/设备”点一下,选“SATA”;

8、磁盘大小先写一个“1”,临时的设置,等下会删除;

9、单CPU的“插槽”写“1”(双路写2)、核心则根据自己使用的CPU真实核心数量填写(给群晖分配的CPU核心数量,不可以超过实际CPU核心数量),类别选“host”(使用至强v3或者以上的CPU如果用host启动后找不到IP地址,请改回“默认”),下一步;

10、内存根据实际情况分配,我分配的是4096MB,下一步;

11、模型选:E1000e(如果你的PVE没有E1000e网卡类型,请参考《给ProxmoxVE (PVE)的网络模型添加E1000e网卡,让你的DSM支持最新版本》教程自行添加),下一步;

12、完成;

13、找到刚刚建立的虚拟机,选中前面临时建立那个1G的磁盘(sata0),选菜单上的“分离”;

14、是;

15、选中分离出来的这个“未使用的磁盘0”,点菜单上的“删除”;

16、是;

17、选中biOS,编辑;

18、改成“OVMF(uefi)”;

19、OK;

20、选中“机器”,编辑;

21、改成q35,OK;

22、打开DiskGenius软件,点菜单上的“硬盘”—“打开虚拟硬盘文件”;

23、进入第1步建立的文件夹,找到DS918_7.0.1.img文件,打开;

24、在左边栏中点+,点grub文件夹,在右边找到grub.cfg文件,在此文件上点鼠标右键,弹出的菜单中选择“复制到指定的文件夹”;

25、在文件夹处点一下,把在第1步建立的路径粘贴进去,确定;

26、完成;

27、用Notepad2打开grub.cfg文件,在菜单上的“查看”,找到自动换行,点一下;

28、向下翻页到第58行和第68行,先找到下图圈出蓝色字,根据实际情况修改(58行和68行都要改),改好了就保存文件,关闭Notepad2;

(1)netif_num=1:网口数量,默认为1,如果你要给虚拟机添加两个网口的,请改成netif_num=2;
(2)mac1=001132123456:默认只填写了一个网口的mac地址,如果给虚拟机添加两个网口的,需要在mac1的后面添加了一个mac2=001132123466(两个mac值不可以一样);如果你有真实的洗白码,可以替换成洗白码mac的值;
(3)sn=2021PDN123456:默认的序列号,如果你有真实的洗白码,可以替换成洗白码sn的值;
(4)虚拟机安装,不需要改VID和pid

29、切换到DiskGenius软件,在右边空白处点右键,在弹出的菜单选择“复制文件到当前分区”;

30、找到刚才修改好的grub.cfg,打开;

31、替换;

32、完成;

33、退出DiskGenius软件;

34、把下载在电脑上的“MobaXterm v20.0中文汉化专业版”压缩包解压出来,运行MobaXterm1_CHS1.exe;

35、用root用户登录到PVE的SSH下,正常的话右边栏会显示如下图以root@开头的界面,左边栏下图位置应该会显示/root/;

36、把电脑上的DS918_7.0.1.img点鼠标左键不松开,拖到MobaXterm的左边如下图的空白位置,再松开鼠标左键;

37、此时会看到文件在上传的状态,需要等一下;

38、上传完成,显示有文件出来了;

39、在MobaXterm的右边黑色区域,输入以下命令转换群晖引导盘,使它变成PVE虚拟机的格式(命令别照搬,100为第4步骤显示的VM ID):

qm importdisk 100 DS918_7.0.1.img local-lvm

40、确认无误后,回车;

41、转换完成后,PVE的虚拟机会多出一个“未使用的磁盘0”;

42、双击这个“未使用的磁盘0”,在“总线/设备”点下拉列表,选SATA;

43、确认一下这个引导盘必须是:SATA  0,然后点“添加”;

44、之前的“未使用的磁盘0”,此时会变成“磁盘(sata0)”,大小是128M;

45、给群晖虚拟机添加硬盘,本教程使用的是PVE虚拟的硬盘,在菜单上选“添加”,“硬盘”;

46、“总线/设备”会自动显示为SATA1,“存储”选PVE的存储盘,磁盘大小根据实际需要设置(本教程设置为50G),在“高级”这里打勾;

47、由于我使用的SSD,所以在“SSD仿真”打勾,添加;(如果你用机械硬盘,此步骤不做)

48、选中群晖虚拟机,选项,引导顺序,编辑;

49、只勾选“sata0”,别的打勾都去掉,点“OK”;

50、选中群晖虚拟机,在右上方的“启动”点一下;

51、点到群晖虚拟机的控制台,会看到群晖引导盘启动的过程,此时会有一个菜单,向上下键移动到下面的“RedPill DS918+ v7.0.1-42214 RC(SATA,Verbose)”,回车;

52、然后屏幕会显示如下图,黑群晖7.X的引导启动后就显示这样,在UEFI方式启动方式下,会有一个光标停在上面不动,不要以为是系统卡住了;

53、在电脑浏览器新开一个标签,输入(http://find.synology.com/)这个地址回车,开始搜索局域网内的群晖设备;

54、如果局域网内有多台群晖设备的,右边会有一个三角形显示,可以翻页找到我们需要安装的设备(状态会显示:未安装),点“连接”;

55、左下角“我已阅读并同意 EULA 的条款”打勾,下一步;

56、继续;

57、正在加载;

58、安装;

59、浏览;

60、找到之前下载的  DS918+_7.01-42214(系统安装包).pat  这个安装包文件,打开;

61、确认一下安装包的版本号(用什么版本的引导,就要选对应版本的安装包,不可以搞错),无误后点下一步;

62、安装过程中,群晖系统会自动把存储硬盘重新分区并格式化为群晖格式的硬盘,在“我了解这些硬盘上的所有数据都将被删除”打勾,继续;

63、开始安装;

64、正在格式化系统分区;

65、正在上传DSM安装包;

66、不卡40%;

67、正在安装系统,不卡55%;

68、耐心等待安装,安装完成系统会自动重启,此时会显示一个10分钟的倒计时,重启等待的时间由硬件性能决定(正常等待1-10分钟);

69、重启完成,会显示“正在启动内置套件”;

70、点:开始; 

71、给设备起个名字(不可以用中文),设置一个用户名(不可以用admin),设置密码(密码要求:大写字母+小写字母+数字的组合,长度至少8位),下一步。

72、选“当有可用的DSM或者套件更新时通知我,我会手动安装”,下一步。

73、跳过; 

74、不打勾,直接点提交;

75、进入系统桌面,提示创建存储池和存储空间,点:立即创建;

76、开始; 

77、RAID类型根据实际选择(如果有多个硬盘需要组阵列的选SHR,如果需要把多个硬盘组成一个大容量的选JBOD),本教程使用单硬盘,选Basic,下一步;

78、选中需要建立存储的硬盘,下一步;

79、提示我的硬盘不在Synology产品兼容列表中,不用理会,这个不影响使用,继续。

80、跳过硬盘检查(如果你组的是RAID,强烈建议勾选“执行硬盘检查”,以免硬盘出问题引起RAID损毁),下一步;

81、在“修改分配的大小”这里,点“最大化”,下一步;

82、“选择文件系统”这里有两个选择,根据实际情况选择,如果想要使用群晖系统所有功能不受限制的,选Btrfs,下一步;

83、应用;

84、确定;

85、存储空间建立完成

86、系统安装至此结束。

内容来源gnaxs博客

PVE显示cpu,硬盘温度,关闭ksm,去订阅弹窗

温度显示:

首先我们要先安装温度检测工具

apt-get install lm-sensors
lm_sensors可以用来监控CPU和主板温度以及风扇速度

在shell中输入命令sensors,就能显示信息

root@pve:~# sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +48.0°C  (high = +105.0°C, crit = +105.0°C)//cpu温度
Core 0:        +48.0°C  (high = +105.0°C, crit = +105.0°C)
Core 1:        +49.0°C  (high = +105.0°C, crit = +105.0°C)
Core 2:        +49.0°C  (high = +105.0°C, crit = +105.0°C)
Core 3:        +49.0°C  (high = +105.0°C, crit = +105.0°C)

acpitz-acpi-0
Adapter: ACPI interface
temp1:        +46.0°C  (crit = +95.0°C)

nvme-pci-0100
Adapter: PCI adapter
Composite:    +62.9°C  (low  = -273.1°C, high = +89.8°C)//nvme硬盘温度
                       (crit = +89.8°C)
ERROR: Can't get value of subfeature temp2_min: I/O error  //这两个是读不出来
ERROR: Can't get value of subfeature temp2_max: I/O error
Sensor 1:     +62.9°C  (low  =  +0.0°C, high =  +0.0°C)

需要修改的文件

/usr/share/perl5/PVE/API2/Nodes.pm   //数据来源
/usr/share/pve-manager/js/pvemanagerlib.js  //桌面版的js
/usr/share/pve-manager/touch/pvemanager-mobile.js  //手机版的js

在Nodes.pm中搜索pveversion,在这段代码下面加入

$res->{thermalstate} = `sensors`;

pc端浏览器界面增加温度显示

在pvemanagerlib.js文件中也是搜索pveversion,在它这段代码下面加入

{
      itemId: 'thermal',
      colspan: 2,
      printBar: false,
      title: gettext('Temperature'),
      textField: 'thermalstate',
      renderer:function(value){
        const c0 = value.match(/Package id 0.*?\+([\d\.]+)?/)[1];
        const c1 = value.match(/Composite.*?\+([\d\.]+)?/)[1];
        return `CPU: ${c0}   |  NVME: ${c1} `
     }     
  },

要注意的事情是cpu和nvme的温度是根据正则表达式从数据字符串里取的,需要根据sensors中输出的信息做相应修改,注意红色字体部分可以。

pve7.0 pveversion代码下面还有一段输出订阅状态的代码,看需求可以删除掉。

手机端增加温度显示

在pvemanager-mobile.js文件中搜索PVE.NodeInfo,具体代码显示如下

Ext.define('PVE.NodeInfo', {
    extend: 'Ext.Component',
    alias: 'widget.pveNodeInfo',

    config: {
	style: 'background-color: white;',
	styleHtmlContent: true,
	data: [],
	tpl: [
	    '<table style="margin-bottom:0px;">',
	    '<tr><td>Version:</td><td>{pveversion}</td></tr>',
	    '<tr><td>Memory:</td><td>{[this.meminfo(values)]}</td></tr>',
	    '<tr><td>CPU:</td><td>{[this.cpuinfo(values)]}</td></tr>',
	    '<tr><td>Uptime:</td><td>{[Proxmox.Utils.format_duration_long(values.uptime)]}</td></tr>',
	    '<tr><td>Temp:</td><td>{[this.tempinfo(values)]}</td></tr>',//增加页面显示温度是位置
	    '</table>',
	    {
		meminfo: function(values) {
		    var d = values.memory;
		    if (!d) {
			return '-';
		    }
		    return Proxmox.Utils.format_size(d.used || 0) + " of " + Proxmox.Utils.format_size(d.total);
		},

                //增加获取温度的方法
		tempinfo: function(values) {
		    var d = values.thermalstate;
		    if (!d) {
			return '-';
		    }
                    var c0 = d.match(/Package id 0.*?\+([\d\.]+)?/)[1];
                    var c1 = d.match(/Composite.*?\+([\d\.]+)?/)[1];
		    return 'CPU:'+c0+'   |  NVME:'+c1;
		},
		cpuinfo: function(values) {
		    if (!values.cpuinfo) {
			return '-';
		    }
		    var per = values.cpu * 100;
		    return per.toFixed(2) + "% (" + values.cpuinfo.cpus + " CPUs)";
		}
	    }
	]
    },
});

增加红色字体部分内容。

修改完成后在shell中重启pve的web管理器:

systemctl restart pveproxy

完成温度显示操作。

关闭ksm 内核共享内存

进程有一个ksm的进程会占用一部分cpu,会一直检测虚拟机的空闲内存,可以空出来给其他虚机用,用不到可以关闭

systemctl disable ksmtuned
systemctl stop ksmtuned

去登陆后的订阅弹窗

需要修改文件/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

搜索关键字 checked_command 定位,红色if判断改成false即可,然后重启pve的web管理器

    checked_command: function(orig_cmd) {
	Proxmox.Utils.API2Request(
	    {
		url: '/nodes/localhost/subscription',
		method: 'GET',
		failure: function(response, opts) {
		    Ext.Msg.alert(gettext('Error'), response.htmlStatus);
		},
		success: function(response, opts) {
		    let res = response.result;
		    if (false) {
			Ext.Msg.show({
			    title: gettext('No valid subscription'),
			    icon: Ext.Msg.WARNING,
			    message: Proxmox.Utils.getNoSubKeyHtml(res.data.url),
			    buttons: Ext.Msg.OK,
			    callback: function(btn) {
				if (btn !== 'ok') {
				    return;
				}
				orig_cmd();
			    },
			});
		    } else {
			orig_cmd();
		    }
		},
	    },
	);
    },

暴雪战网国际服

如果是已经安装了网易战网的

1,完全卸载网易战网客户端,推荐用geek.exe软件完全卸载干净

2,上bilzzard.com下载国际服战网客户端。

3,保险起见,先重启电脑

4,安装国际服客户端

5,打开国际服客户端,注册国际服账号

6,在登录界面选择地区,输入账户密码登录,搞定!

PVE7.0安装后的调试

Debian的源升级
sed -i ‘s/buster/updates/bullseye-security/g;s/buster/bullseye/g’ /etc/apt/sources.list
修改软件源
sed -i -e ‘s/buster/bullseye/g’ /etc/apt/sources.list.d/pve-install-repo.list
删除企业源
echo “deb https://enterprise.proxmox.com/debian/pve bullseye pve-enterprise” > /etc/apt/sources.list.d/pve-enterprise.list
ceph源修改
echo deb http://mirrors.ustc.edu.cn/proxmox/debian/ceph-octopus bullseye main > /etc/apt/sources.list.d/ceph.list
更新
apt update && apt dist-upgrade

PVEtools安装
export LC_ALL=en_US.UTF-8
apt update && apt -y install git && git clone https://hub.fastgit.org/ivanhao/pvetools.git
cd /etc/pvetools
./pvetools.sh
pvetools有的功能已经不能使用,注意,去除订阅提示一项使用后WEB登陆后界面不显示。

1.查看系统的网络配置
使用命令:ifconfig -a | less
2.查看系统的网卡状态
使用命令:ip link
3.更改PVE登录IP管理地址
用vi修改下面文件
/etc/network/interfaces
/etc/issue
/etc/hosts
修改后输入 :wq
我在安装完PVE7.0后修改了管理IP, 但是主机显示的IP地址没有跟着改变,方法是修改/etc/issue和
/etc/hosts这两个文件后解决 ,不知道算不算是新版的BUG。
4.pve 邮箱配置
使用命令:vi /etc/pve/user.cfg
5.PVE系统盘存储空间全部划分Local
lvremove pve/data#删除LVM-Thin删除local-lvm逻辑卷pve/data
lvextend -l +100%FREE -r pve/root#将未分配的空间扩容到pve/root,local逻辑卷pve/root扩容
vgdisplay pve #查看PVE的状态
df -h #查看更改后的情况
在 “数据中心” – “存储” 中删除local-lvm
编辑Local,“内容”选中所有
6.查看CPU温度
apt update
apt install lm-sensors
sensors
7.路径执行
whereis reboot
8镜像转成虚拟磁盘
qm importdisk 100 /var/lib/vz/template/iso/synoboot.img local
qm importdisk是PVE导入磁盘到虚拟机的工具,后面的参数‘100’是DSM虚拟机的编号,‘/var/lib/vz/template/iso/syboboot.img’是上传群晖引导镜像的完整目录,在上传任务中查看,‘local’是PVE储存虚拟磁盘的存储空间,synoboot.img是引导文件。
8直通磁盘
查看你现在的存储设备的序列号:
ls /dev/disk/by-id
然后就能看到所有存储设备的序列号
然后输入以下代码(请把硬盘序列号换成你硬盘的,100换成你LEDE的虚拟机ID)
sata1后面数字1换成SATA序号(多块硬盘挂载需要修改)
qm set 100 -sata1 /dev/disk/by-id/ata-WDC_WDXXXX_XXXX_XXXX
如果返回以下信息,说明已成功挂载
update VM 100: -sata1 /dev/disk/by-id/ata-WDC_WDXXXX_XXXX_XXXX
然后可以进入PVE管理网页,查看是否真的挂载成功.如果看到LEDE虚拟机硬件设备里有这个,就说明成功.linux运维数据库

PVE工具的安装和使用

今天推荐一个工具PveTools如下:
安装:

1.先删除企业源: rm /etc/apt/sources.list.d/pve-enterprise.list

2.安装 export LC_ALL=en_US.UTF-8 apt update && apt -y install git && git clone https://github.com/ivanhao/pvetools.git

3.启动工具(cd到目录,启动工具)

cd pvetools

./pvetools.sh

卸载删除下载的pvetools目录即可

Linux查看外网访问ip

对连接的IP按连接数量进行排序  
netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n  

查看TCP连接状态  

netstat -nat |awk ‘{print $6}’|sort|uniq -c|sort -rn  
netstat -n | awk ‘/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}’  
netstat -n | awk ‘/^tcp/ {++state[$NF]}; END {for(key in state) print key,”\t”,state[key]}’  
netstat -n | awk ‘/^tcp/ {++arr[$NF]};END {for(k in arr) print k,”\t”,arr[k]}’  
netstat -n |awk ‘/^tcp/ {print $NF}’|sort|uniq -c|sort -rn  
netstat -ant | awk ‘{print $NF}’ | grep -v ‘[a-z]’ | sort | uniq -c  

查看80端口连接数最多的20个IP    
netstat -anlp|grep 80|grep tcp|awk ‘{print $5}’|awk -F: ‘{print $1}’|sort|uniq -c|sort -nr|head -n20  

查找较多time_wait连接  

netstat -n|grep TIME_WAIT|awk ‘{print $5}’|sort|uniq -c|sort -rn|head -n20  
查找较多的SYN连接  
netstat -an | grep SYN | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | more 

查看当前并发访问数:
netstat -an | grep ESTABLISHED | wc -l

查看所有连接请求
netstat -tn 2>/dev/null 
但是只要established的,则grep  “ESTABLISHED” 
netstat -tn | grep ESTABLISHED 2>/dev/null

查看访问某一ip的所有外部连接IP(数量从多到少)

netstat -nt | grep 121.41.30.149:80 | awk ‘{print $5}’ | awk -F: ‘{print ($1>$4?$1:$4)}’ | sort | uniq -c | sort -nr | head

根据端口查找进程

netstat -ntlp | grep 80 | awk ‘{print $7}’ | cut -d/ -f1

下面未验证

防范DDOS攻击脚本  

#防止SYN攻击 轻量级预防  
iptables -N syn-flood  
iptables -A INPUT -p tcp –syn -j syn-flood  
iptables -I syn-flood -p tcp -m limit –limit 3/s –limit-burst 6 -j RETURN  
iptables -A syn-flood -j REJECT  

#防止DOS太多连接进来,可以允许外网网卡每个IP最多15个初始连接,超过的丢弃  
iptables -A INPUT -i eth0 -p tcp –syn -m connlimit –connlimit-above 15 -j DROP  
iptables -A INPUT -p tcp -m state –state ESTABLISHED,RELATED -j ACCEPT  

#用Iptables抵御DDOS (参数与上相同)  
iptables -A INPUT  -p tcp –syn -m limit –limit 12/s –limit-burst 24 -j ACCEPT  
iptables -A FORWARD -p tcp –syn -m limit –limit 1/s -j ACCEPT   

根据nginx的访问日志判断
查看访问记录
1.从1000行开始到3000
cat access.log |head -n 3000|tail -n 1000
2.从1000行开始,显示200行
cat access.log |tail -n +1000 |head -n 200
3.

通过查询日志记录进行分析(如果没有单独配置,access.log一般放在nginx/logs下)
awk ‘{print $1}’ 日志地址 | sort | uniq -c | sort -n -k 1 -r | head -n 100

tail -n 1000:显示最后1000行
tail -n +1000:从1000行开始显示,显示1000行以后的
head -n 1000:显示前面1000行

1.根据访问IP统计UV

awk ‘{print $1}’  access.log|sort | uniq -c |wc -l

2.统计访问URL统计PV

awk ‘{print $7}’ access.log|wc -l

3.查询访问最频繁的URL

awk ‘{print $7}’ access.log|sort | uniq -c |sort -n -k 1 -r|more

4.查询访问最频繁的IP

awk ‘{print $1}’ access.log|sort | uniq -c |sort -n -k 1 -r|more

5.根据时间段统计查看日志

 cat  access.log| sed -n ‘/14\/Mar\/2015:21/,/14\/Mar\/2015:22/p’|more

6.通过日志查看含有send的url,统计ip地址的总连接数
cat access.log | grep “send” | awk ‘{print $1}’ | sort | uniq -c | sort -nr

7.通过日志查看当天访问次数最多的时间段
awk ‘{print $4}’ access.log | grep “24/Mar/2011” |cut -c 14-18|sort|uniq -c|sort -nr|head

8.通过日志查看当天指定ip访问次数过的url和访问次数
cat access.log | grep “222.132.90.94” | awk ‘{print $7}’ | sort | uniq -c | sort -nr

PVE开启显卡直通

首先编辑GRUB配置文件:

root@pve:~# vim /etc/default/grub
root@pve:~#
root@pve:~# cat /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'


GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:off"
GRUB_CMDLINE_LINUX=""


# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"


# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console


# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480


# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true


# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"


# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"
root@pve:~#


开启IOMMU支持:


GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:off"
如果是AMD的CPU:


GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on video=efifb:off"

更新GRUB:

root@pve:~# update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-5.11.22-5-pve
Found initrd image: /boot/initrd.img-5.11.22-5-pve
Found linux image: /boot/vmlinuz-5.11.22-4-pve
Found initrd image: /boot/initrd.img-5.11.22-4-pve
Found memtest86+ image: /boot/memtest86+.bin
Found memtest86+ multiboot image: /boot/memtest86+_multiboot.bin
done
root@pve:~#

添加所需的系统模块(驱动):

root@pve:~#
root@pve:~# echo "vfio" >> /etc/modules
root@pve:~# echo "vfio_iommu_type1" >> /etc/modules
root@pve:~# echo "vfio_pci" >> /etc/modules
root@pve:~# echo "vfio_virqfd" >> /etc/modules
root@pve:~#
root@pve:~# cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.



# Generated by sensors-detect on Fri Sep 24 17:22:44 2021
# Chip drivers
coretemp
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

接着添加模块(驱动)黑名单,即让GPU设备在下次系统启动之后不使用这些驱动,把设备腾出来给vfio驱动用:

Intel核显:

echo "blacklist snd_hda_intel" >> /etc/modprobe.d/pve-blacklist.conf
echo "blacklist snd_hda_codec_hdmi" >> /etc/modprobe.d/pve-blacklist.conf
echo "blacklist i915" >> /etc/modprobe.d/pve-blacklist.conf

N卡/A卡:

echo "blacklist nouveau" >> /etc/modprobe.d/pve-blacklist.conf
echo "blacklist radeon" >> /etc/modprobe.d/pve-blacklist.conf

如果是N卡还需要加入下面的配置到kvm.conf(据老外说是避免一些莫名其妙的错误):

echo "options kvm ignore_msrs=1" > /etc/modprobe.d/kvm.conf
root@pve:~# echo "blacklist nouveau" >> /etc/modprobe.d/pve-blacklist.conf
root@pve:~# echo "blacklist radeon" >> /etc/modprobe.d/pve-blacklist.conf
root@pve:~#
root@pve:~# cat /etc/modprobe.d/pve-blacklist.conf
# This file contains a list of modules which are not supported by Proxmox VE


# nidiafb see bugreport https://bugzilla.proxmox.com/show_bug.cgi?id=701
blacklist nvidiafb
blacklist nouveau
blacklist radeon
root@pve:~#
root@pve:~# echo "options kvm ignore_msrs=1" > /etc/modprobe.d/kvm.conf
root@pve:~#
root@pve:~# cat /etc/modprobe.d/kvm.conf
options kvm ignore_msrs=1

更新内核:

root@pve:~# update-initramfs -u
update-initramfs: Generating /boot/initrd.img-5.11.22-5-pve
Running hook script 'zz-proxmox-boot'..
Re-executing '/etc/kernel/postinst.d/zz-proxmox-boot' in new private mount namespace..
No /etc/kernel/proxmox-boot-uuids found, skipping ESP sync.
root@pve:~#

重启机器:

root@pve:~# reboot

重启上来之后检查模块是否正常加载:

root@pve:~# lsmod | grep vfio
vfio_pci               57344  1
vfio_virqfd            16384  1 vfio_pci
irqbypass              16384  11 vfio_pci,kvm
vfio_iommu_type1       36864  1
vfio                   36864  5 vfio_iommu_type1,vfio_pci
root@pve:~#

查看显卡

root@pve:~# lspci -nn | grep NV
86:00.0 3D controller [0302]: NVIDIA Corporation TU104GL [Tesla T4] [10de:1eb8] (rev a1)
root@pve:~#
root@pve:~#

查看显卡ID,写入到配置中

root@pve:~# lspci -n -s 86:00
86:00.0 0302: 10de:1eb8 (rev a1)
root@pve:~#
root@pve:~#
root@pve:~# echo "options vfio-pci ids=10de:1eb8" > /etc/modprobe.d/vfio.conf
root@pve:~#

pve开启网络唤醒支持

第一步:

是要把bios里面远程唤醒功能和PCI启动打开

第二步:

在PVE里面的SHELL或者SSH安装 ethtool 工具,安装命令:

apt-get install ethtool

第三步:

用ethtool工具查看网卡信息,如果是多网卡的话,需要先搞清楚哪个是链接外网的管理口,举例网卡为enp3s0

ethtool enp3s0

找到网卡信息中的supports wake-on和wake-on两个参数,如果supports值为pumbg,表示网卡支持远程唤醒,wake-on的值d表示禁用、g表示开启,默认为d。

第四步:用ethtool开启网卡远程唤醒,把wake-on值改为g

ethtool -s enp3s0 wol g

因为每次重启后会失效,所以我们需要把开启命令写入开机自动执行脚本。

第五步:

编辑  /etc/rc.local文件,写入开机自动执行开启远程唤醒的脚本。

nano /etc/rc.local

插入以下代码后保存重启all done

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/sbin/ethtool -s enp3s0 wol g 

exit 0

比较新的Linux发行版已经没有rc.local文件了。因为已经将其服务化了。

解决方法:

1、设置rc-local.service

1 2 3 4 5 6 7 8 9 10 11 12 13sudo vim /etc/systemd/system/rc-local.service [Unit]  Description=/etc/rc.local Compatibility  ConditionPathExists=/etc/rc.local [Service]  Type=forking  ExecStart=/etc/rc.local start  TimeoutSec=0  StandardOutput=tty  RemainAfterExit=yes  SysVStartPriority=99 [Install]  WantedBy=multi-user.target

2、激活rc-local.service

1sudo systemctl enable rc-local.service

3、添加启动服务

手工创建或者拷贝已有的/etc/rc.local,并赋予执行权限

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing.   # 下面这条是要开机启动的命令 /home/selfcs/anaconda3/bin/python /home/selfcs/t.py > /home/selfcs/auto.log   exit 0 #给予脚本执行权限 sudo chmod +x /etc/rc.local

物理机安装openwrt

准备

USB一个,下载openwrt固件.img,WePE_64_V2.1.exe(pe系统写盘工具),physdiskwrite.exe(写入固件工具),闲置电脑一台!

第一步

在自己的电脑上使用pe写盘工具,将pe系统写入u盘

第二步

将physdiskwrite.exe和openwrt固件.img拷贝到u盘中

第三步

u盘插入需要刷入openwrt的闲置电脑

第四步

选择从U盘启动,进入pe系统。使用pe系统自带的磁盘工具,将闲置电脑的硬盘抹除并格式化

第五步

打开pe系统的cmd 将physdiskwrite.exe拖入cmd窗口–按空格 输入-u 按空格–将openwrt固件.img拖入cmd窗口,回车。等待固件写入硬盘后,重启闲置电脑

第六步

拔出U盘,重启闲置电脑后,自动进入openwrt安装界面,根据需求选择安装。

第七步

安装完成后,重启进入openwrt系统命令控制行,先修改密码:passwd

第八步

输入nano /etc/config/network 编辑lan口和wan口设置

设置完成后,ctrl+x—y回车–回车—输入reboot重启加载配置

第九步

网线和自己电脑相连,浏览器输入设置后的lan口ip进入operwrt-ui界面进行其他设置

以上是安装的整个过程。