安卓手机搭建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 打造手机移动硬盘,随时随地共享文件奶妈级教程
相关推荐
江畔何人初10 小时前
GTID的作用
linux·运维·服务器·mysql·云原生·kubernetes
今天又在写代码10 小时前
数据智能分析平台部署服务器
android·服务器·adb
茉莉玫瑰花茶11 小时前
mmap 文件映射 [系统加餐]
服务器
梦里花开知多少11 小时前
深入谈谈Launcher的启动流程
android·架构
不愿透露姓名的大鹏11 小时前
MySQL Binlog配置优化全攻略
运维·服务器·数据库·mysql·adb
IMPYLH11 小时前
Linux 的 mkdir 命令
linux·运维·服务器·bash
yy_xzz11 小时前
【Linux开发】多线程并发服务器(网络编程+多线程+线程同步实现的聊天服务器和客户端)
linux·服务器·网络
jwn99911 小时前
Laravel11.x新特性全解析
android·开发语言·php·laravel
网络研究员11 小时前
Facebook无法向他人发送消息?2026原因解析与解决思路
运维·服务器
我就是马云飞12 小时前
停更5年后,我为什么重新开始写技术内容了
android·前端·程序员