Tag: 教程

  • 如何安全而方便地储存比特币(BTC)

    如何安全而方便地储存比特币(BTC)

    在数字货币世界中,比特币(BTC)一直是备受瞩目的加密货币之一。与其他数字货币一样,储存比特币需要一定的安全性和方便性考虑。本文将探讨如何安全而方便地储存比特币,以确保您的数字财产不受威胁。

    背景故事

    越来越多的人开始将比特币作为一种投资工具,因此对于如何安全地储存比特币的问题变得尤为重要。与以太坊(ETH)或波场(TRX)等其他数字货币不同,比特币并没有像MetaMask或tronlink这样的官方钱包,因此需要一些特殊的方法来储存。

    方法一:使用硬件钱包

    硬件钱包是一种专门设计用于储存数字货币的物理设备。它们通常具有高度的安全性,因为私钥被存储在离线设备上,难以受到网络攻击。一些流行的硬件钱包品牌包括Ledger和Trezor。购买一个硬件钱包并将您的比特币存储在其中,可以提供高度的安全性和方便性。

    方法二:使用桌面钱包

    如果您不想购买硬件钱包,您还可以使用桌面钱包。桌面钱包是一种在您的计算机上安装的应用程序,用于管理和储存比特币。一些受欢迎的桌面钱包包括Electrum和Sparrow。桌面钱包提供了一定程度的安全性,并且相对容易使用。

    方法三:使用纸钱包

    纸钱包是一种离线储存比特币的方式。它们通常包括一个公钥和一个私钥,可以打印在纸上或以其他形式保存。由于纸钱包是离线的,所以安全性较高。然而,要确保将纸钱包存放在安全的地方,以防止丢失或损坏。

    方法四:使用多重签名钱包

    多重签名钱包是一种需要多个私钥才能进行交易的钱包。这种方式增加了比特币的安全性,因为即使某个私钥被泄露,仍然需要其他私钥的授权才能完成交易。多重签名钱包可以使用特定的钱包应用或服务来创建。

    方法五:离线生成地址

    您还可以选择离线生成比特币地址的方式。通过使用离线工具,如https://github.com/iancoleman/bip39 ,可以生成比特币地址并将其转存到离线设备上。这种方式相当于创建一个冷钱包,可以提供高度的安全性。

    结论

    储存比特币是一项重要的任务,需要谨慎考虑安全性和方便性。每种方法都有其优点和限制,取决于您的需求和技术水平。无论您选择哪种方式,都应当牢记保护私钥的重要性,以免丢失或被盗。安全与方便往往存在一定的权衡,因此在选择储存方式时,务必根据自己的需求权衡这两个因素。

  • 如何解决家庭IPTV问题:充分利用网络资源

    如何解决家庭IPTV问题:充分利用网络资源

    智能电视的普及使得家庭娱乐更加丰富多彩,而IPTV(Internet Protocol Television)作为一种便捷的观看电视节目的方式,越来越受到人们的欢迎。然而,有时候我们在家庭网络设置上会遇到一些问题,尤其是在弱电箱接口有限的情况下。本文将探讨如何解决这类问题,充分利用网络资源,为家人提供更好的IPTV观看体验。

    背景故事

    背景故事始于一位用户的疑问:在家里已经有宽带网络和免费赠送的IPTV,但弱电箱的接口只剩下一根网线和一根电话线,而网线已经被路由器占用,导致无法同时使用IPTV。用户希望找到解决方案,让家里的父母能够方便地观看电视,而不必为网络问题烦恼。

    方法一:使用udpxy

    有一位用户提出了使用udpxy的建议。udpxy是一种用于多播流量转发的工具,可以将IPTV信号转发到其他设备上。通过使用udpxy,您可以将IPTV信号重新定向到家里的IPTV盒子或其他设备上,从而允许多个设备同时观看IPTV。这种方法需要一定的技术知识,但可以解决多设备共享IPTV的问题。

    方法二:划分VLAN

    另一位用户提出了划分VLAN(Virtual Local Area Network)的建议。通过在路由器上设置VLAN,您可以将不同的网络流量隔离开来,从而实现IPTV和互联网数据的分流。这种方法需要一定的路由器配置知识,但可以有效地解决IPTV和互联网冲突的问题。

    方法三:购买支持IPTV的路由器

    如果您的家庭已经配备了IPTV机顶盒,您可以考虑购买一款支持IPTV的路由器。这些路由器通常具有专门的IPTV端口,可以直接连接到IPTV机顶盒,而不会影响家庭网络的其他设备。这是一种简单的解决方案,适用于不擅长网络配置的用户。

    方法四:单线复用

    如果您只有一根线缆可以使用,您可以考虑单线复用的方法。这意味着将IPTV和互联网数据共享一条线缆。这种方法需要一些特殊的硬件设备,但可以在不增加额外线缆的情况下实现IPTV观看。

    方法五:使用IPTV应用

    最后,一些电信运营商提供了直接连接到电视的IPTV应用,可以通过电信师傅上门安装到电视上。这种方法无需额外的硬件设备和网络配置,非常方便。

    结论

    在解决家庭IPTV问题时,有多种方法可供选择,具体取决于您的技术知识和家庭网络配置。无论您选择哪种方法,都应确保家人能够方便地观看电视,享受更好的娱乐体验。最终的目标是让家庭网络变得更加智能,满足不同成员的需求。

  • 如何在中国大陆以便宜的方式购买iPhone SE 3?

    如何在中国大陆以便宜的方式购买iPhone SE 3?

    iPhone SE 3是一款备受期待的手机,然而,在中国大陆购买这款手机可能会面临高价的问题。一些用户听说在北美可以以低至99美元的价格购买iPhone SE 3,于是产生了一个问题:如何以便宜的方式将这款手机带到中国大陆?在本文中,我们将探讨一些方法和注意事项,帮助您在中国大陆购买iPhone SE 3时节省一些费用。

    背景故事

    故事始于一位用户在社交媒体上提出了一个问题,他听说在北美可以以99美元的价格购买iPhone SE 3,而他希望知道如何将这款手机带到中国大陆,并了解最终的成本。

    方法一:亲自购买

    第一种方法是亲自前往北美购买iPhone SE 3,然后携带回中国大陆。这种方式的优势是您可以获得较低的购买价格,但也需要考虑飞行和税费等额外成本。此外,您需要确保手机是解锁的,以便在中国大陆使用。

    方法二:找代购

    如果您不方便亲自前往北美购买,可以考虑找代购。代购是一种将商品从其他地区购买并运送到您所在地的服务。在这种情况下,您可以寻找信誉良好的代购商,他们可以帮助您购买iPhone SE 3,并将其送到中国大陆。请注意,代购服务可能会收取一定的手续费,这会增加总成本。

    方法三:关注特价活动

    有时候,电子产品在特定时期或促销活动期间会以更低的价格出售。例如,有用户提到在感恩节/黑五活动期间,可以在北美购买iPhone SE 3,搭配特定手机套餐,最终价格大约为99美元。这种方式需要您密切关注促销活动,以确保能够抓住合适的机会。

    注意事项

    在尝试购买便宜的iPhone SE 3时,有一些注意事项需要考虑:

    1. 手机解锁: 确保手机是解锁的,以便在中国大陆使用不同的运营商卡。

    2. 额外费用: 考虑包括飞行费用、关税和代购费用在内的额外费用,以便更准确地估算最终成本。

    3. 保修和售后服务: 确保您了解手机的保修政策,以及如何在中国大陆获得售后服务。

    4. 合法性: 确保您的购买方式合法,不涉及任何违法行为或假冒伪劣产品。

    结论

    购买iPhone SE 3是一项值得考虑的投资,但在中国大陆以便宜的方式购买可能需要一些策略和谨慎。无论您选择哪种购买方式,都要确保手机是解锁的,并充分了解额外费用和保修政策。这样,您可以在不花费太多的情况下享受到这款优秀手机带来的便利。

  • 打造大型提词器:电视拼接方案探讨

    打造大型提词器:电视拼接方案探讨

    在现代社交媒体和网络直播时代,大型提词器成为了许多主持人和演讲者的必备工具。然而,要找到适合的提词器设备并不容易,尤其是对于需要大尺寸提词器的场合。在这篇文章中,我们将探讨一种创新的解决方案:使用多台60-75寸电视拼接成大型提词器,以满足大屏幕提词需求。

    背景故事

    故事始于一位用户提出了一个问题:他需要一个大型提词器,用于放在30米外,相当于150寸的提词器。此外,他希望边框尽可能窄,下巴没有突出,分辨率1080P以上,对安卓配置和色彩表现没有特别要求,但要求亮度尽可能高。每台价格预算在2000-3500元之间。

    这个需求看似简单,但在实际选择中可能会遇到困难。因此,我们将提供一种创新的解决方案,即使用多台60-75寸电视拼接成大型提词器。

    电视拼接方案的优势

    为什么选择电视拼接方案而不是传统的提词器或LED拼接屏呢?让我们一一分析电视拼接方案的优势。

    1. 低成本

    首先,电视拼接方案通常比LED拼接屏成本更低。LED拼接屏需要专门的安装和维护,而电视拼接则可以利用现有的电视设备,节省了额外的成本。

    2. 易于操作

    大多数电视都配备了遥控器,使用起来非常方便。相比之下,LED拼接屏可能需要更多的专业知识来操作。对于一般用户来说,电视拼接更加友好。

    3. 视觉效果

    虽然LED拼接屏可以提供卓越的视觉效果,但对于一般用途,多台电视的拼接也可以获得出色的画质。所选电视型号应具有高分辨率和高亮度,以确保提词器内容清晰可见。

    如何选择适合的电视

    选择适合的电视是电视拼接方案的关键。以下是一些建议:

    1. 尺寸

    根据需求,选择60-75寸的电视是合适的。这个尺寸范围能够提供足够大的显示屏,以满足150寸提词器的需求。

    2. 边框

    为了确保边框尽可能窄,可以选择一些近年来发布的电视型号,它们通常具有更窄的边框设计。这将有助于提升整体外观和观感。

    3. 亮度

    亮度对于提词器的使用至关重要,尤其是在远距离观看的情况下。因此,选择具有高亮度的电视型号是明智之举。

    4. 价格预算

    根据预算范围,可以在2000-3500元之间选择适合的电视型号。在这个价格范围内,有许多不错的选项可供选择。

    结论

    在选择大型提词器时,电视拼接方案是一种经济实惠且有效的解决方案。它具有低成本、易于操作和良好的视觉效果等优势。通过选择合适尺寸、边框窄、高亮度的电视型号,可以满足需求,并为用户提供一个出色的提词器体验。

  • 生活的波折:重拾开心的快乐

    生活的波折:重拾开心的快乐

    生活,是一段曲折而美丽的旅程。每个人都会在人生中经历不同的挫折和困难,有时候会感到丧失了开心的味道,但正是这些挑战让我们变得更加坚强和成熟。在本文中,我们将探讨生活中的波折,以及如何重新找回开心的快乐。

    重新审视挫折

    生活中的挫折是不可避免的,它们可能来自于工作、家庭、健康或人际关系。当我们遭遇挫折时,常常会感到沮丧和失落,甚至可能忘记了什么是开心的感觉。然而,挫折并不是生活的终点,而是通往成功和成长的必经之路。

    挫折教会了我们坚韧,让我们更加珍惜幸福。它们是一次次的考验,检验着我们的毅力和决心。当我们努力克服困难时,最终成功的那一刻,带来的不仅仅是成就感,还有无比的快乐。

    重拾开心的秘诀

    虽然生活中会有各种挫折,但我们可以通过一些方法来重新找回开心的快乐。

    1. 感恩之心

    感恩是一种强大的情感,能够帮助我们重新审视生活中的美好。每天都可以花一点时间思考并记录下让你感到感恩的事物,无论是一个温馨的笑容、一杯热茶还是一个支持你的朋友。通过培养感恩之心,你将更加珍惜生活中的每一个瞬间,从而找回开心的快乐。

    2. 培养兴趣爱好

    追求自己的兴趣爱好是找回开心的一种有效方式。不管是阅读、绘画、运动还是音乐,投入到自己热爱的活动中,可以帮助你放松身心,充实自己的生活。这些爱好能够带来满足感和成就感,让你重新感受到开心的味道。

    3. 与亲朋好友分享

    与亲朋好友分享你的忧虑和喜悦是重新找回开心的另一种途径。与他们交流,倾听他们的建议,或者只是聊聊天,都能够让你感到被理解和支持。亲情和友情是生活中宝贵的财富,它们能够给予你温暖和快乐。

    结语

    生活的波折是无法避免的,但它们不应成为我们失去开心的理由。通过重新审视挫折、培养感恩之心、追求兴趣爱好和与亲朋好友分享,我们可以重新找回开心的快乐。生活中的每一天都是一次重新开始的机会,让我们积极面对挑战,重新享受生活的美好。

  • ARM Cortex-M3 深度研究 – 慎用 volatile 关键字修饰 double longlong 等64位长度类型的变量

    ARM Cortex-M3 深度研究 – 慎用 volatile 关键字修饰 double longlong 等64位长度类型的变量

    ARM Cortex-M3处理器是一种嵌入式系统中广泛使用的微控制器核心,它以高性能和低功耗而闻名。在嵌入式系统开发中,经常需要处理各种类型的数据,包括整数、浮点数和64位长整数。本教程将深入研究在ARM Cortex-M3上使用volatile关键字修饰数据类型,特别是double、long long等64位长度类型的变量。我们将讨论何时使用volatile以及如何正确使用它,以避免潜在的问题和错误。

    了解volatile关键字

    1. volatile的作用

    volatile是C/C++编程语言中的关键字,它告诉编译器不要对被修饰的变量进行优化,以确保每次访问该变量都从内存中读取,而不是从寄存器中读取。这对于处理外部硬件、多线程编程和嵌入式系统非常重要,因为这些情况下变量的值可能会在编译器无法预测的时候被修改。

    2. volatile的适用场景

    volatile通常用于以下情况:

    • 处理硬件寄存器:当你需要访问外部硬件寄存器的值时,这些寄存器的值可能会在任何时候被硬件修改。
    • 多线程编程:在多线程环境中,一个线程修改的变量可能会影响其他线程。使用volatile可以确保变量的可见性。
    • 中断处理程序:在中断处理程序中,变量的值可能会在任何时候被中断修改。

    问题与挑战

    尽管volatile关键字在某些情况下非常有用,但在ARM Cortex-M3上,对于一些数据类型,特别是64位长度类型(如double和long long),滥用volatile可能会导致问题和性能下降。

    1. volatile与优化

    在ARM Cortex-M3上,对于基本的整数和浮点数,使用volatile通常不会引起问题,因为编译器可以正确处理它们。然而,对于64位长度类型,volatile可能会导致性能下降,因为它们需要更多的内存和处理时间来访问。

    2. 原子性

    volatile不能确保操作是原子性的。在多线程环境中,如果多个线程同时访问一个volatile变量,可能会导致竞态条件和不确定的行为。因此,在需要原子性操作的情况下,应该使用其他同步机制,如互斥锁或信号量。

    如何正确使用volatile

    1. 了解数据类型

    首先,要了解你正在使用的数据类型。对于64位长度类型,特别是double和long long,在ARM Cortex-M3上,使用volatile可能会导致性能问题。如果你只需要访问这些变量的值而不需要原子性保证,最好不要使用volatile。

    2. 原子性操作

    如果你需要对变量进行原子性操作,不要仅仅依赖于volatile。在多线程环境中,应该使用适当的同步机制,如互斥锁或信号量,来确保操作的原子性。

    3. 使用volatile的场景

    volatile仍然有其用武之地,特别是在处理硬件寄存器、中断处理程序和多线程环境中。在这些情况下,确保变量的可见性是非常重要的,但要注意不要滥用volatile,以避免性能问题。

    总结

    在ARM Cortex-M3上使用volatile关键字需要谨慎,特别是对于64位长度类型的变量。了解何时使用volatile以及何时不使用是非常重要的,以避免潜在的问题和性能下降。在多线程环境中,应该谨慎使用volatile,并使用其他同步机制来确保原子性操作。

    了解volatile的适用场景和限制可以帮助你更好地编写嵌入式系统代码,确保代码的可维护性和性能。

  • MBR+BIOS与GPT+UEFI启动系统的区别

    MBR+BIOS与GPT+UEFI启动系统的区别

    在计算机领域,启动系统是一项至关重要的功能。它决定了操作系统如何加载和运行,以及硬件和软件之间的交互方式。在这个教程中,我们将深入探讨MBR+BIOS和GPT+UEFI两种不同的启动系统,分析它们的区别以及各自的优势和劣势。无论你是计算机爱好者还是专业人士,了解这些知识都将对你的计算机操作和维护有所帮助。

    MBR+BIOS启动系统

    1. MBR(主引导记录)

    MBR是主引导记录的缩写,是一个位于硬盘的第一个扇区(通常为512字节)的特殊区域。它包含了启动计算机所需的信息,包括引导加载程序和分区表。MBR通常与传统的BIOS(基本输入/输出系统)一起使用。

    2. BIOS(基本输入/输出系统)

    BIOS是计算机上的固件,负责初始化硬件和加载操作系统。在MBR+BIOS系统中,计算机首先启动BIOS,然后BIOS读取MBR中的引导加载程序,该程序进一步加载操作系统。这种方式具有以下特点:

    • 32位地址空间:MBR+BIOS系统仅支持32位地址空间,因此在处理大容量硬盘时存在限制。
    • 主引导记录:MBR只能管理4个主分区,或者3个主分区和1个扩展分区,因此分区管理受限。
    • 有限的启动安全性:MBR启动系统对恶意软件攻击较为脆弱,因为它不具备安全启动功能。

    GPT+UEFI启动系统

    1. GPT(GUID分区表)

    GPT是GUID分区表的缩写,它是一种现代的分区表格式,用于管理硬盘上的分区信息。GPT使用全局唯一标识符(GUID)来标识分区,支持更大的硬盘容量和更多分区。它通常与UEFI(统一扩展固件接口)一起使用。

    2. UEFI(统一扩展固件接口)

    UEFI是一种现代的固件接口,取代了传统的BIOS。UEFI提供了更强大的启动和管理功能,支持64位地址空间,使计算机能够处理更大的硬盘和更多的内存。这种方式具有以下特点:

    • 安全启动:UEFI引入了安全启动功能,可以防止恶意软件在启动时加载。
    • 多操作系统支持:GPT+UEFI系统可以轻松支持多个操作系统,而不需要主引导记录的限制。
    • 更大的分区支持:GPT允许管理更多和更大容量的分区,适应了现代硬盘的需求。

    区别和优劣势对比

    1. 地址空间

    • MBR+BIOS:32位地址空间,有限制。
    • GPT+UEFI:64位地址空间,更大的硬盘和内存支持。

    2. 分区管理

    • MBR+BIOS:最多4个主分区或3个主分区+1个扩展分区,分区管理受限。
    • GPT+UEFI:支持更多的分区,适应现代硬盘需求。

    3. 启动安全性

    • MBR+BIOS:相对较弱的启动安全性,容易受到恶意软件攻击。
    • GPT+UEFI:支持安全启动,提高了启动系统的安全性。

    4. 操作系统支持

    • MBR+BIOS:有限的多操作系统支持。
    • GPT+UEFI:轻松支持多个操作系统,更灵活。

    结论

    MBR+BIOS和GPT+UEFI是两种不同的启动系统,各自具有自己的特点和优势。选择哪种启动系统取决于你的硬件需求和安全性要求。对于现代计算机和大容量硬盘,GPT+UEFI是更好的选择,它提供了更大的灵活性和安全性。

    了解这些区别和优劣势可以帮助你更好地管理和维护你的计算机系统,确保它在最佳状态下运行。

  • 创建Microsoft 365 E5 Renew Plus教程

    创建Microsoft 365 E5 Renew Plus教程

    Microsoft 365 E5 Renew Plus是Microsoft 365 E5 Renew的升级版,提供了更多功能和灵活性。在本教程中,我们将详细介绍如何使用Microsoft 365 E5 Renew Plus,包括配置API权限、创建应用程序、以及查询续订剩余天数。让我们开始吧!

    步骤一:注册Azure应用程序

    1. 登录Azure管理中心,使用你的Microsoft 365 E5管理员账户。

    2. 在搜索栏中输入“应用注册”,然后点击进入应用注册页面。

    3. 点击“新注册”按钮,开始配置应用程序。

    4. 为应用程序取一个名称,选择可访问性选项中的最后一项,并且在重定向URL中暂时不填写,然后点击注册。

    5. 在应用程序注册成功后,点击“概述”选项卡,进入应用程序的概述页面。

    6. 点击“添加重定向URL”并配置重定向URL为“https://login.microsoftonline.com/common/oauth2/nativeclient”,然后点击保存。

    7. 在默认客户端类型下,选择“是”,然后点击保存。

    步骤二:配置应用程序的API权限

    选择“委托的权限(用户登录)”类型的API

    1. 点击“API权限”-“添加权限”-“Microsoft Graph”。

    2. 选择“委托的权限”。

    3. 根据下面列出的API权限需求表,勾选所需的API权限,然后点击”添加权限”。

      • BookingsAppointment.ReadWrite.All
      • Calendars.Read
      • Contacts.Read
      • Directory.Read.All
      • Files.Read.All
      • Files.ReadWrite.All
      • Group.Read.All
      • Mail.Read
      • Mail.Send
      • MailboxSettings.Read
      • Notes.Read.All
      • People.Read.All
      • Presence.Read.All
      • Sites.Read.All
      • Tasks.ReadWrite
      • User.Read.All
    4. 最后点击“代表XXX授予管理员同意”,并选择“是”。

    选择“应用程序权限(非用户登录)”类型的API

    1. 点击“API权限”-“添加权限”-“Microsoft Graph”。

    2. 选择“应用程序权限”。

    3. 根据下面列出的API权限需求表,勾选所需的API权限,然后点击”添加权限”。

      • Calendars.Read
      • Contacts.Read
      • Directory.Read.All
      • Files.Read.All
      • Files.ReadWrite.All
      • Mail.Read
      • Mail.Send
      • MailboxSettings.Read
      • Notes.Read.All
      • Sites.Read.All
      • User.Read.All
    4. 最后点击“代表XXX授予管理员同意”,并选择“是”。

    创建客户端密码

    1. 点击“证书密码”-“新客户端密码”-“24个月”-“添加”。

    2. 在“值”列中的“复制”按钮,将该密码保存至电脑,这个值即为“客户端密码”,请立即保存,否则无法再次查看。

    步骤三:使用程序进行API调用

    1. 现在,你可以使用Microsoft 365 E5 Renew Plus程序进行API调用。

    2. 点击“开始运行”,然后选择添加账号。

    3. 根据你的需求,选择登录调用方式或非登录调用方式,然后填写相应的信息。

    4. 点击确定,开始运行程序。

    结束语

    使用Microsoft 365 E5 Renew Plus可以提高E5续订的概率,但请注意,续订操作具有一定的技术门槛,需要具备一定的自学能力。在使用过程中,请查阅帮助文档,遇到问题再发起提问。希望这个教程对你有所帮助!

  • 使用树莓派在ZeroTier和本地网络之间创建桥接

    使用树莓派在ZeroTier和本地网络之间创建桥接

    你是否有一些家中的设备无法运行ZeroTier?你是否想要远程访问这些设备?你是否已经在使用ZeroTier?你可以使用一台小型Linux PC作为ZeroTier虚拟网络和物理网络之间的桥接设备。

    假设和要求

    在开始之前,请确保满足以下假设和要求:

    • 你正在在家庭网络上进行操作,并可以登录到你的路由器并找到DHCP设置。
    • 你有一个键盘、显示器和以太网电缆连接到你的树莓派。因为在配置过程中可能会破坏网络,导致无法远程连接,所以这些物理设备很重要。
    • 你对命令行和SSH有一定的了解。
    • 本教程将使用systemd networking。如果你对systemd有异议,你可能需要自行适应不同的Linux网络配置系统。
    • 我们在编写本文时使用的是树莓派2,但树莓派3或4也应该可以正常工作。任何运行基于Debian 10的发行版的设备都应该可以正常工作。不一定非要使用树莓派,但某些指令可能特定于Raspbian系统。

    准备信息

    在开始之前,请准备以下信息以在配置过程中使用:

    • 物理LAN子网
    • 物理LAN DHCP范围
    • ZeroTier自动分配范围
    • 默认网关IP地址(路由器)
    • 桥接IP地址(将静态分配)
    • 创建一个新的ZeroTier网络并获取其ID。保留旧网络以作为连接已使用ZeroTier的设备的备用方法。
    • DHCP范围和ZeroTier自动分配范围应该位于相同的子网中,但不重叠。你可能会基于已在你的路由器上配置的内容进行设置。

    以下是一个示例计划:

    • 物理LAN子网:192.168.192.0/24
    • 物理LAN DHCP范围:192.168.192.65到192.168.192.126
    • ZeroTier自动分配范围:192.168.192.129到192.168.192.190
    • 默认网关IP地址:192.168.192.1
    • 桥接IP地址:192.168.192.2/24(或使用DHCP)
    • ZeroTier网络ID:d5e04297a19bbd70

    步骤

    步骤1:使你的桥接设备运行起来

    首先,确保你的树莓派设备已经启动并运行。按照以下步骤进行操作:

    1. 遵循树莓派的安装指南,下载并安装操作系统。你可以使用以下版本:Raspbian Buster Lite。

    2. 启用SSH以便远程登录到树莓派,详细说明请参考这里。

    3. 使用SSH连接到树莓派,例如:

      ssh [email protected]

      或者

      ssh pi@<树莓派的IP地址>
    4. 更新操作系统:

      sudo apt update && sudo apt -y full-upgrade && sudo reboot
    5. 在重启后重新登录。

    步骤2:安装ZeroTier

    接下来,安装ZeroTier。请遵循Linux系统的安装指南,具体指南请参考这里。基本上,你可以运行以下命令:

    curl -s https://install.zerotier.com | sudo bash

    在安装完成后,设置一些shell变量以在后续配置中使用:

    NETWORK_ID=<你的网络ID>
    BR_IF="br0"
    BR_ADDR=<你的桥接地址>
    GW_ADDR=<你的网关地址>

    然后,加入ZeroTier网络:

    sudo zerotier-cli join $NETWORK_ID
    sudo zerotier-cli listnetworks

    我们不希望ZeroTier在$ZT_IF上管理地址或路由,我们会在下面的步骤中手动进行配置。

    sudo zerotier-cli set $NETWORK_ID allowManaged=0

    再设置一个变量,用于存储ZeroTier网络接口的名称,你可以从listnetworks输出中找到它,它通常会类似于:zt3jvirser。

    ZT_IF=<你的ZeroTier接口名称>

    步骤3:在my.zerotier.com上配置设备

    前往my.zerotier.com,找到你的ZeroTier网络($NETWORK_ID),然后在“Members”部分添加你的设备。打开高级设置的扳手图标,并选中以下选项:

    • 允许桥接
    • 不自动分配
    • 授权成员

    步骤4:切换到systemd networking

    现在,我们将切换到systemd networking。首先,删除已有的网络配置:

    sudo apt remove --purge --auto-remove dhcpcd5 fake-hwclock ifupdown isc-dhcp-client isc-dhcp-common openresolv

    然后,启用systemd-networkd:

    sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf;
    sudo systemctl enable systemd-networkd;
    sudo systemctl enable systemd-resolved;
    sudo systemctl enable systemd-timesyncd;

    接下来,配置网络接口。我们将在下面的步骤中创建网络配置文件。以下是示例配置文件:

    cat << EOF | sudo tee /etc/systemd/network/25-bridge-br0.network
    [Match]
    Name=$BR_IF
    
    [Network]
    Address=$BR_ADDR
    Gateway=$GW_ADDR
    DNS=1.1.1.1
    EOF
    
    cat << EOF | sudo tee /etc/systemd/network/br0.netdev
    [NetDev]
    Name=$BR_IF
    Kind=bridge
    EOF
    
    cat << EOF | sudo tee /etc/systemd/network/25-bridge-br0-zt.network
    [Match]
    Name=$ZT_IF
    
    [Network]
    Bridge=$BR_IF
    EOF
    
    cat << EOF | sudo tee /etc/systemd/network/25-bridge-br0-en.network   
    [Match]
    Name=eth0 # 可能是en*
    
    [Network]
    Bridge=$BR_IF
    EOF

    完成配置后,请检查网络配置文件:

    tail -n+0 /etc/systemd/network/*

    如果需要,使用你喜欢的文本编辑器编辑这些文件。如果一切看起来正常,重新启动树莓派以应用配置:

    sudo reboot

    你现在应该能够从物理LAN连接到树莓派,使用$BR_ADDR作为目标地址。

    如果在启动过程中等待网络连接时间较长,有时物理接口可能会出现长的“可预测接口名称”,例如“enb827eb0d4176”,有时只是“eth0”,这取决于Raspbian版本。如果出现这种情况,请连接键盘和显示器,并检查/etc/systemd/network/25-bridge-br0-en.network以匹配接口名称。

    步骤5:配置ZeroTier网络

    前往my.zerotier.com/network/$NETWORK_ID,然后在“设置” -> “Advanced”中进行以下配置:

    • 删除默认的Managed Route,添加新的Managed Route $ZT_ROUTE
    • 将IPv4自动分配更改为Advanced,
    • 删除现有的Pool,创建新的Pool,其范围从$ZT_POOL开始和结束。

    为了文档记录,将$BR_ADDR分配给ZeroTier桥接成员。

    结论

    至此,你已经成功创建了一个树莓派桥接设备,用于将ZeroTier虚拟网络和物理网络连接起来。你可以从物理LAN连接到树莓派,并通过它访问ZeroTier网络中的设备。

    如果一切正常,你应该能够在一分钟后通过$BR_ADDR重新使用SSH连接到树莓派。如果有任何问题,树莓派不再在网络上,你需要使用键盘和显示器来查找问题。

    希望这个教程能够帮助你成功创建一个ZeroTier和本地网络之间的桥接,以便更轻松地管理和访问你的设备。

  • 在ZeroTier和物理网络之间进行路由设置

    在ZeroTier和物理网络之间进行路由设置

    在网络管理中,有时需要在ZeroTier虚拟网络和物理网络之间进行路由设置,以便实现远程访问你的局域网(LAN)。本教程将介绍一种简单的模式,可以帮助你实现这一目标,而不需要访问LAN的路由器或遇到桥接的一些问题。这个模式需要在你的LAN上运行Linux PC或虚拟机,以及运行iptables的设备,如树莓派。本教程将指导你进行NAT/Masquerade设置,以便在ZeroTier和物理网络之间进行路由。

    请注意,如果你的路由器支持运行ZeroTier,那么最好使用路由器厂商提供的ZeroTier包,而不是使用本文的方法。许多路由器厂商和操作系统都提供了ZeroTier包。

    可能的缺点

    在使用这种方法时,可能会遇到一些限制,包括:

    • 不能在不同网络之间进行广播/多播(但移动操作系统通常也不允许这样做)。
    • 不能从LAN主动连接到外部ZeroTier客户端。

    摘要

    下面是在ZeroTier和物理网络之间进行路由设置的摘要步骤:

    1. 安装ZeroTier。
    2. 添加管理路由到ZeroTier网络(在my.zerotier.com上进行)。
    3. 启用IP转发。
    4. 配置iptables。

    所需信息

    在开始之前,请收集以下所需信息,以便在配置过程中使用:

    • ZeroTier网络ID($NETWORK_ID)
    • ZeroTier接口名称($ZT_IFACE)
    • 物理接口名称($PHY_IFACE)
    • ZeroTier子网
    • 物理子网($PHY_SUB)
    • ZeroTier路由器的IP地址($ZT_ADDR)

    步骤

    步骤1:安装ZeroTier

    首先,安装ZeroTier。你可以从ZeroTier的官方网站下载安装程序并进行安装。安装完成后,运行以下命令以加入ZeroTier网络,并在my.zerotier.com上进行授权:

    sudo zerotier-cli join $NETWORK_ID
    sudo zerotier-cli listnetworks 

    步骤2:配置ZeroTier管理路由

    登录到my.zerotier.com,找到你的ZeroTier网络($NETWORK_ID),然后在“设置”中添加管理路由。管理路由会自动添加到所有加入该ZeroTier网络的设备上。配置管理路由时,请确保目标设置如下:

    • 目标:$PHY_SUB
    • 通过:$ZT_ADDR

    例如:

    • 目标:192.168.100.0/23
    • 通过:172.27.0.1

    请注意,目标路由应设置为略大于实际物理子网的范围,以便既在物理网络上又在ZeroTier网络上的设备优先选择物理连接。

    步骤3:启用IP转发

    启用IP转发的方法可能因Linux发行版而异,但通常包括以下步骤:

    编辑/etc/sysctl.conf文件,取消注释net.ipv4.ip_forward以在启动时启用转发。

    立即启用IP转发,运行以下命令:

    sudo sysctl -w net.ipv4.ip_forward=1

    步骤4:配置iptables

    在进行iptables配置之前,请分配一些shell变量以便在命令中使用。个性化这些变量以匹配你的网络设置:

    PHY_IFACE=eth0
    ZT_IFACE=zt7nnig26

    然后,添加iptables规则以进行NAT设置和数据包转发:

    sudo iptables -t nat -A POSTROUTING -o $PHY_IFACE -j MASQUERADE
    sudo iptables -A FORWARD -i $PHY_IFACE -o $ZT_IFACE -m state --state RELATED,ESTABLISHED -j ACCEPT
    sudo iptables -A FORWARD -i $ZT_IFACE -o $PHY_IFACE -j ACCEPT

    最后,保存iptables规则以便在下次启动时生效:

    sudo apt install iptables-persistent
    sudo bash -c iptables-save > /etc/iptables/rules.v4

    步骤5:测试

    现在,你已经完成了路由设置。可以通过以下步骤测试它是否正常工作:

    1. 关闭手机上的Wi-Fi。
    2. 将手机连接到ZeroTier网络并进行授权。
    3. 尝试访问物理LAN上的某些内容。

    结论

    通过本教程,你学会了如何在ZeroTier虚拟网络和物理网络之间进行路由设置,以实现远程访问你的LAN。这个模式可以在不访问LAN路由器的情况下实现,同时避免了一些桥接引发的问题。

    希望这个教程对你有所帮助。如果你有任何其他问题或需要更多的帮助,请随时联系我们。祝你成功配置你的ZeroTier网络!