Samba(Windows/Ubuntu)

以下包含ubuntu server+windows client, 和 windows server + ubuntu client, 以及Android client

你需要考虑的一个事情是,你是需要两个设备都有同样的文件(起到一定的备份+使用的效果过,请使用syncthing),还是只需要一边有,另一边可以访问(本文)

TLDR;

Ubuntu server+Windows client

参考

1
2
3
4
5
sudo apt update
sudo apt install samba
whereis samba # 查看安装是否成功
mkdir <folder> # 创建一个文件夹准备用来共享 例如 mkdir -p /data/share/sambashare/
sudo vim /etc/samba/smb.conf # 编辑配置

增加 (方括号里的是分享的文件夹名字,之后其它设备访问会用到)

1
2
3
4
5
[sambashare]
comment = Samba on Ubuntu
path = <folder> # 和上面一致
read only = no
browsable = yes
1
2
3
4
5
6
7
8
sudo service smbd restart # 重启服务
sudo ufw allow samba # 有iptables的自己找对应办法,我用的ufw
# samba不用使用系统的account password,需要专门设置
# 用户需要存在, 下面是新增一个专门用户的方法, <user>全部替换成对应的
sudo useradd <user>
sudo passwd <user>

sudo smbpasswd -a <user>

ubuntu 本地测试 smb://127.0.0.1/<conf里的[]里的名字,这里是sambashare>,

windows上 文件管理器 \\ip地址\<conf里的[]里的名字,这里是sambashare>, 在windows可以映射到此电脑 的 网络位置部分,右键添加一个网络位置

Windows server+ubuntu client

server

先专门创建一个 用于共享的用户: 计算机管理-系统工具-本地用户和组-用户-(右键)-新用户,

这个用户专门用于访问samba,在登录界面隐藏??how to???

属性-共享(tab)-高级共享(button)-共享此文件夹(checkbox)-权限(button)-添加(button)-高级(button)-立即查找(button)-选择新创建的那个用户-确定-确定-完全控制(checkbox)-确定(button)-确定(button)

属性-安全(tab)-编辑(button)-添加(button)-高级(button)-立即查找(button)-选择新创建的那个用户-确定-确定-完全控制(checkbox)-确定(button)-确定(button)


client

1
2
3
4
5
6
7
8
sudo apt install cifs-utils # 支持windows的smb文件系统, cifs=smb,Samba 是 SMB/CIFS(Server Message Block / Common Internet File System)
mkdir -p /data/share/windows/asus_samba # 下面和这个路径一致
sudo mount -t cifs -o rw,user=<windows里的samba用户名>,uid=<linux用户名> //192.168.101.8/<windows计算机管理-共享-看到的共享名> /data/share/windows/asus_samba
# 例子 sudo mount -t cifs -o rw,user=sambashare,uid=cromarmot //192.168.101.8/asus_samba /data/share/windows/asus_samba/
# rw是读写权限, uid是你的用户否则会是root

# 取消mount
sudo umount /data/share/windows/asus_samba

Android client

https://play.google.com/store/apps/details?id=com.alphainventor.filemanager

其它辅助

1
2
3
4
5
6
7
8
# 局域网连通性排查, 端口似乎是445
arping 192.168.101.xxx
ping 192.168.101.xxx

sudo nmap -Pn 192.168.101.xxx
sudo arp -a

# windows 清除arp命令 arp -d * (需要管理员权限)

TODO

samba/ftp/sftp/webdav 的对比

按理说有自动发现功能,只需要ip+用户名+密码,剩下文件夹可以自动发现,TODO看看怎么配