木叶下

  • 编程算法
  • 深度学习
  • 微小工作
  • 善用软件
  • 杂记
  • 诗人远方
南国羽说
文字记录生活
  1. 首页
  2. 善用软件
  3. 正文

Cloudflare tunnel实现内网穿透SSH,SMB,和web:老旧笔记本第二春

2023年6月17日 12542点热度 0人点赞 0条评论

前言

Contents hide
1 前言
2 使用 Cloudflare Tunnel 内网穿透SSH
2.1 创建Tunnel
2.2 使用Tunnel从外网访问
2.3 配置 Zero Trust Access 保护
3 使用 Cloudflare Tunnel 内网穿透SMB
4 使用 Cloudflare Tunnel 内网穿透Web

从windows笔记本切换到macbook后,之前那个让我奔溃的Dell笔记本就闲置起来。一种Dell Inspiron 7590 键盘若干键位故障临时修复方案

最近琢磨着如何让这个笔记本恢复第二春。我安装了ubuntu 18.04系统,当作笔记本服务器,在局域网内跑一些简单的服务。如:

1)Samba docker 容器。我将几个闲置的移动硬盘通过USB连接至这个笔记本服务器,然后创建Samba容器, 使得这个移动硬盘在局域网内支持SMB共享。这样我就有了一个简易的NAS。又省钱了! ✌️

2)SSH 这个笔记本至少还有一张RTX 1660显卡,可以帮我在本地跑一些机器学习训练测试。

于是,我家的Apple TV可以通过局域网的SMB访问这个笔记本服务器挂载的移动硬盘里的影片。当学校的集群被占满时,我也可以在家用Macbook连接到笔记本服务器,临时跑一些模型。

但是,我不能从外网访问这些服务,我也不相信我可以安全地配置/使用ngrok,frp,和花生壳类工具。我需要安全、稳定、可控的内网穿透工具。

使用 Cloudflare Tunnel 内网穿透SSH

我将介绍我的家庭网络和配置,希望对读者有帮助。
假如你和我一样,在家有一台设备A(服务器、笔记本、NAS),它的ip是192.168.1.101,你已经自行配置了SSH Key。 你现在可以在家里其他的电脑上使用如下的SSH 配置访问同一个局域网下你的设备A。

Host DellUbuntu
        HostName 192.168.1.101
        TCPKeepAlive yes
        ServerAliveInterval 15
        User tom
        IdentityFile ~/.ssh/dell_ubuntu
        Port 22

现在我们将搭建Cloudflare Tunnel,使得我们可以从外网访问A。

创建Tunnel

然后,你可以按照Cloudflare的文档配置:Connect to SSH server with cloudflared access

选择系统版本,在家庭服务器上安装cloudflared

设置需要Tunnel转发的服务协议与端口

其中example.com 应该是你在Cloudflare解析的一个域名。

使用Tunnel从外网访问

通过以上配置,我们期望通过访问home-ubuntu.example.com来访问家里局域网内192.168.1.101的服务器。

如官方文档Connect as a user所示,请首先在你的电脑上安装cloudflared。

然后配置SSH, 比如 ~/.ssh/config

Host home-ubuntu.example.com
    HostName home-ubuntu.example.com
    TCPKeepAlive yes
    User dong
    ServerAliveInterval 15
    IdentityFile ~/.ssh/dell_ubuntu
    Port 22
    ProxyCommand /opt/homebrew/bin/cloudflared access ssh --hostname %h

注意,这里主要的区别是多了ProxyCommand /opt/homebrew/bin/cloudflared access ssh --hostname %h, 以及Hostname 由192.168.1.101变成了你在Cloudflare设置的home-ubuntu.example.com。

配置 Zero Trust Access 保护

你可以在Cloudflare Zero Trust创建一个self-hosted application 用来保护对home-ubuntu.example.com的访问。

使用 Cloudflare Tunnel 内网穿透SMB

请参考Connect to SMB server with cloudflared access,几乎没有什么区别。

为SMB创建Cloudflare Tunnel后,在客户端安装Cloudflared, 将目标Tunnel转发到本地。比如,

cloudflared access tcp --hostname smb.example.com --url localhost:8445

使用 Cloudflare Tunnel 内网穿透Web

你当然也可以使用Cloudflare Tunnel 内网穿透Web服务,只需要在创建Tunnel时设置转发http/https协议。

标签: Cloudflare SMB SSH 内网穿透
最后更新:2023年6月17日

Dong Wang

I am a PhD student of TU Graz in Austria. My research interests include Embedded/Edge AI, efficient machine learning, model sparsity, deep learning, computer vision, and IoT. I would like to understand the foundational problems in deep learning.

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理。

文章目录
  • 前言
  • 使用 Cloudflare Tunnel 内网穿透SSH
    • 创建Tunnel
    • 使用Tunnel从外网访问
    • 配置 Zero Trust Access 保护
  • 使用 Cloudflare Tunnel 内网穿透SMB
  • 使用 Cloudflare Tunnel 内网穿透Web

COPYRIGHT © 2013-2024 nanguoyu.com. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

陕ICP备14007751号-1