0%

校园网文件共享方案(Samba)

前言

因为(白嫖)学习目的,从学校工作室(白嫖)借用了块硬盘,供工作室的小伙伴用,同时也可以在上面放一些自己的东西,但总是通过网页进行管理那总是不方便的啊,所以就想着使用 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

连接

https://static.yecdn.com/imguoguo/images/Samba/Explorer.png

Windows 中,此电脑右键,映射网络驱动器,在文件夹中填入 \<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 连回宿舍再连接服务器,这显然不符合自己之前的目的,于是就只能想要另一种方法了。