2018年5月

将文件从计算机传输到智能手机并不是什么大问题。你可以使用 USB 线将手机挂载到系统上,然后从文件管理器传输文件。此外,某些第三方应用程序(例如 KDE ConnectAirDroid)可帮助你轻松管理和传输系统中的文件至 Android 设备。今天,我偶然发现了一个名为 “Qr-filetransfer” 的超酷工具。它允许你通过扫描二维码通过 WiFi 将文件从计算机传输到移动设备而无须离开终端。是的,你没有看错! Qr-filetransfer 是一个使用 Go 语言编写的自由开源命令行工具。在这个简短的教程中,我们将学习如何使用 Qr-filetransfer 将文件从 Linux 传输到任何移动设备。

安装 Qr-filetransfer

首先,在你的系统上安装 Go 语言。

在 Arch Linux 及其衍生版上:

$ sudo pacman -S go

在基于 RPM 的系统(如 RHEL、CentOS、Fedora)上运行:

$ sudo yum install golang

或者:

$ sudo dnf install golang

在基于 DEB 的系统上,例如 Debian、Ubuntu、Linux Mint,你可以使用命令安装它:

$ sudo apt-get install golang

在 SUSE/openSUSE 上:

$ sudo zypper install golang

安装 Go 语言后,运行以下命令下载 Qr-filetransfer 应用。

$ go get github.com/claudiodangelis/qr-filetransfer

上述命令将在当前工作目录下的一个名为 go 的目录中下载 Qr-filetransfer GitHub 仓库的内容。

将 Qr-filetransfer 的二进制文件复制到 PATH 中,例如 /usr/local/bin/

$ sudo cp go/bin/qr-filetransfer /usr/local/bin/

最后,如下使其可执行:

$ sudo chmod +x /usr/local/bin/qr-filetransfer

通过扫描二维码将文件从计算机传输到移动设备

确保你的智能手机已连接到与计算机相同的 WiFi 网络。

然后,使用要传输的文件的完整路径启动 qt-filetransfer

比如,我要传输一个 mp3 文件。

$ qr-filetransfer Chill\ Study\ Beats.mp3

首次启动时,qr-filetransfer 会要求你选择使用的网络接口,如下所示。

Choose the network interface to use (type the number):
[0] enp5s0
[1] wlp9s0

我打算使用 wlp9s0 接口传输文件,因此我输入 “1”。qr-filetransfer 会记住这个选择,除非你通过 -force 参数或删除程序存储在当前用户的家目录中的 .qr-filetransfer.json 文件,否则永远不会再提示你。

然后,你将看到二维码,如下图所示。

打开二维码应用(如果尚未安装,请从 Play 商店安装任何一个二维码读取程序)并扫描终端中显示的二维码。

读取二维码后,系统会询问你是要复制链接还是打开链接。你可以复制链接并手动将其粘贴到移动网络浏览器上,或者选择“打开链接”以在移动浏览器中自动打开它。

共享链接打开后,该文件将下载到智能手机中。

如果文件太大,请压缩文件,然后传输它:

$ qr-filetransfer -zip /path/to/file.txt

要传输整个目录,请运行:

$ qr-filetransfer /path/to/directory

请注意,目录在传输之前会被压缩。

qr-filetransfer 只能将系统中的内容传输到移动设备,反之不能。这个项目非常新,所以会有 bug。如果你遇到了任何 bug,请在本指南最后给出的 GitHub 页面上报告。

干杯!


via: https://www.ostechnix.com/transfer-files-from-computer-to-mobile-devices-by-scanning-qr-codes/

作者:SK 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

在这个两篇的系列当中,我们将学习关于 IPv6 私有地址的知识,以及如何在 KVM 中配置测试网络。

要理解 IPv6 地址是如何工作的,没有比亲自动手去实践更好的方法了,在 KVM 中配置一个小的测试实验室非常容易 —— 也很有趣。这个系列的文章共有两个部分,我们将学习关于 IPv6 私有地址的知识,以及如何在 KVM 中配置测试网络。

QEMU/KVM/虚拟机管理器

我们先来了解什么是 KVM。在这里,我将使用 KVM 来表示 QEMU、KVM、以及虚拟机管理器的一个组合,虚拟机管理器在 Linux 发行版中一般都内置了。简单解释就是,QEMU 模拟硬件,而 KVM 是一个内核模块,它在你的 CPU 上创建一个 “访客领地”,并去管理它们对内存和 CPU 的访问。虚拟机管理器是一个涵盖虚拟化和管理程序的图形工具。

但是你不能被图形界面下 “点击” 操作的方式 “缠住” ,因为,它们也有命令行工具可以使用 —— 比如 virshvirt-install

如果你在使用 KVM 方面没有什么经验,你可以从 在 KVM 中创建虚拟机:第 1 部分在 KVM 中创建虚拟机:第 2 部分 - 网络 开始学起。

IPv6 唯一本地地址

在 KVM 中配置 IPv6 网络与配置 IPv4 网络很类似。它们的主要不同在于这些怪异的长地址。上一次,我们讨论了 IPv6 地址的不同类型。其中有一个 IPv6 单播地址类,fc00::/7(详细情况请查阅 RFC 4193),它类似于 IPv4 中的私有地址 —— 10.0.0.0/8172.16.0.0/12、和 192.168.0.0/16

下图解释了这个唯一本地地址空间的结构。前 48 位定义了前缀和全局 ID,随后的 16 位是子网,剩余的 64 位是接口 ID:

| 7 bits |1|  40 bits   |  16 bits  |          64 bits           |
+--------+-+------------+-----------+----------------------------+
| Prefix |L| Global ID  | Subnet ID |        Interface ID        |
+--------+-+------------+-----------+----------------------------+

下面是另外一种表示方法,它可能更有助于你理解这些地址是如何管理的:

| Prefix |  Global ID   |  Subnet ID  |   Interface ID       |
+--------+--------------+-------------+----------------------+
|   fd   | 00:0000:0000 |    0000     | 0000:0000:0000:0000  |
+--------+--------------+-------------+----------------------+

fc00::/7 共分成两个 /8 地址块,fc00::/8fd00::/8fc00::/8 是为以后使用保留的。因此,唯一本地地址通常都是以 fd 开头的,而剩余部分是由你使用的。L 位,也就是第八位,它总是设置为 1,这样它可以表示为 fd00::/8。设置为 0 时,它就表示为 fc00::/8。你可以使用 subnetcalc 来看到这些东西:

$ subnetcalc fd00::/8 -n
Address  = fd00::
            fd00 = 11111101 00000000

$ subnetcalc fc00::/8 -n
Address  = fc00::
            fc00 = 11111100 00000000

RFC 4193 要求地址必须随机产生。你可以用你选择的任何方法来造出个地址,只要它们以 fd 打头就可以,因为 IPv6 范围非常大,它不会因为地址耗尽而无法使用。当然,最佳实践还是按 RFC 的要求来做。地址不能按顺序分配或者使用众所周知的数字。RFC 4193 包含一个构建伪随机地址生成器的算法,或者你可以找到各种在线生成器。

唯一本地地址不像全局单播地址(它由你的因特网服务提供商分配)那样进行中心化管理,即使如此,发生地址冲突的可能性也是非常低的。当你需要去合并一些本地网络或者想去在不相关的私有网络之间路由时,这是一个非常好的优势。

在同一个子网中,你可以混用唯一本地地址和全局单播地址。唯一本地地址是可路由的,并且它并不会因此要求对路由器做任何调整。但是,你应该在你的边界路由器和防火墙上配置为不允许它们离开你的网络,除非是在不同位置的两个私有网络之间。

RFC4193 建议,不要混用全局单播地址的 AAAA 和 PTR 记录,因为虽然它们重复的机率非常低,但是并不能保证它们就是独一无二的。就像我们使用的 IPv4 地址一样,要保持你本地的私有名称服务和公共名称服务的独立。将本地名称服务使用的 Dnsmasq 和公共名称服务使用的 BIND 组合起来,是一个在 IPv4 网络上经过实战检验的可靠组合,这个组合也同样适用于 IPv6 网络。

伪随机地址生成器

在线地址生成器的一个示例是 本地 IPv6 地址生成器。你可以在线找到许多这样很酷的工具。你可以使用它来为你创建一个新地址,或者使用它在你的现有全局 ID 下为你创建子网。

下周我们将讲解如何在 KVM 中配置这些 IPv6 的地址,并现场测试它们。

通过来自 Linux 基金会和 edX 的免费在线课程 “Linux 入门” 学习更多的 Linux 知识。


via: https://www.linux.com/learn/intro-to-linux/2017/11/testing-ipv6-networking-kvm-part-1

作者:Carla Schroder 译者:qhwdw 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出