无公网ip,无服务器实现内网穿透

背景

家里有台服务器,想着能远程 ssh上去改改 bug 啥的,发现无公网 ip

网上搜了一堆方案,发现都挺麻烦,有的确实不需要公网 ip,但是他却要有一台有公网 ip的服务器…

实现.

本次实现要感谢这篇文章 使用Cloudfalre Tunnels实现内网穿透,同时突破80/443限制

他这篇主要讲的是80,443端口,那么同理 22 应该也没有问题

操作

  • 你需要注册一个域名,买一个最便宜的就行,一年 10rmb 的那种.
  • 打开Cloudfalre控制台,依次点击Access -> Tunnels(这边记得选 0 元的,需要你绑卡才能下一步,直接关掉,重新打开控制台发现不绑卡也开通了.)
  • 然后就是创建隧道了,可以参考官方文档 Set up a tunnel through the dashboard

Subdomain选择你想要的前缀(随便写都可以)
domain选择你注册的域名
type记得选择 ssh
URL 选择localhost:22(如果你把自己 sshd端口改了,那这边写你改以后的.)

操作流程我复制一下

  • 下载 cloudflared 在客户端
  • 修改SSH configuration file:
    vim ~/.ssh/config
  • 新增下面的内容,把下面的ssh.example.com 替换成你的,比如我就应该替换成ssh.igaojin.me
    还需要注意的是 cloudflared的位置.记得where cloudflared看一下,如果不一致就替换成你的

    1
    2
    Host ssh.example.com
    ProxyCommand /usr/local/bin/cloudflared access ssh --hostname %h
  • ssh@ssh.example.com (最后可以直接 ssh 登录了.)

推荐文章