家里有一台小米路由器,而最近个人的主力电脑是 Linux 系统(Ubuntu)。若想在 Linux 下访问小米路由器上的文件,有三种方法可以实现,本文记录这三种方法的具体步骤。

准备工作

在开始介绍三种访问方法之前,有一些相同的准备工作需要做,即不管使用哪种方法,都需要先完成这些准备工作。

同一个局域网

Linux 系统需要和小米路由器在同一个局域网中。现今主流的 Linux 系统都支持无线局域网了,所以只要将 Linux 系统连接小米路由器对应的 Wi-Fi ,即可实现同处一个局域网的要求。

开启 Samba 服务

想要让 Linux 设备能够访问小米路由器上的文件,需要开启小米路由器上的 Samba 服务。在手机的「小米路由器」 app 的「工具箱」页面,找到 Samba 插件:

xiaomi-router-app-plugins

进入 Samba 并允许后,确认 Samba 协议已开启:

xiaomi-router-app-samba

从上图可见,小米电视和小米盒子的正常工作也是依赖于 Samba 服务的。

开启全盘访问

除了 Samba 服务之外,还需要打开 Linux 对应设备的「路由全盘访问」权限。

首先,在 app 的「路由」页面,找到 Linux 系统对应的设备名称,如 Yubuntu:

xiaomi-router-app-home

点击此设备进入设置页面,开启「路由全盘访问」权限:

xiaomi-router-disk-access

这样,app 上的设置就完成了。另外提前说明一点,全盘访问权限并不是必须的,但有了这个权限会方便很多,下文会详细说明。

方法一:通过 smbclient 访问

由前面的准备工作可知,小米路由器上的文件是通过 Samba 服务对外提供访问的,小米路由器就是一台 Samba 服务器,而 Linux 设备是 Samba 客户端,因此可以使用 smbclient 命令来访问。

smbclient 命令提供了一种类似 ftp 命令的方式访问 Samba 服务器。一台 Samba 服务器可以提供诸如磁盘、打印机等不同的共享服务,先使用 smbclient 命令的 -L 选项看看小米路由器提供了哪些共享服务(其中 192.168.31.1 是小米路由器的默认 IP 地址):

$ smbclient -L 192.168.31.1

WARNING: The "syslog" option is deprecated

Enter yestyle's password:

Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.0.21]

Sharename Type Comment

--------- ---- -------

XiaoMi Disk

Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.0.21]

Server Comment

--------- -------

WECHANGER Share from router

YE-PC

Workgroup Master

--------- -------

WORKGROUP WECHANGER

其中可以看到小米路由器的域名称(WORKGROUP)、操作系统类型(Unix)及 Samba 服务器的版本(4.0.21)等信息,重点关注 Sharename 和 Type 两列,可以看到小米路由器提供了一个叫做 XiaoMi 的 Disk 共享服务即磁盘共享服务,我们要访问的就是这个磁盘服务。

在准备工作部分,提到「全盘访问权限」不是必须的,这里看看假如没有全盘访问权限,可以访问的服务有何不同。

$ smbclient -L 192.168.31.1

WARNING: The "syslog" option is deprecated

Enter yestyle's password:

Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.0.21]

Sharename Type Comment

--------- ---- -------

torrent Disk

下载 Disk

共享 Disk

图片 Disk

文档 Disk

视频 Disk

音乐 Disk

IPC$ IPC IPC Service (Share from router)

Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.0.21]

Server Comment

--------- -------

WECHANGER Share from router

YE-PC

Workgroup Master

--------- -------

WORKGROUP WECHANGER

可以看到,在没有全盘访问权限时,小米路由器将各个子目录分别作为一个磁盘服务,将访问权限做了更细粒度的划分。但这将对我们访问整个路由器的文件造成不便,因此为方便起见,建议开启全盘访问权限。

前面只列出了小米路由器提供的共享服务名称,接下来看看具体如何访问小米路由器上的文件。

$ smbclient //192.168.31.1/XiaoMi

WARNING: The "syslog" option is deprecated

Enter yestyle's password:

Domain=[WORKGROUP] OS=[Unix] Server=[Samba 4.0.21]

smb: \> ?

allinfo altname archive backup

blocksize cancel case_sensitive cd chmod

chown close del dir du

echo exit get getfacl geteas

hardlink help history iosize lcd

link lock lowercase ls l

mask md mget mkdir more

mput newer notify open posix

posix_encrypt posix_open posix_mkdir posix_rmdir posix_unlink

print prompt put pwd q

queue quit readlink rd recurse

reget rename reput rm rmdir

showacls setea setmode scopy stat

symlink tar tarmode timeout translate

unlock volume vuid wdel logon

listconnect showconnect tcon tdis tid

logoff .. !

输入 smbclient //192.168.31.1/XiaoMi 命令之后进入 smb:\> 提示符,其中的 \ 代表当前所在目录,输入 help 或 查看可用命令,基本的访问命令与 ftp 的命令相同,如 get XXX 从小米路由器下载文件 XXX 到本地,put YYY 将本地文件 YYY 上传到小米路由器等等。

方法二:通过文件浏览器访问

在 Ubuntu 的文件浏览器(Files)的左侧,有一个「Connect to Server」按钮,点击后在出现的对话框中,输入 smb://192.168.31.1/ 再点击 Connect 即可查看小米路由器提供的共享服务,效果等同于方法一的 smbclient -L 命令,如下图所示:

ubuntu-connect-to-server

双击 XiaoMi 后弹出的对话框中,选择 Anonymous (匿名访问)再点击 Connect 即可。此时可以在左侧看到 xiaomi on 192.168.31.1 的目录,表示连接成功。

方法三:通过挂载方式访问

安装

Samba 其实是对 CIFS 协议做逆向工程后的开源产物,而 Linux 上的 CIFS 的工具已经从 Samba 软件包中分离出来,需要单独安装:

$ sudo apt-get install cifs-utils

挂载

首先创建挂载点的目录:

$ sudo mkdir -p /media/xiaomi

然后使用 mount 命令将 //192.168.31.1/XiaoMi 挂载到刚创建的目录,注意其中的 -t cifs 选项:

$ sudo mount -t cifs //192.168.31.1/XiaoMi /media/xiaomi -o guest

由于 CIFS 对于路径名称是大小写不敏感的,因此挂载时可以使用 XiaoMi 的任意大小写组合,但挂载点 /media/xiaomi 当然是大小写敏感的。

要验证是否挂载成功,可直接输入 mount 命令查看目前所有已挂载的文件系统,找到其中这样的一行(刚刚挂载的文件系统在最后一行):

//192.168.31.1/XiaoMi on /media/xiaomi type cifs (rw,relatime,vers=1.0,sec=none,cache=strict,domain=WECHANGER,uid=0,noforceuid,gid=0,noforcegid,\

addr=192.168.31.1,file_mode=0755,dir_mode=0755,nounix,serverino,mapposix,rsize=61440,wsize=65536,actimeo=1)

成功挂载之后,就可以像使用本地磁盘一样使用小米路由器的共享磁盘了,比如在文件浏览器中双击打开文档,使用 cp 命令与小米路由器互传文件等,非常方便。

小结

通过对三种方法的描述可以发现,这三种访问方法的本质是相同的,都是通过 Samba 服务访问小米路由器上的文件,小米路由器作为 Samba 服务器,Linux 设备作为 Samba 客户端。三种方法的差异体现在所使用的工具和操作界面不同。其中方法一使用 smbclient 操作不方便,方法二使用图形化的操作界面无法实现自动化,而方法三使用挂载的方式,操作方便且可使用脚本实现自动挂载和文件操作,推荐使用方法三。

附本文操作环境:

Linux 版本: Ubuntu 16.04

小米路由器型号: R1D

小米路由器 ROM 版本: MiWiFi 稳定版 2.16.3

以上。

linux 路由记录文件,Linux 下玩转小米路由器文件访问相关推荐

  1. Linux下访问小米路由器文件

    Linux下访问小米路由器文件 Linux访问小米路由器首先要满足一下几点:     1.Linux主机和要访问的小米路由器位于同一个局域网:     2.小米路由器开启Samba服务     想要让 ...

  2. linux java读取文件夹下文件名,Java获取Linux上指定文件夹下所有第一级子文件夹...

    说明:需要只获得第一级文件夹目录 package com.sunsheen.jfids.studio.monitor.utils; import java.io.BufferedReader; imp ...

  3. xml遍历文件夹vector_怎么统计指定文件夹下含有.xml格式的文件数目

    如何统计指定文件夹下含有.xml格式的文件数目?如题 ------解决思路----------------------Directory.GetFiles(@"路径", " ...

  4. R语言sys方法:sys.getpid函数获取R会话的进程ID、sys.glob函数和file.path函数匹配文件夹下的所有特定类型文件、sys.info函数获取系统和用户信息

    R语言sys方法:sys.getpid函数获取R会话的进程ID.sys.glob函数和file.path函数匹配文件夹下的所有特定类型文件.sys.info函数获取系统和用户信息 目录

  5. C#获取文件夹下指定格式的所有文件

    C#获取文件夹下指定格式的所有文件的方法,虽然很简单,但还是分享一下吧,用到时可以稍加修改和优化就可以使用. 获取指定目录下所有文件 //最要使用 System.IO.Directory.GetFil ...

  6. perl 循环删除指定文件夹下所有满足条件的文件,不包含文件夹

    需求:perl 二秒钟循环删除指定文件夹下所有满足条件的文件,不包含文件夹,若要删除文件夹另作处理,加一个判断 目录格式:D:\Users\XXXXXXX\Desktop\Test\023\20160 ...

  7. 批量处理不同文件夹下同名图片到相同文件内,简单处理

    批量处理不同文件夹下同名图片到相同文件内 第一步:在不同文件夹下搜索同名图片名称 例如在我的多个_json文件夹下存在同名的图片img.png,因此利用搜索功能将所有_json下的img.png图片全 ...

  8. Python 递归获取文件夹下某个文件格式的所有文件

    在对文件进行操作时,有些时候需要获取某个文件夹下指定后缀的所有文件的文件路径,如获取D盘下所有文件格式后缀为png的文件名字,并拼接成文件路径以便于在后续文件处理过程中对相应的文件做处理. 使用pyt ...

  9. Shell获取某个文件夹下的所有文件名(含文件夹)

    2019独角兽企业重金招聘Python工程师标准>>> 1. 获取某个文件夹下的所有文件名(含文件夹),并显示 #!/bin/sh #============ get the fil ...

最新文章

  1. boost::proto模块实现在外部指定转换的示例的测试程序
  2. 三层架构介绍和MVC设计模型介绍
  3. 如何在客户端调用服务端代码
  4. 剑指Offer - 面试题66. 构建乘积数组(正反遍历)
  5. Fuel 5.1安装openstack I版本环境 (ESXi)
  6. idp 苹果开发账号续费
  7. 2018年3月江苏省计算机二级C语言真题第1套
  8. 解析xml的四种方式
  9. VNC实现Windows远程访问Ubuntu 16.04(无需安装第三方桌面)
  10. R语言实战(统计分析1)
  11. SocialBook帮你扫除网红营销乱象
  12. GlobalSign 企业型SSL 证书
  13. Photoshop CS2 视频教程-PS色彩范围(转)
  14. 【题解】POJ 3069 Saruman's Army(贪心)
  15. Qt Linguist翻译 介绍
  16. 网络---IP地址和端口
  17. xgboost Dmatrix label全为0 解决方法
  18. 数学建模(五):图与网络模型
  19. HTML转换为WORD
  20. centos7安装代码雨cmatrix

热门文章

  1. 小米8位置服务器,超旗舰新机小米8,强大的GPS定位无人能及!
  2. 什么是Running Head
  3. 使用AI的混合工具混合
  4. js 高德地图根据后台坐标绘制轨迹
  5. WHAT?写代码也能俘虏妹纸!
  6. R语言批量处理TRMM降雨数据
  7. 【迈向引擎研发工程师之路】21届应届经历记录
  8. c语言程序的英式棋盘,使用棋盘法的贪吃蛇代码
  9. p30pro可以更新鸿蒙系统吗,华为p30pro如何升级鸿蒙系统 华为p30pro升级鸿蒙系统教程...
  10. 决策树:CART决策树剪枝算法(超详细)