type
Post
status
Published
date
Dec 9, 2019
slug
Samba-Share
summary
因为(白嫖)学习目的,从学校工作室(白嫖)借用了块硬盘,供工作室的小伙伴用,同时也可以在上面放一些自己的东西,但总是通过网页进行管理那总是不方便的啊,所以就想着使用 Samba 进行文件共享。
tags
开发
工具
category
技术分享
icon
password
前言
因为(白嫖)学习目的,从学校工作室(白嫖)借用了块硬盘,供工作室的小伙伴用,同时也可以在上面放一些自己的东西,但总是通过网页进行管理那总是不方便的啊,所以就想着使用 Samba 进行文件共享。
安装
众所周知,万物皆可 Docker ,这次使用的是 https://github.com/dperson/samba 这个项目,那上面也有 DockerFile 了,所以也不重复造轮子了。
docker-compose.yml
众所周知,有 Docker 的地方就有 Docker Compose ,所以这里还是用 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 中,此电脑右键,映射网络驱动器,在文件夹中填入 \\<Server Address>\<share_name>
例如上面我的 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 连回宿舍再连接服务器,这显然不符合自己之前的目的,于是就只能想要另一种方法了。