本文旨在快速安装和使用, 并没有考虑任何安全问题. 下面是详细的步骤
Server 端
- 安装 ssh
$ sudo apt-get install openssh-server
- 开启 ssh server
$ sudo /etc/init.d/ssh start
[ ok ] Starting ssh (via systemctl): ssh.service.
- 注册 ngrok, 并完成官网的 Setup & Installation 前 3 步
- 在 ngrok 根目录打开 Terminal 启动 TCP 服务
$ ./ngrok tcp 22
ngrok by @inconshreveable (Ctrl+C to quit)
Session Status online
Account Username (Plan: Free)
Version 2.2.8
Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding tcp://0.tcp.ngrok.io:11711 -> localhost:22
Connections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
Client 端 (Ubuntu)
- 安装 sshfs
$ sudo apt-get install sshfs
- 创建一个挂载点目录
$ mkdir /home/username/remote_folder
- 挂载一个叫远程的一个 /home/tecmint 目录
$ sudo sshfs -p 11711 -o allow_other username@0.tcp.ngrok.io:/home/tecmint/ /home/username/remote_folder
。这里的 -p 参数是 Server 端 Forwarding 里的 port (tcp://0.tcp.ngrok.io:11711 -> localhost:22
)
Client 端 (Mac)
- 下载 osxfuse 虚拟文件系统
- 安装 sshfs
$ brew install sshfs
- 挂载
$ sshfs -p 11711 -o allow_other username@0.tcp.ngrok.io:/home/tecmint/ /home/username/remote_folder
. 注意, 可以不通过sudo
来挂载.
相关问题
当我们的 mac 休眠或重启, 回来时发现挂载的失败了, 进入目录会提示
$ls local_dir
ls: local_dir: Input/output error
如果我们想取消挂载, 又会提示
$umount local_dir
umount: local_dir: not currently mounted
此时需要关闭进程 pkill -9 sshfs
之后重新挂载响应的目录即可
备注
听说 Frp 可以替代 ngrok ,且配置更方便。但我没时间弄了,能用就行了。还要干活呢。有兴趣的可以搞一搞,欢迎交流。