文章目录
- 简介
- [1. 安装termux](#1. 安装termux)
- [2. 安装Samba](#2. 安装Samba)
- [3. 配置Samba](#3. 配置Samba)
- [4. 启动Samba](#4. 启动Samba)
- [5. Windows访问Smaba](#5. Windows访问Smaba)
- ~~[Rclone](https://rclone.org/downloads/)~~
- 参考文献
简介
使用安卓手机搭建 Samba 服务器提供给电视或车机看视频
Samba 是一款 Linux 上的文件和打印机共享软件,它通过实现 SMB/CIFS 协议,在不同的操作系统之间架起了桥梁,让它们在同一个网络中共享资源。
1. 安装termux
Termux 是 Android 上的 Linux 环境,它可以在不进行 Root 的情况下,提供 Linux 命令行的体验。可以理解为一个装在手机里的迷你 Linux 服务器。它不是一个模拟器,而是一个真正的运行时环境。
安装方式:
- F-Droid(官方推荐源)
- Google Play
- GitHub Releases(本人用这种)
| 后缀 | 适用设备 |
|---|---|
| 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
本人经过以下尝试均不可行:
解压后,以管理员身份运行 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
密码:留空
启用不安全的来宾登录
- Win + R →
gpedit.msc - 计算机配置 → 管理模板 → 网络 → Lanman 工作站
- 启用不安全的来宾登录 → 已启用 → 确定
gpupdate /force或重启- 再连一次就成功了

Rclone
本人尝试失败,一直连不上,理论上是可行的
解压后进到对应目录
bash
# 交互配置
rclone config
n:New remotename:起一个名字,如:phoneStorage:smbhost:网关 IPuser:guestport:4445password:回车默认空domain:回车默认空spn:回车默认空use_keyberos:回车默认空Edit advanced config:回车默认空q:退出
bash
# 测是否连上
rclone ls phone:internal