wordpress隐藏文章的部分内容,需要注册登录网站后可见

这种方式适合VIP会员,会员要注册登录才能访问,而注册需要邀请码,可以出售邀请码,就变成了VIP会员可以访问隐藏的内容。

// 添加只允许登录后查看  
 
add_shortcode( 'members_only', 'members_only_shortcode' );
 
function members_only_shortcode( $atts, $content = null ) {
 
if ( is_user_logged_in() && !empty( $content ) && !is_feed() )    {
 
return $content;
 
}
 
$a= '<center><span>
<div style="text-align:center;border:1px dashed #FF9A9A;padding:8px;margin:10px auto;color:green;">要查看更多文章内容,请您先<a href="http://daaa.ga/wp-login.php" target="_blank">登录/注册</a>
</div>
</span></center>';
 
return $a;
 
}

在主题模板函数 functions.php的<?php下边添加代码实现。

[members_only]

这里的内容只为已登录的用户显示的

[/members_only]

How To Fix ERR_SSL_VERSION_INTERFERENCE Chrome Error

Pro Tip – Disable TLS 1.3

Disabling TLS 1.3 in Chrome can also be a savior if you are getting ERR_SSL_VERSION_INTERFERENCE error while accessing a website. Here are the steps to do so:

Step 1: Open a new tab in Chrome, and in the address bar, type chrome://flags/ and press Enter key. This will open the flags options in Chrome.

Step 2: Now, in the flag search box, type TLS. You will get the TLS 1.3 option on the screen. From its dropdown menu, which would be set to Default, select the Disable option. As soon as you select the option, you will get the Relaunch Now option on screen to restart Chrome; click on it.

VNet隧道一键安装脚本,一键安装转发流量

因为自己也会经常安装,所以干脆写一下脚本。节省了很多工作量
本人能力有限,脚本只基于CentOS7 x64系统

执行一键脚本

yum -y install wget
wget -N --no-check-certificate "https://txt.yuwai.xyz/wp-content/uploads/2020/03/vnet.sh";chmod +x vnet.sh;./vnet.sh
微信截图_20200228210300.png

支持控制端(国内NAT和非NAT机器)的安装

支持服务端(国外机器)的安装

脚本比较简单,但可以明显提示安装效率。

目前1.2.3功能可用,其他的还在咕咕咕。

如果你安装好后不会配置或想要手动安装,可以查看:VNet-Tunnel隧道传输SSR流量安装教程

最详细的VNet-Tunnel隧道传输流量安装教程-WS协议隧道

本文介绍Vnet隧道使用方案

1143362.jpg

隧道简介

隧道是将两台服务器相连,加密传输数据。一个机器接收到流量加密成隧道流量发送给另一个,另一个机器接收隧道流量再解密之后发送到你指定的地址和端口,通过隧道流量过墙。

比如用SS-r,端口和地址填a服务器的隧道接收端口和地址,a接收到流量加密一下发送给b服务器,b解密之后在把流量发到你的Ss-r服务器,等于b服务器代替你发送Ss-r流量。一般来说a在国内,b在国外。Ss-r服务器和b可以在一个服务器。

声明:本教程基于Centos7,程序加密,具体安全性未知,后门情况未知。

文件下载地址:tunnel.zip
附带的说明文档:vnet.pdf

接收端设置

接收端叫server端,也就是服务端,通常是国外服务器,负责接收隧道流量然后解密并转发。

连接上VPS,首先我们确保服务器安装有zip和unzip,执行安装命令

yum -y install zip unzip

下载文件,然后解压缩,之后再赋予执行权限

wget -N --no-check-certificate "https://txt.yuwai.xyz/wp-content/uploads/2020/03/tunnel.zip" && unzip tunnel.zip && chmod -R +x ./*

然后让程序后台运行

nohup ./server >> /dev/null 2>&1 &

此时建立一个web服务,在浏览器访问VPS的IP的8081端口的地址,比如:

服务器IP:8081/resources/add_server.html

会打开一个界面,点击添加按钮填写配置

222.png

如果打不开界面,可能是防火墙问题,请到文章底部查看防火墙设置

第一个远端地址填写的是监听地址,默认的不用管。端口示例12345,此端口任意,需与发送端对应

然后下面那个填写转发地址,就是接收到隧道流量解密之后发送到哪里。比如这个VPS本身搭建了一个8090端口的Ss-r,就转发到本地IP127.0.0.1的8090端口。(文章结尾会附上docker写法)

发送端设置

发送端叫做client,也就是客户端,通常是国内机,负责接收流量然后加密成隧道流量发送给服务端。

同样的,连接上VPS首先我们确保安装有zip和unzip

yum -y install zip unzip

然后下载文件,然后解压缩,之后再赋予执行权限,

wget -N --no-check-certificate "https://txt.yuwai.xyz/wp-content/uploads/2020/03/tunnel.zip" && unzip tunnel.zip && chmod -R +x ./*

然后后台运行client

nohup ./client >> /dev/null 2>&1 &

此时web访问网址,注意是8080

服务器IP:8080/resources/add_client.html

添加配置

111.png

同样如果打不开页面请cha’k后面的防火墙设置

如图,主要修改本地配置的端口号,比如图中就是11080。代表国内鸡使用端口

然后是远端配置,这个地方填写接收隧道流量vps的IP地址,端口随意但需要与接收端相同,这里就填12345然后保存。

此时两个机器直接的隧道就建立起来了,此时大体流程就是你把流量发送到client端的12345端口,然后client通过隧道把流量发到server端,server端接收到隧道流量,还原成你发送的流量再发送到上图中指定的IP地址127.0.0.1的8090端口。隧道不是代理,只是提供流量传输。

CentOS7防火墙设置

首先关闭防火墙

systemctl stop firewalld
systemctl mask firewalld

然后启用iptables

yum install -y iptables
yum install iptables-services -y

设置规则

iptables -F
iptables -P INPUT ACCEPT
iptables -X

NAT机发送端设置

NAT机共享IP,端口也不是独占所有,所以需要端口映射。

一般NAT机端口问题很好解决,一些主机上面板就能直接管理端口映射,所以此处就仅说一下直通端口的映射,也就是开出来机器,主机商直接给你固定的一些端口,这些端口和你的NAT机是直通的。

映射很简单,此处使用防火墙firewall来实现。可以参考我之前发布的firewall教程。

此处比如用22222的直通端口来实现访问8080端口的效果。

首先机器要有firewall并且开启,然后开启路由转发

echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf

生效路由转发

sysctl -p

开启流量伪装

firewall-cmd --zone=public --permanent --add-masquerade

开放端口

firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --add-port=22222/tcp --permanent

然后把22222端口流量转发到8080端口

firewall-cmd --add-forward-port=port=22222:proto=tcp:toaddr=192.168.1.136:toport=8080 --permanent

此处的192.168.1.136是NAT的内网IP地址,NAT都会有这个。

然后重新加载防火墙配置

firewall-cmd --reload

此时我们访问22222端口,firewall会把流量发到8080端口,所以访问22222端口等同于访问8080端口。

SSPANEL前端设置

请确保已经安装好单端口承载和偏移

333.png

端口偏移至发送机端口,如文章示例的11080,如果承载端口是80。则填写在描述页或地址页#11000

Docker SSR后端配置

以示例的8090端口,承载80为数据

docker run -d --name=容器名称 -e NODE_ID=节点ID -e API_INTERFACE=modwebapi -e WEBAPI_URL=节点地址 -eSPEEDTEST=0 -e WEBAPI_TOKEN==对接密钥 --log-opt max-size=50m --log-opt max-file=3 -p 80900:80/tcp -p 8090:80/udp --restart=always stone0906/ssrmuv2

此部分可查看通过Docker部署端口偏移详解,如果启动失败,请重启服务器再运行

安全部分

细心的小伙伴可能发现了,访问发送端和接收端是无需验证的。这也就意味着只要知道我们的IP谁都可以访问。

我们可以在设置完成后通过关闭端口的方式保证安全。

接收端(国外)关闭8081

iptables -A INPUT -p tcp --dport 8081 -j DROP

发送端(国内)关闭8080

iptables -A INPUT -p tcp --dport 8080 -j DROP

如果国内用的NAT,则关闭对应端口,比如11080

iptables -A INPUT -p tcp --dport 11080 -j DROP

如果要启用端口,在两台服务器上均执行清除规则命令

iptables -F

备注

无论发送端还是接收端,服务器重启后均会丢失数据。
意味着每次我们重启服务器都需要重新启动服务
发送端(国内)

nohup ./client >> /dev/null 2>&1 &

接收端(国外)

nohup ./server >> /dev/null 2>&1 &

且每次重启都需要重新添加规则,所以,尽量不要重启服务器。

如果不会手动安装,可以选择一键安装脚本VNet隧道一键安装脚本

感谢名单

本文部分内容(NAT部分)引用Yi博客(https://evlan.cc/archives/vnet-tunnel.html)
安装部分引用原文作者徐嫦曦(https://github.com/rc452860)
服务器防火墙部分引用小黑:(https://t.me/xiaohei2333)
如果引用部分涉及侵权,请联系我们。

如何更改linux文件的拥有者及用户组(chown和chgrp)

一、基本知识

  在Linux中,创建一个文件时,该文件的拥有者都是创建该文件的用户。该文件用户可以修改该文件的拥有者及用户组,当然root用户可以修改任何文件的拥有者及用户组。在Linux中,对于文件的权限(rwx),分为三部分,一部分是该文件的拥有者所拥有的权限,一部分是该文件所在用户组的用户所拥有的权限,另一部分是其他用户所拥有的权限。对于文件的权限请参考《Linux的chmod命令》

   文件(含文件夹,下同)的权限,在shell中可以通过chmod命令来完成,关于此请参考《Linux的chmod命令》。在 shell 中,可以使用chown命令来改变文件所有者及用户组,chgrp命令来改变文件所在用户组。在 Linux的C程序中,可以使用chown函数来改变文件所有者,及所在用户组。

  另外,在shell中,要修改文件当前的用户必须具有管理员root的权限。可以通过su命令切换到root用户,也可以通过sudo获得root的权限。

二、使用chown命令更改文件拥有者

在 shell 中,可以使用chown命令来改变文件所有者。chown命令是change owner(改变拥有者)的缩写。需要要注意的是,用户必须是已经存在系统中的,也就是只能改变为在 /etc/passwd这个文件中有记录的用户名称才可以。

chown命令的用途很多,还可以顺便直接修改用户组的名称。此外,如果要连目录下的所有子目录或文件同时更改文件拥有者的话,直接加上 -R的参数即可。

基本语法:

chown [-R] 账号名称 文件或目录

chown [-R] 账号名称:用户组名称 文件或目录

Linux创建快捷方式(链接)命令ln

在Linux Mint中好像没有用鼠标创建快捷方式的方法(或许是我没发现)。创建快捷方式可以使用ln命令
使用方法:
ln -s 源文件 目标目录
好像必须是完整的路径,不管当前在哪个目录。

ln -s /home/wwwroot/index.html /home/fff/desk

即在 /desk 创建 /index.html 的链接。
加参数-s是创建软链接,相当于Windows下的快捷方式,不加-s是硬链接,就是会复制一个副本到目标位置,但是与复制不同,两个文件,只要修改一个,另一个会跟着改变。

设置openwrt路由器的防火墙_允许从外网访问内网的ipv6服务

家用宽带目前很多都部署了IPv6,家用路由器目前Padavan/Openwrt等系统都能较好地支持了IPv6。不过要充分利用IPv6链接设备,有些坑。

动态变化的IPv6地址

首先是IPv6地址,不同设备(操作系统)获取的IPv6地址有区别,较为通用的是【无状态EUI-64地址】,操作系统通过网卡的mac地址生成一个64位固定后缀,以及路由器下发的64位前缀,合成一个固定的IPv6地址。作为服务端,【无状态EUI-64地址】是较为适合的,Linux发行版很多组件(systemd-netword,dhcpcd等)默认都采用EUI-64地址。

另外还有通过DHCPv6下发的地址,这个就不大可控,跟DHCPv6服务器和终端客户有关,特点是生成的后缀较短。

此外,家用宽带ISP提供的IPv6前缀是不定期变化的。可见要访问家庭宽带内网的设备,光是地址就存在了蛮多的变化因素。

IPv6的【隐私扩展地址】

终端设备,比如手机、工作站版本Windows等设备,则使用【隐私扩展】的方式随机生成64位后缀,这样终端的地址每次链接时候都会随机改变,访问外部资源时候可避免被追踪。

如果要连接Windows远程桌面,安装的是工作站版本,系统默认已经启用【隐私扩展】,主机地址就是随机变化的,想要连接3389就很麻烦了,不过这个特性可以关闭。服务器版本的Windows默认不启用隐私扩展,而家庭版Windows不支持远程桌面[doge]。

管理员权限的CMD下执行

  • netsh interface ipv6 set global randomizeidentifiers=disabled store=active
  • netsh interface ipv6 set global randomizeidentifiers=disabled store=persistent
  • netsh interface ipv6 set privacy state=disabled store=active
  • netsh interface ipv6 set privacy state=disabled store=persistent

IPv6防火墙ip6tables

要从外网通过IPv6访问家里路由器下的设备,最关键一点是路由器上的防火墙要允许这样的转发。

Padavan/Openwrt都是基于Linux – ip6tables的防火墙。默认情况下,ip6tables只允许了v6子网内的设备被ping,只允许特定类型的ICMPv6报文通过,其他通信报文一律丢弃了。所以虽然IPv6下每个设备都有公网地址,但是还不至于不安全到每个设备都可让人随便连。

动态匹配EUI-64后缀

考虑到前缀变化因素,要访问特定设备,就是让IPTABLES匹配特定设备的EUI-64后缀放通这个地址:

  • ip6tables -I FORWARD -d ::abcd:1234:5678:90ef/::ffff:ffff:ffff:ffff -j ACCEPT

可见iptables对v6地址的匹配掩码可以非常灵活,不像v4下只按前缀适配。坑的就是这个特征是没有文档的,目前文档中写的mask解释还是适配IPv4的内容,有人专门发邮件去netfilter列表问了才知道。IPv6地址中,双冒号::的写法代表是前/后均为0位,双冒号只能出现一次。

Openwrt中配置转发规则

Padavan中设置转发规则

其实padavan中的防火墙功能并没有配置地址匹配转发规则的功能界面,只能在自定义脚本中写原始的iptables命令。截图中使用的padavan是增加了QOS组件的老毛子版本。

padavan-ip6tables

以上。

参考文章:

现在家庭宽带的运营商,都已经提供 ipv6 了。
当你拨号上网后,运营商给你的路由器分配一个 ipv6 的同时,还会给你分配一个 ipv6 的前缀。
这样,你路由器后面的所有设备都会得到一个公网的 ipv6 地址。
但是,你会发现,内网的设备,虽然有公网ipv6地址,但无法从外网访问它们。仅能从外网ping通它们。
这是因为路由器的缺省设置。为了保护内网设备,缺省没有把内网设备暴露到公网上,仅仅允许从公网ping它们。

如果你内网有一台机器,提供了https或别的什么的服务,需要允许从公网访问它。
就需要修改路由器防火墙的设置,允许从公网访问这台机器的指定端口。

OpenWRT 的防火墙设置:

添加一个规则:

返回后,可以看到有一个”未命名的规则”,编辑它:

按需设置:

  • 内网设备的ipv6地址,
    前半部分是ipv6前缀,是运营商分配的。重拨后会变化。
    后半部分,如果不是eui64,就是随机生成的,也会变。如果是eui64,则与mac地址相关,不会变化,除非换网卡。
  • 如果整个ipv6都会变,防火墙规则就没办法写了。除非全网放行(内网目标地址掩码填::/0any)。
  • 所以配置内网设备的ipv6地址为eui64,防火墙的内网目标地址掩码填 ::xxxx:xxxx:xxxx:xxxx/::FFFF:FFFF:FFFF:FFFF, 这样就比较安全了。
    (ipv6地址掩码比v4灵活,v6可以掩前面,也可以掩后面。v4就只能掩前面)比如: 你的ipv6地址为,2408:ebcd:ebcd:ebcd:5678:5678:5678:5678
    则目标地址掩码填, 0:0:0:0:5678:5678:5678:5678/0:0:0:0:FFFF:FFFF:FFFF:FFFF
    连续的 0 简写为两个冒号,即,::5678:5678:5678:5678/::FFFF:FFFF:FFFF:FFFF
  • 设置Linux的ipv6为eui64模式,请参考:(Linux ipv6 无状态 设置为 eui64)
  • 获取本机ipv4/ipv6,更新ddns,请参考:(Linux中获取本机的最新IPv6地址_更新ddns的脚本)

—end—

linux服务器创建swap

如果你想提高你的服务器的性能,增加交换空间(内存交换)是一个强大的和相对简单的开始。

swap介绍

一旦内存快满的时候,交换空间是一个专用的服务器可以在其内存转储的内容的硬盘。要理解的真正好处,您需要熟悉处理器架构,但这里有一个简要的说明:

  • RAM处理器快速提供数据,这使得它非常有价值。
  • 一旦你的内存满是它需要删除或移动数据。
  • 删除内存的数据意味着它必须找到和检索的硬盘(缓慢)下次请求的数据。
  • 通过将数据从内存和交换空间,而不是简单地删除它从RAM,更快找到下一次的数据请求。
  • 从内存到交换空间移动数据消耗处理器资源,这样做实际上不断会降低应用程序的性能(这就是所谓的交换)。为了找到最优交换率,它需要调优。

最后———虽然差异是分钟,为了清楚起见,本文将指导您通过创建一个交换文件——不是一个交换分区。如果你不知道这意味着什么,别担心。

检查当前使用交换空间

防止添加交换时有任何问题,首先检查你的系统没有启用已经交换空间。

找到任何交换空间驱动:

sudo swapon -s

如果结果是空的,输出类似于下面的例子,你目前没有交换空间启用:

Filename                Type        Size    Used    Priority

如果您的系统是否已经配置了交换,结果看起来像这个例子:

Filename           Type         Size      Used  Priority
/dev/sda7          partition    123450    100   -1

检查你的可用空间

现在,您已经准备好创建一个交换文件,你需要找到你的服务器的硬盘空间。

检查服务器上的可用空间量:

df -h

这个命令显示了硬盘上的自由空间。在接下来的例子中,你有40 GB可用。确保有足够的自由空间交换文件。取决于你的需求所需要的空间,但一般来说,相当于系统RAM的二倍。

Filesystem      Size  Used Avail Use% Mounted on    
/dev/vda         50G  10G   40G   20% /             
none            4.0K     0  4.0K   0% /sys/fs/cgroup  
udev            2.0G   12K  2.0G   1% /dev           
tmpfs           396M  312K  396M   1% /run    
none            5.0M     0  5.0M   0% /run/lock  
none            2.0G     0  2.0G   0% /run/shm  
none            100M     0  100M   0% /run/user      

创建一个交换文件

将交换空间添加到系统通过创建一个名为swapfile的文件在你的根目录(/)和分配它作为交换。有两个命令,您可以使用它来创建交换文件:

  • fallocate
  • dd

你只需要使用其中的一个。我们建议使用fallocate,但如果它不支持的文件系统上,您可以使用dd。

你可以获得更多的文件空间使用fallocate,fallocate是一个用于操作文件空间的命令。fallocate命令创建了一个预先分配大小并且没有初始化的文件,与dd命令相比,它需要更长的时间,因为它必须写入0作为虚拟内容。

使用fallocate创建一个交换文件

创建用于交换的文件。对于这个示例,我们添加一个4 GB的文件:

#4G
sudo fallocate -l 4G /swapfile

#1G
sudo fallocate -l 1G /swapfile

#512MB
sudo fallocate -l 512M /swapfile

确认正确的数量的空间被保留:

#确认
ls -lh /swapfile

这个结果表明,添加文件是使用正确的留出的空间量:

-rw------- 1 root root 4.0G Jul 08 10:52 /swapfile

如果你得到一个失败消息说fallocate失败:操作不支持,您的文件系统目前不支持fallocate(例如,ext3)。使用更传统的方式使用dd命令。(这种情况应该很少)。

使用dd创建一个交换文件

在这个例子中,我们将添加一个不同大小的交换文件,1 GB,为了适应小型服务器。

添加1 GB交换文件,通过指定一个块大小250MB并且数量为4。

记得要仔细检查你的指令!这个命令有可能破坏数据如果(输出文件)指出错误的位置。

#1G
sudo dd if=/dev/zero of=/swapfile bs=1M count=1024

#512M
sudo dd if=/dev/zero of=/swapfile bs=1M count=512

几秒钟后,生成的输出是这样的:

4+0 records in
4+0 records out 
1048576000 bytes (1.0 GB) copied, 1.47414 s, 711 MB/s

验证文件在服务器上创建:

ls -lh /swapfile

如果文件被创建,命令返回类似于:

-rw-r--r-- 1 root root 1.0G Jul 08 10:30 swapfile

使交换文件

现在创建的文件,格式互换,然后启用它。

锁定交换文件的权限,因此只有root用户可以访问它:

#权限
sudo chmod 600 /swapfile

当第一次创建时,交换文件是可读的,所以锁权限可以防止用户阅读潜在的敏感信息。

确认文件正确的权限:

ls -lh /swapfile

这个命令返回类似于:

-rw------- 1 root root 4.0G Jul 08 10:40 /swapfile

这证实了,只有root用户启用了读写权限。

格式文件创建一个交换空间:

#创建
sudo mkswap /swapfile

如果成功,该命令会返回类似这样:

Setting up swapspace version 1, size = 4194300 KiB 
no label, UUID=e2f1e9cf-c0a9-4ed4-b8ab-714b8a7d6944

挂载/启用系统中的交换空间:

#挂载
sudo swapon /swapfile

验证交换空间是通过检查系统报告:

#验证
sudo swapon -s

这个命令返回类似于:

Filename Type Size Used Priority 
swapfile file 4194300 0 -1

使交换文件永久生效

最后一步是将交换文件集成到您的系统的存储分区,通过fstab

打开fstab

#写入
sudo vim /etc/fstab

在fstab文件最后,添加这一行告诉系统自动使用新创建的交换空间:

#增加这一行
/swapfile none swap sw 0 0

保存并关闭该文件:

:wq!

在下次重新启动后,自动交换使用

调整交换文件

现在您已经创建了交换文件,你应该进行调优,以确保它给你最佳性能。这不是你可以轻松地一口气就完成的工作,而是你会定期的作为管理员工作。

优化你的交换文件意味着修补的设置,使其执行交换(也就是说,将内容从RAM交换):

  • 虚拟运存控制
  • 缓存压力
    调优是很重要的,因为一个配置不佳的交换文件会损害应用程序的性能。系统的RAM和交换空间之间的相互作用是时间密集的(在计算规模上),并且尝试交换频率太高(即交换冲突)可能需要更多的时间,而不仅仅是从硬盘中恢复数据。

虚拟运存控制

Swappiness只是设置控制频率使用交换文件。

一个0到100之间的比例,swappiness值:

  • 0意味着避免交换过程的物理内存,直到绝对必要的(内存耗尽)
  • 100意味着积极(立刻)移动交换过程的物理内存和交换缓存

你可以改变你的服务器的swapinesssysctl.conf文件中。

打开/etc/sysctl.conf:

sudo vim /etc/sysctl.conf

在文件的最后一行添加:

vm.swappiness=10

保存并且退出:

:wq!

来优化您的应用程序中,您可以测试更改swappiness值(0到100之间)和运行性能测试。

缓存压力

另一个设置是vfs_cache_pressure。 当VFS(虚拟文件系统)缓存对象(称为dentry和inode_cache对象)占用更大量的内存而不是其他数据(如页面缓存和交换)时,更改此设置可能会有所帮助。 因为VFS缓存访问有关文件系统的数据,所以经常被请求并且非常耗资源。 因此,它是您的系统缓存的主要设置。

vfs_cache_pressure的值越高,您的服务器越有可能使用其交换。

你可以改变你的服务器的缓存压力在sysctl.conf

打开/etc/sysctl.conf:

sudo vim /etc/sysctl.conf

在文件最后一行添加:

vm.vfs_cache_pressure = 50

保存并关闭文件:

:wq!

swappiness,你可以提高性能通过测试不同的值。

启用交换空间

使用以下三个命令检查您的工作:

swapon -s命令:

sudo swapon -s

输出可能如下所示:

Filename                Type        Size    Used    Priority 
/swapfile               file        4194300 0       -1

您会看到添加了4 G的交换文件。

有关更详细的报告:

free -m

关于交换详细信息的报告:

cat /proc/meminfo | grep -i swap

结论

交换可以有利于允许您的系统利用比原来可用的更多的内存。 在优化应用程序配置,添加更多RAM或升级服务器之前,这是一个可行的选择。

但是,请务必记住定期调整交换文件,以确保您最充分地使用它。

树莓派3B主板接口定义

查看树莓派版本

树莓派3B主板接口定义

安装软件的时候想查看树莓派系统是32位还是64位就出现了以下的操作

具体命令及作用如下:

#Raspberry Pi 树莓派查看CPU温度
#
/opt/vc/bin/vcgencmd measure_temp
#temp=51.5'C
cat /sys/class/thermal/thermal_zone0/temp
#50464, 除以1000,单位是℃。
#
#
getconf LONG_BIT        # 查看系统位数
uname -a            # kernel 版本
/opt/vc/bin/vcgencmd  version   # firmware版本
strings /boot/start.elf  |  grep VC_BUILD_ID    # firmware版本
cat /proc/version       # kernel
cat /etc/os-release     # OS版本资讯
cat /etc/issue          # Linux distro 版本
cat /etc/debian_version     # Debian版本编号

虽然树莓派3b的硬件支持64位的系统,但是官方的系统还是32位的,主要应该是为了兼容之前的硬件

通过树莓派的硬件版本号和型号,我们可以确定树莓派是几代产品,还可以确定它是在哪里生产的等信息。目前树莓派的版本有:

型号及 PCB 批次内存cpuinfo中的硬件编号
Model B Rev 1256MB0002
Model B Rev 1
ECN0001 (no fuses, D14 removed)
256MB0003
Model B Rev 2256MB0004
0005
0006
Model A256MB0007
0008
0009
Model B Rev 2512MB000d
000e
000f
Model B+512MB0010
0013
900032
Compute Module512MB0011
Compute Module512MB0014 (Embest, China)
Model A+256MB0012
Model A+256MB0015 (Embest, China)
Model A+512MB0015 (Embest, China)
Pi 2 Model B v1.11GBa01041 (Sony, UK)
Pi 2 Model B v1.11GBa21041 (Embest, China)
Pi 2 Model B v1.21GBa22042
Pi Zero v1.2512MB900092
Pi Zero v1.3512MB900093
Pi Zero W512MB9000C1
Pi 3 Model B1GBa02082 (Sony, UK)
Pi 3 Model B1GBa22082 (Embest, China)
Pi 3 Model B+1GBa020d3 (Sony, UK)

该表不是固定的,随着树莓派版本的不断更新,该表可能未包含全部产品。

查找树莓派硬件版本号的方法

要查找出树莓派的硬件版本号,可以使用两种方法:

方法1 – Pinout应用程序

在新版本的Raspbian系统中添加了查看pinout的命令。它可以通过命令提示符或通过命令终端窗口运行: pinout , 输出如下图 :

Raspbian系统 pinout输出

Raspbian系统 pinout输出

该方法还能查看其他信息,比如在树莓派上的各个GPIO针的GPIO编号位置和所板载的RAM数量。

方法2 – cpuinfo文件

比较通用的查找树莓派硬件修订号的方法,是在命令提示符下或通命令过终端窗口运行以下命令读取“cpuinfo”文件: cat /proc/cpuinfo 。命令执行后将输出一段文本,如下显示:

Processor       : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS        : 847.05
Features        : swp half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xb76
CPU revision    : 7
Hardware        : BCM2708
Revision        : 0002
Serial          : 000000000abc0ab1

在这个文本中,可以看到该开发板是一个修订代码为0002的PCB,对比前面的表判断这是一个旧的“ Model B Rev 1 ”树莓派开发板。

确定树莓派的型号

在新版本的Raspbian系统中,可以通过以下方式检查树莓派的型号:

#
#
 cat /proc/device-tree/model

输出结果如下(型号不同结果也有不同),如:

Raspberry Pi 3 Model B Plus Rev 1.3