大家好,我是 evnydd0sf。今天我们来尝试 iOS 通过内外网访问 Mac 任意文件及文件夹。

我在很前一段时间了解到了一款手机 App 名为“Remotely”,该软件主旨是通过外网可访问Mac电脑主文件,但是非常昂贵,完整版需要¥198/年。


然而我并不想花这个钱,网上也没有一个比较成熟的解决方案,那么咱们开始:

首先你需要拥有:

  • Mac 电脑或支持SMB传输协议的设备(笔者用的是 MacBook Pro 2014)
  • 任何支持SMB传输协议的设备或App(笔者用的是 iPhone 7 + FileExplorer Pro)


*有免费版可以使用

(以上可以做到内网访问也就是在同一 Wi-Fi 环境下访问)

如果你还需要在任意网络环境下访问你的文件那么你还需要:

  • 可设置端口转发的路由器(笔者用的是小米路由器 R1)

值得注意的是:如果你将你设备如 Mac 根目录下所有文件都共享,那么也就是代表 macOS 内所有文件都可在内外网访问!

一、建立路由器内网文件共享


1、在 Mac电脑 系统偏好设置 - 共享 - 文件共享 选中并添加你要共享的文件或文件夹并设置可访问的账户以及账户权限(在文件选项设置中 点击 选项 按钮 使用SMB来共享文件或文件夹)(记得把小锁子点开)

系统偏好设置 - 共享 - 文件共享

添加需要共享的文件或文件夹

添加可以访问的用户
打开 SMB 选项

建议使用:【或者你也可以右键想要分享的文件或文件夹显示简介 - 通用 选项中 勾选 共享的文件夹 并在下方设置可访问的账户及账户权限(如果你想设置该文件夹下所有内容包括子文件夹可访问,在 显示简介 中 下方 齿轮按钮 点击 应用到包含的项目...... )】(记得把小锁子点开)

右键选择需要共享的文件或文件夹

添加共享权限与权限用户

应用到包含项目


2、在这里笔者使用的是 iOS App FileExplorer Pro 进行连接。你也可以使用任何支持 SMB 的 App。

打开 App后点击 加号 - 选择 macOS

当然,也可以选择其他的系统

在连接选项中:

  • 主机名称或IP地址:填写你当前 Mac IP 地址(macOS 用户:Option 键 + 点击右上角 Wi-Fi 图标 在已连接的 Wi-Fi 名称下有一项 IP 地址)(一般来说路由器会自动分配 IP 地址,所以为了以后连接方便,笔者建议你在路由器中进行 IP 绑定,这样 IP 就会一直会分配于你的设备)
  • 端口:一般默认445
  • 用户名与密码:你之前设置的可访问用户名及密码
  • 如果出现你的文件夹,那么说明内网状态下文件共享成功。

bingo

二、外网映射及端口转发



我们要做的是将路由器内网映射到外网(这里笔者使用的是小米路由器R1)

1、首先我们需要知道自己的外网是否为公网IP

  • 到路由器后台查看外网IP
  • 到 百度 搜索 IP,看反馈的 IP 是一致,如果一致,那么恭喜,你可以继续操作。
  • 我们到 花生壳 注册一个账户,之后他会自动给你一个免费域名。

接着我们到路由器后台 高级设置 - DDNS 配置动态域名解析

  • 服务商:选择花生壳
  • 用户名:填写注册账号的名称
  • 密码:填写注册账号的密码
  • 主机名称填写:花生壳赠送的域名地址
  • 检查状态与强制更新基于你 IP 自动更换频率,一般为5分钟检查状态,一小时强制更新。
按照这样的设置

2、接下来我们来查看路由器的端口开放并设置端口转发

到 站长工具-端口扫描 输入你的域名或外网 IP,点击 扫描

(一般来说,路由器都会开放1080端口,如果所有端口都关闭,那么需要SSH路由器)

之后,到路由器后台 高级设置——端口转发 中添加

  • 模式:TCP或UDP
  • IP地址:你设备的内网IP
  • 外部端口:刚刚扫描的开放的二维码
  • 内部端口:445
  • 保存并生效
按照这样的设置

3、我们到之前的App中进行设置

在已连接成功的设置中修改

  • 主机名称或IP地址:改为注册花生壳时所赠送的域名地址
  • 端口:(开放的端口)
按照这样的设置

这样就设置好了,接下来切换到外网试验一下即可

bingo

三、安全方面

安全方面首先需要注意的是内网环境下比较安全,所以当你的路由器不设置端口转发,你的文件会比较安全;当设置了端口转发建议设置强密码并定期更换密码。


(2017.11.17)目前使用六个月左右,除了因为联通宽带上行速度只有约1.25MB/s(50兆下行/十兆上行),在外网环境下观看视频比较卡顿之外,其余没有任何问题。

Enjoy


PS:

如需更详细的操作或操作时的截图,请在下方留言,我会第一时间回复并修改本篇内容。

如有任何问题或误导,请在下方留言。