拥抱更强大的网络能力:PVE成功安装OpenWrt

前言

本文介绍如何使用 PVE 安装 OpenWrt,并利用其实现更丰富的网络功能。OpenWrt 提供了丰富的可定制化功能,使得我们可以自由定制路由器的配置和性能。文章详细介绍了如何设置 PVE 虚拟机,并在其中安装 OpenWrt。

PVE

来自维基百科:

Proxmox VE(英语:Proxmox Virtual Environment,通常简称为PVEProxmox),是一个开源的服务器虚拟化环境Linux发行版。Proxmox VE基于Debian,使用基于Ubuntu的定制内核[2] [3],包含安装程序[4]、网页控制台和命令行工具,并且向第三方工具提供了REST API,在Affero通用公共许可证第三版下发行。[5]。Proxmox VE支持两类虚拟化技术:基于容器的LXC(自4.0版开始,3.4版及以前使用OpenVZ技术[6])和硬件抽象层全虚拟化的KVM

OpenWrt

来自维基百科:

OpenWrt是适用于嵌入式设备的一个Linux发行版。

相对原厂固件而言,OpenWrt不是一个单一、静态的固件,而是提供了一个可添加软件包的可写的文件系统。这使用户可以自由的选择应用程序和配置,而不必受设备提供商的限制,并且可以使用一些适合某方面应用的软件包来定制你的设备。对于开发者来说,OpenWrt是一个框架,开发者不必麻烦地构建整个固件就能得到想要的应用程序;对于用户来说,这意味着完全定制的能力,与以往不同的方式使用设备,OPKG包含超过3500个软件。 默认使用LuCI作为web交互界面。

OpenWrt另有一个复刻分支项目,名为LEDE,两者于2018年1月合并,合并后的项目使用OpenWrt的名字、LEDE的源代码。

后面的教程在PVE上安装OpenWrt,使用的是LEDE的源码。

教程

前提

  • 安装好PVE
  • 有一个OpenWrt镜像,镜像后缀为.img

创建虚拟机

进入PVE管理页面,右键点pve,然后点创建虚拟机

image-20230406143903078

填入名称,其他配置不变,然后点击下一步

image-20230406144112559

选择不使用任何介质,操作系统类别选Linux,版本选5.x - 2.6 Kernel,然后点下一步

image-20230406144235404

系统不调整,直接点下一步

image-20230406144409209

磁盘类型选SATA,容量随便(因为等会我们会删除该硬盘),然后点下一步

image-20230406144526286

CPU调整核心数,比如我是1核,然后点下一步

image-20230406144605324

内存设置,我这里是2G,然后点下一步

image-20230406144649297

网络默认即可,某些设备识别不出网卡,可以用尝试E1000,然后点下一步

image-20230406144853895

确认配置正确后,不要打开创建后启动(我们还要调配置),然后点完成

image-20230406144953470

删除原硬盘

点刚刚创建的虚拟机,在硬件找到磁盘,选中后点上面的分离

Snipaste_2023-04-04_20-18-19

看到弹窗后,点

Snipaste_2023-04-04_20-18-32

然后可以看到一个未使用的磁盘0,选中并点上面的删除

Snipaste_2023-04-04_20-19-00

弹窗选

Snipaste_2023-04-04_20-19-08

上传镜像

  • 如果镜像是压缩文件(.gz结尾),则利用FTP将文件上传到pve服务器,我这里上传到的是tmp目录

    Snipaste_2023-04-04_20-15-51

    然后用gzip命令将文件解压gzip -d openwrt.img.gz

    Snipaste_2023-04-04_20-27-01

    Snipaste_2023-04-04_20-27-08

  • 如果文件已经是镜像(.img结尾),则可以直接用FTP上传到服务器,或利用PVE上传,在页面local(pve)->ISO镜像->上传,将文件上传到服务器

    image-20230406145833082

    上传后,可以用Shell命令查找文件位置

    find / -name ubuntu-20.04.4-live-server-amd64.iso
    

    得到结果,这就是文件上传的目录

    image-20230406150107883

转换镜像

可以用SSH客户端连接PVE,也可以用PVE自带的shell客户端连接

image-20230406150239565

进入镜像所在位置,我这里是/tmp

Snipaste_2023-04-04_20-27-08

使用命令转换镜像

qm importdisk 101 openwrt.img local-lvm

说明:

  • 101是机器的ID,可以在左上角看到,比如这里101(Openwrt),101就是机器的ID
  • openwrt.img是镜像名称
  • local-lvm是转换镜像的地址,也是在左上角看

Snipaste_2023-04-04_20-28-58

执行后,可以看到导入的日志

Snipaste_2023-04-04_20-27-51

当出现下面的日志时,则代表导入完成

Snipaste_2023-04-04_20-28-01

挂载磁盘

回到虚拟机硬件,可以看到一块未使用的磁盘0,点击编辑

Snipaste_2023-04-04_20-22-23

选择SATA,然后点添加

Snipaste_2023-04-04_20-22-40

添加成功后如下

Snipaste_2023-04-04_20-22-57

配置引导

选项,找到引导顺序,双击

Snipaste_2023-04-04_20-23-23

sata0勾选已启用,将优先级调到第1位,点OK

Snipaste_2023-04-04_20-23-42

成功后可以看到引导顺序位sata0优先

Snipaste_2023-04-04_20-23-55

开机启动

点右上角的启动即可开机

Snipaste_2023-04-04_20-24-06

配置Openwrt的IP

启动后,点击控制台可以看到OpenWrt的启动情况,当看到Please press Enter to activate this console.时,敲键盘上的回车键可以进入到终端

Snipaste_2023-04-04_20-29-13

输入vi /etc/config/network进入修改配置

Snipaste_2023-04-04_20-30-03

按需调整红框内的配置,ipaddr就是访问Openwrt的页面,调整后输入:,在输入wq,再按回车

Snipaste_2023-04-04_20-30-22

访问Openwrt

输入上面调整后的IP,比如我的是192.168.14.2,就可以访问Openwrt了

Snipaste_2023-04-04_20-30-42

参考文档

  1. PVE安装Openwrt/LEDE软路由保姆级图文教程
  2. [PVE][04]Openwrt(LEDE)安装及配置
  3. Pve安装OpenWrt教程
  4. 【教程二】软路由pve、openwrt安装,上网配置教程
  5. PVE——OP的安装和设置

用udpxy看iptv的坛友一个脚本

自从看了这个帖子

https://www.right.com.cn/forum/fo … 9584&highlight=iptv (IPTV单线复用的另一种思路,将机顶盒安装在路由器上)我也折腾起来,期间查阅过很多帖子,也请教过不少坛友。现在是 iptv用PPPoE拨号—->>udpxy—->>xupnpd在电视机上看直播。udpxy这东西有个奇怪问题:iptv口IP地址变动后udpxy不会跟着变,这导致电视不能看了.处理的方法是重启路由器或者重启udpxy服务,无论哪种方法都不爽!今天在终于找人写了个脚本,当IPTV口的IP变动时自动重启udpxy服务的脚本。
#!/bin/sh
[ “$ACTION” = ifup ] && [ “$INTERFACE” = IPTV ] &&
/etc/init.d/udpxy restart

将这三行保存为 99-udpxyrestart.sh 放置在/etc/hotplug.d/iface 目录并赋予执行权限即可
脚本第二行结尾的 “IPTV”要根据你自己的接口来改动
这个脚本的意思是:当接口IPTV连接成功后执行 /etc/init.d/udpxy restart 以重启udpxy服务

双网口抓包获取不到HTTP数据

1,首先IPTV盒子插电源,但不要开机,开机的请用遥控器关闭,
2,光猫IPTV口连接电脑任意网口,盒子连接电脑第二个网口。
3,把网口 1和2 桥接,这里要注意一定检查桥接状态如下图一样必须都要打钩。

接下来,把盒子开机,查看是否能够正常开机观看直播,这一步也是给你DHCP鉴权,能正常观看后,遥控器关闭盒子,不要断电

打开抓包工具 Wireshark打开后我们能看到如下图

一定要抓包以太网有数据流这个口,抓桥接口和其他口无效的 很多人错在这里了
然后双击抓包,遥控器打开盒子启动进入主页,停止抓包,过滤栏搜索HTTP就出来了

KODI 开启ipv6

KODI默认将ipv6关闭,无法播放ipv6格式的直播源文件。折腾了数日,终于在网上找到解决方案,分享如下:

一、下载Unlock Kodi Advanced Settings 插件。

Kodi19 script.unlock.advancedsettings19

Kodi18及老版本 script.unlock.advancedsettings-Leia-before18

Kodi19  script.unlock.advancedsettings1.0.3.zip
Kodi18及老版本 script.unlock.advancedsettings-Leia.zip

访问密码:1234

二、安装以上插件。选择“从zip文件安装”


三、打开插件 – 我的插件 – 全部,找到Unlock Kodi Advanced Settings,点运行。

四、点击运行,选择“network”,将disableipv6 选择false,设置完毕点确定提醒会写入advancedsettings.xml,点




五、重启Kodi,配置生效。

补充一下效果图:

KODI 确实对IPV6支持不好,好多IPV6无法访问。
测试站点一个:
CCTV1,http://[2409:8087:5c00:10:5::121]/cdnrrs.gx.chinamobile.com/PLTV/3/224/3221225726/index.m3u8

插件转自KODI中文网,一并致谢

win11如何查看端口是否被占用? Win11查看端口是否占用的技巧

win11如何查看端口是否被占用? Win11查看端口是否占用的技巧

win11如何查看端口是否被占用?想要看看win11系统中端口的占用情况,该怎么查看呢?下面我们就来看看Win11查看端口是否占用的技巧

Win11查端口被哪个进程占用?如果电脑上的某个端口被其它软件占用,则需要特定端口来工作的软件会无法使用,今天我们就来看看Win11查看端口是否占用方法,详细请看下文介绍。

1、按 Win + X 组合键,或右键点击任务栏底部的Windows开始图标,在打开的隐藏菜单项中,选择运行;

2、运行窗口,输入 cmd 命令,按确定或回车,打开命令提示符窗口;

3、命令提示符窗口中,输入并按回车执行netstat -ano命令,可以获得所有网络连接活动的列表,在表中,本地地址IP地址后方冒号之后的即是端口号;

4、如果想要查找特定的端口,可以输入并回车执行netstat -aon|findstr “端口号”命令,例如:netstat -aon|findstr "80",即为查找端口号为80的信息;

5、想要找到是哪个程序占用了端口号,可以记下最后一列的PID数字;

6、按 Shift + Ctrl + Esc 组合键,可以快速打开任务管理器,然后切换到详细信息选项卡中查找相同PID的程序,这样就可以确定是哪个程序占用了端口,从而进行修改端口或者停止应用等操作了;

以上就是Win11查看端口是否占用的情况,希望大家喜欢,请继续关注脚本之家。

OPDS Calibre-web

opds

你的opds地址就是你的书库地址/opds,ios可以使用kybook,安卓可以使用静读天下,都支持opds功能,相当于为本地书库添加了一个自定义的网络书城,还是挺方便的。

 

2. 手机阅读

calibre-web 提供了 OPDS 协议的服务地址:http://${server-ip}/cms/opds/(或 http://${server-ip}:8083/opds/)。

换言之所有支持 OPDS 协议的 APP 都可以对接到 calibre-web 获取书库中的电子书,例如这些 APP :

APP 适用设备/系统 说明
FullReader Android 界面清新但是有广告,而且汉化不完全,有少量韩文
AIReader Android 没有广告但是外观不好看
kybook3 iOS 目前已知 iOS 唯一支持 OPDS 的 APP
kindle kindle 仅在 kindle 设备上支持 OPDS,在 Android/iOS 上不支持

以 FullReader 为例:点击【网络图书馆】->【添加OPDS目录】,填写 calibre 的 OPDS 服务地址和 BasicAuth 账号密码即可。

3. iPad 阅读

在 iPad 目前已知的只有 kybook3 这款 APP 支持 OPDS 协议:

点击【目录】->【添加】,填写 calibre 的 OPDS 服务地址和 BasicAuth 账号密码即可。

FAQ

Q1. 迁移 data 目录的数据库后无法运行 CMS 服务

理论上 data 目录挂载了 calibre 运行所需的全部数据(包括电子书本身),只要完整迁移到任何设备就可以直接运行。

但若 calibre 非正常停止过,就会导致 calibre-web (即 CMS 服务)无法运行。

解决方法也很简单:

  • 执行 stop.sh 脚本停止 calibre 服务
  • 查看 data/.config/calibre/gui.json 的 library_usage_stats 状态值是否为 1,若不是则修改为 1
  • 执行 run.sh 脚本重新启动 calibre 服务,此时 CMS 服务应该可以正常启动了

 

wireguard 生成公私钥

公开端点(Public Endpoint)

节点的公网 IP 地址:端口,例如 123.124.125.126:1234,或者直接使用域名 some.domain.tld:1234。如果对等节点不在同一子网中,那么节点的公开端点必须使用公网 IP 地址。

私钥(Private key)

单个节点的 WireGuard 私钥,生成方法是:wg genkey > example.key

公钥(Public key)

单个节点的 WireGuard 公钥,生成方式为:wg pubkey < example.key > example.key.pub

作者:米开朗基杨
链接:https://juejin.cn/post/6847902217966616590
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

使用 ssh-key-gen 清理无效的 known_hosts 指纹记录

众所周知 .ssh/known_hosts 中存储了受信主机的指纹信息,若受信主机指纹发生改变,那么 ssh 登陆时会提示 Host key verification failed,这个时候就需要删除 .ssh/known_hosts 中对应主机的指纹信息了。

一直以来我都是用手工的方式删除这些信息,直到今天才知道原来还可以使用 ssh-key-gen -R 主机 来进行删除,而且用这种方式删除会自动将原内容备份成 known_hosts.old 文件,这样即方便还安全。

lujun9972:~/ $ ssh-keygen -R 192.168.1.9# Host 192.168.1.9 found: line 7/home/lujun9972/.ssh/known_hosts updated.Original contents retained as /home/lujun9972/.ssh/known_hosts.old