安卓手机搭建Samba服务器SMB

文章目录

简介

使用安卓手机搭建 Samba 服务器提供给电视或车机看视频

Samba 是一款 Linux 上的文件和打印机共享软件,它通过实现 SMB/CIFS 协议,在不同的操作系统之间架起了桥梁,让它们在同一个网络中共享资源。

1. 安装termux

Termux 是 Android 上的 Linux 环境,它可以在不进行 Root 的情况下,提供 Linux 命令行的体验。可以理解为一个装在手机里的迷你 Linux 服务器。它不是一个模拟器,而是一个真正的运行时环境。

安装方式:

后缀 适用设备
universal 所有设备,包含所有架构的通用包,体积最大
arm64-v8a 现代安卓手机,主流 64 位 ARM 处理器 (2014 年后)
armeabi-v7a 旧安卓设备,32 位 ARM 处理器 (2014 年前)
x86_64 部分平板/模拟器,64 位 Intel/AMD 处理器
x86 老旧平板/模拟器,32 位 Intel/AMD 处理器

2. 安装Samba

shell 复制代码
pkg update
pkg upgrade
termux-setup-storage
pkg install samba
pkg install nano

3. 配置Samba

shell 复制代码
# 创建samba配置文件目录
mkdir $PREFIX/etc/samba

# 复制配置模板
cp $PREFIX/share/doc/samba/smb.conf.example $PREFIX/etc/samba/smb.conf

# 获取用户名
whoami

# 记下uid对应的用户名(如 u0_a123)和主组(如 u0_a123_all)
id

# 确认共享目录存在
echo $HOME/storage/shared

# 修改配置
nano $PREFIX/etc/samba/smb.conf
ini 复制代码
[global]
   workgroup = WORKGROUP
   server string = Samba on Termux

   security = user
   map to guest = Bad User
   server role = standalone

   bind interfaces only = no

   smb ports = 1139 4445
   max connections = 8

   unix password sync = no
   pam password change = no
   obey pam restrictions = no
   passwd program = /data/data/com.termux/files/usr/bin/true
   add user script = /data/data/com.termux/files/usr/bin/true
   add group script = /data/data/com.termux/files/usr/bin/true
   add user to group script = /data/data/com.termux/files/usr/bin/true
   add machine script = /data/data/com.termux/files/usr/bin/true
   delete user script = /data/data/com.termux/files/usr/bin/true
   delete user from group script = /data/data/com.termux/files/usr/bin/true
   delete group script = /data/data/com.termux/files/usr/bin/true
   rename user script = /data/data/com.termux/files/usr/bin/true

   name resolve order = bcast host
   local master = no
   preferred master = no
   disable spoolss = yes
   load printers = no
   printing = bsd
   printcap name = /dev/null

   nt acl support = no
   unix extensions = no
   ea support = no
   store dos attributes = no
   map archive = no
   map hidden = no
   map readonly = no
   map system = no

   use sendfile = yes
   socket options = TCP_NODELAY SO_KEEPALIVE
   oplocks = yes
   kernel oplocks = no

[internal]
   comment = Internal storage
   path = /data/data/com.termux/files/home/storage/shared
   read only = no
   browseable = yes
   writable = yes
   guest ok = yes
   force user = YOUR_UID
   force group = YOUR_GROUP
   create mask = 0775
   directory mask = 0775
   vfs objects = aio_pthread
   aio_pthread:aio open = yes
功能 快捷键 说明
保存文件 Ctrl + O 然后按 Enter 确认文件名
退出 nano Ctrl + X 如果修改过未保存,会提示是否保存
bash 复制代码
# 测配置有没有语法错误
testparm

4. 启动Samba

bash 复制代码
# 启动Samba
smbd -D

# 确认端口在听
pkg install netcat-openbsd
nc -zv 127.0.0.1 4445

# 手机开热点后查看网关IP
pkg install net-tools -y
ifconfig

如本人的是192.168.13.79

5. Windows访问Smaba

有组策略的电脑很有可能连不上

电脑连上手机热点

命令行提示符

bash 复制代码
# 查看热点的网关,看无线局域网适配器 WLAN的默认网关
ipconfig

电脑 PowerShell 测试 4445 端口通不通,看 TcpTestSucceeded 是不是 True

bash 复制代码
Test-NetConnection 网关IP -Port 4445

在资源管理器地址栏输入,这步大概率不行,因为 Windows 只支持 445 端口的 SMB

bash 复制代码
\\网关IP:4445\internal

本人经过以下尝试均不可行

安装 smb-ssh-tunnel

解压后,以管理员身份运行 PowerShell

bash 复制代码
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass

.\smb.ps1 网关IP 4445

重启电脑

bash 复制代码
# 检查
netstat -an | find ":445 "

netsh interface portproxy show v4tov4

# 可以看到类似 10.255.255.1:445 在 LISTENING

在资源管理器地址栏输入

bash 复制代码
# 不再是上面那个网关IP了
\\10.255.255.1\internal

用户名:guest

密码:留空

启用不安全的来宾登录

  1. Win + Rgpedit.msc
  2. 计算机配置 → 管理模板 → 网络 → Lanman 工作站
  3. 启用不安全的来宾登录 → 已启用 → 确定
  4. gpupdate /force 或重启
  5. 再连一次就成功了

Rclone

本人尝试失败,一直连不上,理论上是可行的

解压后进到对应目录

bash 复制代码
# 交互配置
rclone config
  1. n:New remote
  2. name:起一个名字,如:phone
  3. Storage:smb
  4. host:网关 IP
  5. user:guest
  6. port:4445
  7. password:回车默认空
  8. domain:回车默认空
  9. spn:回车默认空
  10. use_keyberos:回车默认空
  11. Edit advanced config:回车默认空
  12. q:退出
bash 复制代码
# 测是否连上
rclone ls phone:internal

参考文献

  1. 手机秒变无线移动硬盘,用Samba轻松实现高速文件共享、远程编辑
  2. Using termux as SAMBA server?
  3. Android手机使用Termux搭建Samba服务器,连接外接SSD,制作简易NAS
  4. 用 Samba 打造手机移动硬盘,随时随地共享文件奶妈级教程
相关推荐
studyForMokey2 小时前
【Android面试】Context专题
android·面试·职场和发展
Shi_haoliu2 小时前
FRP + Caddy 域名HTTPS配置指南
服务器·frp·caddy·openclaw
·醉挽清风·11 小时前
学习笔记—Linux—文件IO
linux·服务器·学习
上海合宙LuatOS11 小时前
LuatOS核心库API——【 string】字符串操作
运维·服务器·物联网·junit·硬件工程·信息与通信·嵌入式实时数据库
徐子元竟然被占了!!11 小时前
Linux的cat
linux·运维·服务器
带娃的IT创业者11 小时前
WeClaw 离线消息队列实战:异步任务队列如何保证在服务器宕机时不丢失任何一条 AI 回复?
运维·服务器·人工智能·python·websocket·fastapi·实时通信
上海合宙LuatOS13 小时前
LuatOS核心库API——【sys】LuatOS运行框架
运维·服务器·物联网·硬件工程·lua·软件工程·信息与通信
运维行者_13 小时前
网络监控方案从零开始 -- 企业级完整指南
大数据·运维·服务器·网络·数据库·人工智能·自动化
坐吃山猪13 小时前
Python进度条
linux·服务器·python