树莓派3B搭建HomeAssistant,alist,cpolar,plex,transmission

news2025/7/19 13:29:27

一、手把手教学树莓派搭建homeassistant

环境:内存卡16G,树莓派3B,官方工具烧写镜像,我烧的是树莓派系统,设置里面填写用户名密码,WiFi和密码,同时打开SSH服务。

安装docker

树莓派使用ssh连接了 先安装docker(建议都在home目录下进行 默认/home/pi)

cd /home/pi

# 由于后面配置需要 我在/home/pi/下面建了个 has文件夹管理homeassistant

sudo mkdir has
curl -fsSL https://get.docker.com -o get-docker.sh
sudo chmod a+x get-docker.sh
sudo ./get-docker.sh
安装homeassistant

安装完docker 安装homeassistant

homeassistant官网地址: 安装地址

上述是官方默认的安装方法 有注意点 **MY_TIME_ZONE PATH_TO_YOUR_CONFIG ** 这个是需要替换的 我这里给大家我的配置 我是pi3

docker run -d \
  --name homeassistant \
  --privileged \
  --restart=unless-stopped \
  -e TZ=Asia/Shanghai \
  -v /home/pi/has:/config \
  --network=host \
  ghcr.io/home-assistant/raspberrypi3-homeassistant:stable

这个过程比较漫长 大家耐心等待一下 建议大家在下载之前去配置一下docker镜像加速

安装完成homeassistant之后 通过 http://IP:8123 地址可以直接打开管理后台页面

我是注册过了所以可以直接登录 第一次是需要注册的 注册也是非常简单的

安装hacs应用商店
sudo wget -O - https://get.hacs.xyz | bash -

安装完成之后重启homeassistant服务 两种方法重启

sudo docker restart homeassistant
  1. 使用管理页面重启服务(配置 -> 服务管理 -> 重新启动)

添加集成hacs

步骤(配置 -> 集成 -> 右下角添加集成搜索hacs) 弹框出来的选项全部勾选上 需要github授权(所以需要有github账号)

配置参考HACS官网 配置

安装完成后需要重启 homeassistant

安装集成xiaomi miot

插件: miot插件

集成 miot

添加智能家居

点击完成之后会显示你账号绑定的所有的智能家居 按需添加就行了

添加homekit集成

和上面方法一样只不过是搜索 homekit

添加成功后左边通知点开 然后用iPhone 家庭扫码桥接起来 然后设备全部添加进来就好了(每次集成完记得重启)

苹果手机家庭应用扫描通知弹出来的二维码,得在同一个局域网下,

添加之后在web上面添加自己手机参数

手机下载HomeAssistant

添加服务器,我添加的是局域网地址,后面安装cpolar之后可以换成公网地址。

HACS安装及中文加速版HACS安装(可选)

按HACS官网说明一键安装,

但需要安装在hassio目录下,否则搜索不到HACS集成:

root@raspberrypi:~# docker exec -it homeassistant bash
 
bash-5.1# wget -O - https://get.hacs.xyz | bash -

然后重启homeassistant,在集成中就可以搜索到HACS了:

需要接受所有条件,然后点提交 :

直到出现以下信息👇,先不要点提交!先不要点提交!

先不要点提交! 先打开上面的超链接:https://github.com/login/device

登陆自己的github账户,我的github账户需要邮箱验证码,先去邮箱里找验证码填入核实,

然后复制homeassistant里HACS提示框中的xxxx-xxxx到github里,点继续:

在这里单击授权‘’Authorize hacs”。

看到以下确认屏幕后,再关闭选项卡并返回 homeassistant:

返回hass后会看到成功的提示,如果以下窗口没有自动关闭,就手动点下提交:

成功后会出现以下提示,选择一个区域或不选,点完成

刷新hass界面后,HACS会自动出现在左侧菜单中。

同样方法安装镜像版中文加速版HACS(可选)

root@raspberrypi:~# docker exec -it homeassistant bash
 
bash-5.1# wget -O - https://hacs.vip/get | HUB_DOMAIN=ghproxy.com/github.com bash -

先装了原版HACS,再装中文版出现了错误,手动删除custom_components\hacs文件夹

重新安装加速版,添加HACS集成,看到正常弹出:

二、在树莓派下安装PLEX媒体服务器

1.在终端,将你的树莓派更新至最新

sudo apt update
sudo apt upgrade
sudo apt dist-upgrade

2.重启树莓派

sudo reboot

3.添加https存储库的功能,如果你已安装了,系统会报告“现在的版本已经是最新版”

sudo apt install apt-transport-https

4.添加Plex Media Server存储库

echo "deb https://dev2day.de/pms/ jessie main" | sudo tee /etc/apt/sources.list.d/pms.list

5.为存储库添加GPG密钥

cd /tmp
wget https://dev2day.de/pms/dev2day-pms.gpg.key 
ls (#查看是否已经下载好dev2day-pms.gpg.key文件)
sudo apt-key add dev2day-pms.gpg.key

6.回到根目录

cd

7.更新源

sudo apt update

8.安装Plex媒体服务器

sudo apt install plexmediaserver-installer

9.创建默认配置文件,以便Plex知道要在哪个用户下操作

sudo nano /etc/default/plexmediaserver.prev

将里面的的

PLEX_MEDIA_SERVER_USER=plex

修改为

PLEX_MEDIA_SERVER_USER=pi

10. 重启PLEX服务,看到如下界面说明已经安装成功

systemctl restart plexmediaserver
systemctl status plexmediaserver

11.重启树莓派

sudo reboot
安装USB外挂硬盘,实现电影资源存放

1.检查插入的USB硬盘已安装到哪里

sudo cat /proc/mounts

2.安装NTFS驱动器

sudo apt-get install ntfs-3g

3.查询已插入硬盘的UUID

ls -l /dev/disk/by-uuid

4.现在我们创建一个新的目录来挂载USB

sudo mkdir /media/usb1

5.接下来我们查询硬盘的UID和GID

id -g pi
id -u pi

6.我们需要对fstab文件进行编辑。这是启动时调用的文件,用于设置驱动器

sudo nano /etc/fstab

7.将以下代码的UUID、UID和GID更改为你查询到的填入

UUID=881EC0D61EC0BF06 /media/usb1 auto nofail,uid=输入你的UID,gid=输入你的UID,noatime 0 0

8.卸载之前挂载好的USB硬盘

sudo umount /dev/sda1

9.重新挂载USB硬盘

sudo mount -a

10.重启树莓派,完成全部安装

sudo reboot

三、树莓派上安装cpolar

curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash

安装完成后,我们输入一个简单命令“cpolar version”查询cpolar的版本号。如果能正确显示版本号,就说明cpolar已经安装成功(只有安装成功,才能查询到软件的版本号)。

在树莓派上的cpolar安装成功后,我们就需要激活本地的cpolar客户端,即登录cpolar官网并进行简单注册后,取得唯一的cpolar口令码(只有进行注册,并以专属的口令码识别客户端,才能有效识别不同用户的隧道)

而口令码的获取,我们可以在登录后,从两个位置取得。

一是cpolar的仪表盘界面处

二是仪表盘界面左侧的“验证”页面处

取得口令码后,即可回到树莓派命令行界面,输入命令

cpolar authtoken XXXXXXX(X位置为口令码内容)

口令码输入完毕后,cpolar会显示口令码已经记入配置文件,我们也就不必重复输入。

从上面的说明可以看出,cpolar的安装并不复杂,只需几个简单的步骤,就能将其安装到树莓派上。在cpolar安装完成后打开浏览器,输入树莓派ip:9200进入cpolar管理界面。

创建隧道(alist:5244,plex:32400,homeAssistant:8123)

四、树莓派安装alist

使用 docker 搭建

1. 更新包

apt-get update && apt-get install -y wget vim

2. 一键安装 `docker`

wget -qO- get.docker.com | bash

3. 查看 `docker` 版本

docker -v

4. 开机自启

systemctl enable docker

安装 `docker-compose`

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

sudo chmod +x /usr/local/bin/docker-compose

docker-compose --version

3. 安装稳定版 `Alist`

创建目录

sudo -i

cd ~

mkdir /home/local

1. 运行安装代码

docker run -d --restart=always -v /home/local:/opt/alist/data -p 5244:5244 --name="alist" xhofe/alist:latest

* 端口可以改成自己喜欢的,==**但是`:`后面的 5244 不要改**==

* `/home/local` 不要更改,后面 `Samba` 要用

2. 查看密码

docker logs alist

# 运行 查看密码 的输出

INFO[2022-10-08 11:03:50] reading config file: data/config.json

INFO[2022-10-08 11:03:50] config file not exists, creating default config file

INFO[2022-10-08 11:03:50] load config from env with prefix:

INFO[2022-10-08 11:03:50] init logrus...

INFO[2022-10-08 11:03:50] Successfully created the admin user and the initial password is: Z1Kv8w8I

INFO[2022-10-08 11:03:51] Aria2 not ready.

INFO[2022-10-08 11:03:51] start server @ 0.0.0.0:5244

```

* **里面有个`user and the initial password is: Z1Kv8w8I `**

* 这是密码

* 账号是 `admin`,

3. 放行端口

sudo ufw allow 5244

4. 浏览器输入服务器ip+5244登录 `Alist`

树莓派IP:5244,登陆后修改admin密码

5. 添加本地存储

这里以阿里云盘为例 点击AList文档扫码获取复制Token(令牌)

后台选择存储 -阿里云盘,填写挂载路径 刷新令牌 看到work就表示配置成功

添加完账号后,重新打开127.0.0.1:5244

挂载百度网盘

https://alist.nn.ci/tool/baidu/callback.html?code=97af00783ec113c7e8445c60b3d01fb3

这里要注意后面如果视频播放不了选择非官方,文件下载选择官方

挂载天翼云盘

填写账号密码,根文件夹id填写-11

最终结果如下

搭建 `Samba`

1. 安装系列软件

ssh远程登录软件

1. 安装openssh-server

sudo apt-get install openssh-server

2. ssh相关的配置命令

sudo systemctl enable ssh# 开机自动启动ssh命令

sudo systemctl disable ssh#关闭ssh开机自动启动命令

sudo systemctl start ssh#单次开启ssh

sudo systemctl stop ssh#单次关闭ssh

sudo service ssh restart # 重启ssh

3. 查看是否启动成功

sudo systemctl status ssh

出现 `active(running)` 代表成功

4. 设置防火墙

sudo ufw allow ssh

安装 vim

sudo apt-get install vim

2. 安装 `Samba`

1. 安装

sudo apt-get install samba

2. 修改权限

sudo chown 你的用户名 /home/local

3. 配置samba

sudo vim /etc/samba/smb.conf

在配置文件末尾添加下面内容:

[share]

comment = samba home directory

path = /home/share

public = yes

browseable = yes

public = yes

read only = no

writable = yes

create mask = 0777

directory mask = 0777

available = yes

security = share

防止乱码

在smb.conf中[global]中加入

display charset = UTF-8

unix charset = UTF-8

dos charset = cp936

4. 检查

* 如果看到 ok 则正常

testparm

5. 启动 `samba` 服务

sudo service smbd restart

6. 添加防火墙

#更新防火墙规则

#我们需要更新防火墙规则,通过发布这个命令来允许这个服务。

sudo ufw allow samba

然后就可以使用了

Samba` 和 `Alist` 本地存储连接的是同一个文件夹

windows上

执行 `Wi你+R` 输入ip地址回车然后输入用户名和密码就可以访问共享文件夹了

在文件资源管理器中填入ip即可访问

这样就可以使用 `Samba` 的共享文件夹上传资源不会有限制,使用 `Alist`来查看文件和管理用户了

Win10 访问 Linux samba 拒绝访问

问题一:" 你没有权限访问 \\ * . * . * . * ,请与网络管理员联系请求访问权限。"

解决步骤:

问题二:Windows资源管理器可以看到samba共享的文件夹,打开文件夹提示[拒绝访问]

解决步骤:

参考

背景: 网络没问题,win和Linux可以相互ping通。但是win资源管理器远程samba访问共享文件仍然出现以下报错。网上试了很多办法大部分都没用,现把对于自己有用的方法罗列如下供大家参考。

问题一:" 你没有权限访问 \ * . * . * . * ,请与网络管理员联系请求访问权限。"

解决步骤:

在win的命令行敲net use 可以看到当前运行的进程。已经运行的进程会影响到接下来的访问。然后敲net use * /delete 选择 Y 删除前面的链接。

问题二:Windows资源管理器可以看到samba共享的文件夹,打开文件夹提示[拒绝访问]

解决步骤:

删除原有凭证

2.在linux命令行里vi /etc/samba/smb.conf,按i进入编辑模式

3.在最下面粘贴如下代码(之前有这部分的根据下面内容进行相应的删减)

[share]

comment = samba home directory

path = /home/你的文件夹名(替换的)

public = yes

browseable = yes

public = yes

read only = no

writable = yes

create mask = 0777

directory mask = 0777

available = yes

security = share

  1. 重新进入即可

使用RaiDrive将网盘Alist本地化
使用RaiDrive将 WebDav 服务挂载到本地磁盘

RaiDrive 将网盘映射到电脑磁盘 官网 RaiDrive

点击添加选择NASWebDav, 账号密码在Alist管理后端界面设置中直接复制,地址记得取消勾选,譬如

网盘成功挂载到本地磁盘,添加完成后可以在我的电脑中找到网络硬盘的位置,可以像操作网盘

中的文件像移入移出、压缩解压、调用系统程序打开资源、甚至还可以实现不同网盘间的文件互转等等~

PotPlay播放器导入Alist播放列表

打开播放器点击新建专辑,配置中填写专辑名称、选择WebDav协议,最重要的是填写主机/路径。那么如何查询主机路径呢?cmd输入ipconfig/all查询主机路径

填写主机/路径为192.168.0.102/dav;也可填写为127.0.0.1/dav,路径/dav不能更改,端口号为5244,最后输入Alist的用户名和密码,确定完成。

这样我们就在Potplayer播放器中搭建好了Alist的播放列表啦。

手机可以下载ES文件浏览器导入WEBDAV,这样手机也可以访问alist,这里可以在cpolar后台创建tcp服务端口5244,复制隧道列表里的服务器地址和端口,填到手机上。

再下载infuse视频播放器,方法同上。

如果没有使用树莓派,也可以操作,Windows系统上可以在Windows应用商店里下载安装Ubuntu系统,要开启wsl服务

打包

wsl --export Ubuntu-20.04 E:\Ubuntu\ubuntu.tar.gz

注销之前

wsl --unregister Ubuntu-20.04

导入

wsl --import Ubuntu-20.04 E:\Ubuntu\ E:\Ubuntu\ubuntu.tar.gz --version 2

设置默认登陆用户为安装时用户名

ubuntu2004.exe config --default-user dwb

更新清华镜像

ubuntu | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

安装ubuntu-desktop

sudo apt install ubuntu-desktop

安装systemctl

git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git

cd ubuntu-wsl2-systemd-script/

bash ubuntu-wsl2-systemd-script.sh

安装完毕后,输入sudo vi ~/.bashrc,在文件末尾添加:

export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0.0

export XDG_SESSION_TYPE=x11

解决删除文件后 WSL2 磁盘空间不释放的问题 
原因
wsl2下删除文件windows下的硬盘空间是不会变化的,WSL2 本质上是虚拟机,所以 Windows 会自动创建 vhdx 后缀的虚拟磁盘文件作为存储。这个 vhdx 后缀的虚拟磁盘文件特点是可以自动扩容,但是一般不会自动缩容。一旦有很多文件把它“撑大”,即使把这些文件删除它也不会自动“缩小”。所以删除文件后还需要我们手动进行压缩才能释放磁盘空间。

备份(可选)
在 PowerShell 中执行:

# 关闭 WSL2 中的 linux distributions
wsl --shutdown
# 备份指定的 Linux distribution 到指定的位置
wsl --export Ubuntu-20.04 D:\Ubuntu-20.04.tar
如果后续步骤出现错误,可以从备份的文件中恢复。本人后续步骤并没有出现错误,所以并没有实践恢复的操作。

有需要的读者可以参考:wsl2-backup-and-restore-images-using-import-and-export

压缩虚拟磁盘文件
在 PowerShell 中执行:

# 关闭 WSL2 中的 linux distributions
wsl --shutdown
# 运行管理计算机的驱动器的 DiskPart 命令
diskpart
在新打开的 DiskPart 命令窗口中执行:

# 选择虚拟磁盘文件(默认位置)
select vdisk file="C:\Users\用户名\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgsc\LocalState\ext4.vhdx"
 
#如果将WSL2移动到其他盘了
select vdisk file="E:\Ubuntu\ext4.vhdx"
 
# 压缩文件
compact vdisk
# 压缩完毕后卸载磁盘
detach vdisk
上述操作执行完毕,WSL2 删除文件后空出来的磁盘空间就被释放了。

五、安装transmission

transmission是一款BT下载软件,可以装在服务器上下载种子。本文介绍transmission在ubuntu系统下的安装过程。

1 安装transmission

首先安装transmission-daemon,daemon版本适合安装在没有显示器的服务器上,使用web页面来控制软件。

Debian安装复制后面内容不带sudo即可

sudo apt-get install transmission-daemon

2 修改transmission-daemon配置文件

以下是 transmission-daemon的使用命令:

# 启动

sudo service transmission-daemon start

/etc/init.d/transmission-daemon start

# 停止

sudo service transmission-daemon stop

/etc/init.d/transmission-daemon stop

# 重启

sudo service transmission-daemon restart

/etc/init.d/transmission-daemon restart

安装完成后,应当立即启动一下程序,再停止程序,防止配置文件被覆盖。接下来,编辑配置文件:

sudo nano /var/lib/transmission-daemon/info/settings.json

需要修改的地方有:

"rpc-host-whitelist": "*", //域名白名单,*为允许所有

"rpc-host-whitelist-enabled": false, //是否开启白名单,false为否

"rpc-password": "远程登录密码",

"rpc-port": 9091, //远程登录端口

"rpc-username": "远程帐号",

"rpc-whitelist": "*", //ip白名单

"rpc-whitelist-enabled": false, //是否开启ip白名单,false为否

保存后,使用上面的命令启动一下即可。然后访问 http://ip地址:9091 或 http://ip地址:9091/transmission/web

3 可能出现的问题

403 Forbidden错误

出现这个问题主要是因为没有关闭域名白名单和ip白名单,此时应该根据本文 第二部分:修改transmission-daemon配置文件 的描述正确地修改配置文件。请注意,修改配置文件之前一定要先停止程序!

409 Conflict

出现这个问题的原因是浏览器没有获得到X-Transmission-Session-Id header,大概率是因为我们直接访问了 http://ip地址:9091/transmission/web。此时,你可以尝试直接访问 http://ip地址:9091

3美化web页面,默认的webui很简陋,我们装使用一键脚本安装一个新页面即可

transmission UI 汉化 GitHub项目地址:https://github.com/ronggang/transmission-web-control

切换root用户,执行以下命令,下载一键安装脚本:

wget https://github.com/ronggang/transmission-web-control/raw/master/release/install-tr-control-cn.sh && bash install-tr-control-cn.sh

执行脚本显示以下信息:

欢迎使用 Transmission Web Control 中文安装脚本。

官方帮助文档:https://github.com/ronggang/transmission-web-control/wiki

安装脚本版本:1.2.3

1. 安装最新的发布版本(release);

2. 安装指定版本,可用于降级;

3. 恢复到官方UI;

4. 重新下载安装脚本(install-tr-control-cn.sh);

5. 检测 Transmission 是否已启动;

6. 指定安装目录;

9. 安装最新代码库中的内容(master);

===================

0. 退出安装;

请输入对应的数字:

输入数字1回车即可。

输入y回车确认安装。

显示以下信息表示安装成功!

<< 2021-09-22 15:04:23 >> 下载完成,正在准备安装...

<< 2021-09-22 15:04:23 >> 正在解压安装包...

<< 2021-09-22 15:04:23 >> 正在复制安装包...

<< 2021-09-22 15:04:23 >> 正在设置权限,大约需要一分钟 ...

<< 2021-09-22 15:04:25 >> Transmission Web Control 安装完成!

<< 2021-09-22 15:04:25 >> 正在清理安装包...

<< 2021-09-22 15:04:25 >> 安装脚本执行完成。如遇到问题请查看:https://github.com/ronggang/transmission-web-control/wiki

<< 2021-09-22 15:04:25 >> == 结束 ==

然后我们刷新一下网页,就可以看到新的界面了,如下图所示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/397220.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++基础了解-05-C++常量

C常量 一、C常量 常量是固定值&#xff0c;在程序执行期间不会改变。这些固定的值&#xff0c;又叫做字面量。 常量可以是任何的基本数据类型&#xff0c;可分为整型数字、浮点数字、字符、字符串和布尔值。 常量就像是常规的变量&#xff0c;只不过常量的值在定义后不能进…

uni-app框架基础知识

uni-app框架基础知识 uniapp就是vue开发&#xff0c;可以使用vue2和vue3的语法&#xff0c;另外编译和运行都最好在HBuilderX中进行生命周期可以使用vue或者小程序的生命周期不同&#xff1a; 最好不要使用vue的路由&#xff0c;直接使用uniapp的路由&#xff08;它和小程序一…

项目实战典型案例8——让软件的使用者成为软件的设计者

让软件的使用者成为软件的设计者一&#xff1a;背景介绍二&#xff1a;思路&方案公司的产品设计理念如果你设计的软件猪不能使&#xff0c;你就是猪让每一个软件的使用者都成为我们软件的设计者过程四&#xff1a;总结五&#xff1a;升华一&#xff1a;背景介绍 由于同时对…

2020蓝桥杯真题反倍数 C语言/C++

题目描述 给定三个整数 a,b,c&#xff0c;如果一个整数既不是 a 的整数倍也不是 b 的整数倍还不是 c 的整数倍&#xff0c;则这个数称为反倍数。 请问在 1 至 n 中有多少个反倍数。 输入描述 输入的第一行包含一个整数 n。 第二行包含三个整数a,b,c&#xff0c;相邻两个数之…

Stimulsoft Dashboards.WEB 23.1.8 完美Patch

Stimulsoft Dashboards.WEB 在 Web 应用程序中创建仪表板 Stimulsoft Dashboards.WEB 是一种工具&#xff0c;用于在 ASP.NET、.NET Core、ASP.NET MVC 和 Blazor 平台上开发的 Web 应用程序中创建、编辑、导出和查看仪表板。该产品包括各种数据分析和可视化元素&#xff0c;可…

花括号展开II[栈模拟dfs]

栈模拟dfs前言一、花括号展开II二、栈模拟dfs总结参考资料前言 递归调用&#xff0c;代码非常的简洁。但是可以通过显式栈来模拟栈中的内容&#xff0c;锻炼自己的代码能力&#xff0c;清楚知道栈帧中需要的内容。 一、花括号展开II 二、栈模拟dfs 每碰到一个左括号&#xf…

sheng的学习笔记-服务熔断与降级组件Hystrix

在微服务架构中&#xff0c;一个应用往往由多个服务组成&#xff0c;这些服务之间相互依赖&#xff0c;依赖关系错综复杂。例如一个微服务系统中存在 A、B、C、D、E、F 等多个服务&#xff0c;它们的依赖关系如下图。图1&#xff1a;服务依赖关系通常情况下&#xff0c;一个用户…

基于安森美深力科电子一款能实现大功率DC/DC电源转换 NCP13992ACDR2G 全桥LLC方案

基于安森美深力科电子一款能实现大功率DC/DC电源转换 NCP13992ACDR2G 全桥LLC方案 什么是LLC:LLC电路是由2个电感和1个电容构成的谐振电路&#xff0c;故称之为LLC&#xff0c;由于能实现软开关&#xff0c;有效地减小开关损耗和容许高频运行&#xff0c;所以在高频功率变换领…

网关(Gateway)

本文内容网关&#xff0c;网关作用&#xff0c;默认网关&#xff0c;网关和路由器区别网关协议&#xff0c;网关分类NAT网关一、概述网关(Gateway)又称网间连接器、协议转换器。网关在传输层上以实现网络互连&#xff0c;是最复杂的网络互连设备&#xff0c;仅用于两个高层协议…

计算机网络-- 应用层(day08)

计算机网络两种方式 网络应用程序运行再处于网络边缘的不同端系统上&#xff0c;通过彼此间的通信来共同完成某项任务。 开发一种新的网络应用首先要考虑的问题就是网络应用程序在各种端系统上的组织方式和它们之间的关系。 目前流行的主要有以下两种&#xff1a; 客户/服务器…

libevent 学习笔记

一、参考 libevent Libevent深入浅出 - 《Libevent 深入浅出》 - 书栈网 BookStack libevent 之 event config的相关函数介绍_event_config_new_yldfree的博客-CSDN博客 Libevent之evbuffer详解_有时需要偏执狂的博客-CSDN博客 二、libevent概述 libevent 就是将网络、I…

数组中的逆序对

解题思路1&#xff1a; 看到这个题目&#xff0c;我们的第一反应是顺序扫描整个数组。每扫描到一个数组的时候&#xff0c;逐个比较该数字和它后面的数字的大小。如果后面的数字比它小&#xff0c;则这两个数字就组成了一个逆序对。假设数组中含有n个数字。由于每个数字都要和…

JavaScript的学习

一、引言 1.1 JavaScript简介 JavaScript一种解释性脚本语言&#xff0c;是一种动态类型、弱类型、基于原型继承的语言&#xff0c;内置支持类型。它的解释器被称为JavaScript引擎&#xff0c;作为浏览器的一部分&#xff0c;广泛用于客户端的脚本语言&#xff0c;用来给HTML网…

信息系统基本知识(六)

大纲 信息系统与信息化信息系统开发方法常规信息系统集成技术软件工程新一代信息技术信息系统安全技术信息化发展与应用信息系统服务管理信息系统服务规划企业首席信息管及其责任 1.7 信息化发展与应用 我国在“十三五”规划纲要中&#xff0c;将培育人工智能、移动智能终端…

推荐系统[九]项目技术细节讲解z2:搜索Query理解[Term Weight、Query 改写、同义词扩写]和语义召回技术

搜索Query理解和语义召回技术 随着用户规模和产品的发展, 搜索面临着越来越大的 query 长尾化挑战,query 理解是提升搜索召回质量的关键。本次将介绍搜索在 query term weighting,同义词扩展,query 改写,以及语义召回等方向上的实践方法和落地情况。 1.面临问题:长尾 qu…

h264编码概述八(哥伦布编码ue(v))

一、概述 熵编码是无损编码的一种方法。该编码方法的宗旨是找到一种编码&#xff0c;使得码字的平均码长达到熵极限。具体实施是&#xff0c;对出现概率较大的符号&#xff0c;取较短的码长&#xff0c;对出现概率较小的符号取较大的码长。 H.264中使用的熵编码有&#xff1a;…

【面试1v1实景模拟】面试中常见的Java关键字详解

笑小枫专属目录老面&#x1f474;&#xff1a;Java中有哪些关键字老面&#x1f474;&#xff1a;简单介绍一下 final 关键字老面&#x1f474;&#xff1a;简单介绍一下 this、super 关键字老面&#x1f474;&#xff1a;简单介绍一下 static 关键字老面&#x1f474;&#xff…

深度解析Spring Boot自动装配原理

废话不多说了&#xff0c;直接来看源码。源码解析SpringBootApplication我们在使用idea创建好Spring Boot项目时&#xff0c;会发现在启动类上添加了SpringBootApplication注解&#xff0c;这个注解就是Spring Boot的核心所在。点击注解可以查看到到它的实现ementType.TYPE) Re…

JavaScript简单记录

简介 JavaScript 诞生于 1995 年。JavaScript 使得现代网页应用程序成为可能,使用 JavaScript 可以直接与用户交互&#xff0c;从而避免每一个动作都需要重新载入页 面。但有许多传统网站也会使用 JavaScript 来提供实时交互以及更加智能的表单功能。 JavaScript 其实和名为Ja…

【PaddlePaddle onnx】PaddlePaddle导出ONNX及模型可视化教程

文章目录1 背景介绍2 实验环境3 paddle.onnx.export函数简介4 代码实操4.1 PaddlePaddle与ONNX模型导出4.2 ONNX正确性验证4.3 PaddlePaddle与ONNX的一致性检查4.4 多输入的情况5 ONNX模型可视化6 ir_version和opset_version修改7 致谢原文来自于地平线开发者社区&#xff0c;未…