• OpenWRT通过内网穿透实现安全可靠的ssh远程连接


    简单几步实现openWRT结合cpolar内网穿透工具实现远程ssh连接

    1.安装cpolar内网穿透

    cpolar是一个非常棒的跨平台内网穿透工具,可以通过安全隧道将NAT或防火墙后面的本地服务器,暴露给公共互联网。

    通过ssh连接操作openwrt,下载公钥:

    wget -O cpolar-public.key http://openwrt.cpolar.com/releases/public.key
    
    • 1

    下载完成后添加公钥

    opkg-key add cpolar-public.key
    
    • 1

    添加cpolar的opkg仓库源

    echo "src/gz cpolar_packages http://openwrt.cpolar.com/releases/packages/$(. /etc/openwrt_release ; echo $DISTRIB_ARCH)"  >>  /etc/opkg/customfeeds.conf
    
    • 1

    更新仓库

    opkg update
    
    • 1

    开始安装cpolar内网穿透,分别执行下面三个安装命令安装三个包:

    opkg install cpolar
    
    • 1
    opkg install luci-app-cpolar
    
    • 1
    opkg install luci-i18n-cpolar-zh-cn
    
    • 1

    安装完成后,打开openwrt Web管理界⾯,我们可以看到有个service,下面就可以看到cpolar内网穿透

    image-20230426172304148

    点击进去后即可看到cpolar界面

    image-20230426173631379

    登录cpolar官网,如果没有注册账号,可以先注册账号,然后点击左侧的验证,查看自己的认证token,

    https://www.cpolar.com

    之后将官网查看的token复制到openwrt cpolar服务界面的Auth Token里,设置后点击保存

    image-20230426174954224

    保存成功后点击界面里的 打开Web-UI界面 ,即可看到cpolar web ui 界面

    使用我们在cpolar官网注册的邮箱账号登陆,登陆后即可对隧道进行管理,安装就完成啦

    image-20230426175513987

    2.配置SSH远程访问隧道

    浏览器打开cpolar web UI管理界面,我们点击左侧仪表盘的隧道管理——创建隧道,由于ssh连接默认的是22端口,因此我们要来创建一条tcp隧道,指向22端口:

    • 隧道名称:可自定义,注意不要重复
    • 协议:tcp
    • 本地地址:22 (ssh 默认端口)
    • 域名类型:选择随机域名(免费)
    • 地区:选择China VIP

    点击创建

    image-20230516165635882

    创建好后打开在线隧道列表,查看生成的随机公网tcp地址,复制公网地址,注意无需复制tcp://

    3.公网远程连接

    打开连接工具,输入生成的公网地址,tcp://不需要输入,端口号是cpolar公网地址后面的公网端口号,点击连接

    image-20230516182615307

    然后出现输入用户名和密码,即可登陆成功

    image-20230516182734737

    同样 使用命令行也是连接成功

    ssh -p 公网端口号 username@公网地址
    
    • 1

    这里需要注意,由于我们的本地22端口到了公网被映射到了12807端口(您的公网端口可能不一样),所以,ssh命令需要加-p参数,后面加公网端口号

    image-20230516182947702

    4.固定远程连接地址

    上面使用cpolar建立的临时TCP数据隧道,成功通过ssh连接上了openWRT系统。不过,此时的TCP数据隧道还是随机临时TCP隧道,每隔24小时端口号就会发生变化。

    如果想要让不同设备间的数据隧道长期稳定存在,我们还需要进一步的设置(由于固定TCP隧道会长期占用cpolar服务器资源,因此不得不将此服务列入VIP项目中)。

    要建立一条稳定的TCP数据隧道,我们首先要登录cpolar官网,进入仪表台的预留界面

    在预留界面中,找到保留的TCP地址项目。在这个项目下,我们填入一些必要信息,如识别数据隧道的隧道名称、隧道使用区域等。

    image-20230516183200729

    在这些信息填入后,点击右侧的保留按钮,将cpolar官网后台的隧道固定下来,此时cpolar会生成一个隧道tcp端口

    image-20230516183300937

    接着我们回到浏览器cpolar界面,打开隧道列表,找到之前创建的随机临时TCP隧道,进入编辑页面,

    image-20230516183356611

    将我们在cpolar官网获得的隧道端口粘贴进预留的TCP地址栏中,然后点击下方的更新按钮.

    image-20230516183430350

    然后再次查看在线隧道列表,发现ssh的隧道对应的公网地址变成了我们官网保留的固定地址

    image-20230516183511587

    打开连接工具,创建一个连接,输入固定的公网地址,tcp://不需要输入,端口号是公网地址后面的端口号,然后点击连接

    image-20230516183611050

    然后输入用户名和密码,我们可以看到连接成功

    image-20230516183738108

    同样,我们使用命令行模式连接也是成功的,现在这个公网地址是固定的了,不会再随机变化,只要保持隧道可以正常在线,我们在公网环境下就可以通过这个公网地址来ssh远程内网的openwrt。

    转载自cpolar极点云文章:openWRT如何公网ssh远程连接【内网穿透】 - cpolar 极点云

  • 相关阅读:
    Java阻塞队列中的异类,SynchronousQueue底层实现原理剖析
    摘自知乎--人类现在有没有可能是宇宙中最高等的文明?
    力扣第24题 两两交换链表中的节点 c++精讲 。
    FFmpeg工作流程及视频文件分析
    通信设备为什么需要接地阻?
    element plus tree组件 check-change 和 check属性的区别
    一口气说出 Synchronized 同步方法的八种使用场景
    【项目实战】自备相机+IMU跑通Vins-Mono记录
    Three.js 实现简单的PCD加载器(可从本地读取pcd文件)【附完整代码】
    走访喜开路 | 共建全民大健康元宇宙服务体系预立项
  • 原文地址:https://blog.csdn.net/m0_75215937/article/details/133901387