前言
因为(白嫖)学习目的,从学校工作室(白嫖)借用了块硬盘,供工作室的小伙伴用,同时也可以在上面放一些自己的东西,但总是通过网页进行管理那总是不方便的啊,所以就想着使用 Samba 进行文件共享。
安装
众所周知,万物皆可 Docker ,这次使用的是 https://github.com/dperson/samba 这个项目,那上面也有 DockerFile 了,所以也不重复造轮子了。
docker-compose.yml
众所周知,有 Docker 的地方就有 Docker Compose ,所以这里还是用 Docker Compose,这里人家已经给写好了,所以就直接参考此处。
参考资料: https://github.com/dperson/samba/wiki/Using-Docker-Compose
version: '3.4'
services:
samba:
image: dperson/samba
environment:
TZ: 'EST5EDT'
networks:
- default
ports:
- "137:137/udp"
- "138:138/udp"
- "139:139/tcp"
- "445:445/tcp"
read_only: true
tmpfs:
- /tmp
restart: unless-stopped
stdin_open: true
tty: true
volumes:
- ./data:/mnt:z
command: '-s "Guoguo;/mnt;yes;no;no;guoguo" -u "guoguo;*******"'
# 这里注意一下 第一个参数是分享名称,等会要用到,后面的 guoguo 就是用户名
# -s 其他的参数分别如下,其他的都可以在 GitHub Wiki 上找到
# -u 最简用法就是前面用户名,后面密码
# <share_name>;
# <path_to_share>;
# [browsable] default:'yes' or 'no';
# [read_only] default:'yes' or 'no';
# [guest]: default: 'yes' or 'no';
# [users]: default: 'all' or list of allowed users;
# [admins] default: 'none' or list of admin users;
# [writelist] default: 'none' or list of users that can write to read-only share;
# [comment] default: 'none' or description of share
networks:
default:
这里需要注意一下,他这里 wiki 用的是环境变量,但他也说明了环境变量只能使用单个用户,多个用户是需要使用 command ,具体格式见上述 wiki ,当时我还盯着半天 Incorrect Example 想着为啥连不上(小声
启动
执行
sudo docker-compose up -d
连接
Windows 中,此电脑右键,映射网络驱动器,在文件夹中填入 \
例如上面我的 share_name 写的是 Guoguo,IP 为 192.168.6.233 那此处就写 \192.168.6.233\Guoguo,注意勾选使用其他凭据连接,完成,输入上面填入的账号密码,连接成功。再在其中新建文件夹,linux 上 ls,成功新建。
share_name 这里卡了我好久,次次都说无法找到网络路径次次排查,最后才发现得这么写(摔
端口转发
在路由器上,对 137、138 端口进行 UDP 转发,445、139端口进行 TCP 转发,使用校园内网 IP 进行访问测试
后记
本来到这里就结束了的,没想到捣鼓完了以后,发现校园网把 445 屏蔽了,想要连接到服务器就只能走 VPN 连回宿舍再连接服务器,这显然不符合自己之前的目的,于是就只能想要另一种方法了。