You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

无需配置家用路由器,实现外网访问动态IP树莓派的可行方案咨询

无需配置家用路由器,实现外网访问动态IP树莓派的可行方案咨询

兄弟,太懂你这种动态IP又碰不了路由器的窘境了——靠收邮件拿IP确实有点原始😂,给你梳理几个靠谱的落地方案,都是实际用过的:

方案一:用公网中转服务器建立反向隧道

这就是你第一个思路的细化版,完全可行,甚至有两种玩法:

  • 现成内网穿透服务:不少服务商专门做这个,原理就是让树莓派主动连接到他们的公网服务器,你在外网通过服务器提供的地址就能转接到树莓派的SSH和Web服务。免费版一般够用个人需求,就是可能有流量限制或者临时域名;付费版更稳定,能绑定自己的域名。
  • 自己搭云服务器中转:如果有个便宜的云服务器(比如学生机那种),灵活性拉满。让树莓派开机自动建立反向SSH隧道,先装autossh保证隧道不中断,再用命令:
    autossh -M 20000 -R 2222:localhost:22 your_username@your_server_ip
    
    解释下:-M指定一个监控端口用来检测隧道状态,-R把服务器的2222端口映射到树莓派的22端口(SSH)。之后你在外网只要连服务器的2222端口,就等于直接连树莓派的SSH了;Web服务同理,把80/443端口映射过去就行。

方案二:用个人设备做「控制器」(你的第二个思路)

这个是可行的,但得解决一个核心问题:你的控制器设备(电脑/手机)得让树莓派能找到它。

  • 如果你能给控制器设备弄个稳定的公网IP,或者用NoIP这类动态域名绑定它,那树莓派可以定时尝试和它建立VPN连接(比如用WireGuard,轻量又稳定)。但要注意,如果你的控制器设备也在自家内网,那NoIP只是解析了域名,路由器没端口映射的话树莓派还是连不上——这时候就得用「打洞」工具了。
  • 推荐用ZeroTier这类虚拟局域网工具,它不需要任何路由器配置,树莓派和你的控制器设备都装客户端,加入同一个虚拟网络组,不管两边是不是动态IP、是不是内网,都能像在同一个局域网里一样互相访问,直接SSH连虚拟IP就行,Web服务也能直接开。

方案三:更省心的开源内网穿透工具

如果不想折腾服务器或者VPN,直接用现成的开源工具:

  • Frp:完全开源免费,分客户端(树莓派装)和服务端(可以自己搭在云服务器,或者找朋友的服务器共享),配置好要映射的端口(SSH的22、Web的80等),就能通过服务端的IP+端口访问树莓派,稳定性很高。
  • Ngrok:上手最简单,树莓派装客户端后一条命令就能把本地端口映射到公网,比如ngrok http 80就能把Web服务暴露出去,ngrok tcp 22就能映射SSH。免费版唯一的小缺点是每次重启域名会变,付费版可以固定域名。

备注:内容来源于stack exchange,提问作者Merc

火山引擎 最新活动