众所周知,目前很难通过运营商获取独立的IP地址(IPv4)。如果想在外面访问家庭局域网内的设备,就需要采用内网穿透方式。内网穿透也有多种技术方案。本文记录的是IPv6方式,实现手机在外SSH登录家中电视盒子的过程。电视盒子上运行着Armbian系统
实施过程主要参考下面的博客园文章。
IPv6实现内网穿透,极低成本保姆级教程 https://www.cnblogs.com/MrSoap/p/17952956
获取IPv6地址
使用电脑访问下面的网站进行测试IPv6连接测试。如果测试通过,那么恭喜,已经拥有公网IPv6地址。可以直接进行下一步。
https://www.test-ipv6.com/index.html.zh_CN
若测试不通过,最好按照上面提到的博客园文章进行光猫、路由器及电脑相关设置,直至能成功获取公网IPv6地址。
验证IPv6地址联通性
关闭电脑的防火墙。
使用下面的网站对电脑的IPv6地址进行Ping测试。
https://ipw.cn/ipv6ping/
如果出现PingFailed,则说明光猫或路由器的IPv6防火墙是开启状态,需要关闭IPv6防火墙。
本人使用的是光猫桥接+路由器拨号模式,因此可以确定是路由器的IPv6防火墙开启。目前使用的TP-LINK路由器无法在管理页面中关闭IPv6防火墙,需要使用无防火墙的固件,下载链接如下:
XDR3010易展版1.0.19无防火墙固件 https://www.right.com.cn/forum/thread-8274257-1-1.html
升级好路由器后,再次进行Ping测试,通过。
至此,电脑已经成功暴露在公网上,可以通过IPv6地址访问电脑。此时,应重新开启电脑防火墙,然后测试电视盒子是否也同样暴露在公网。
验证电视盒子IPv6联通性
使用ifconfig命令查看电视盒子IP地址。如果eth0网卡下的信息无inet6或者inet6是fe80开头的自动协商地址,则说明电视盒子未获取到公网IPv6地址。
这时需要通过armbian-config命令检查Network中的IPv6功能是否开启,然后重启电视盒子。重启后,电视盒子就能正常获取到2409开头的公网IPv6地址,如下图所示。
对电视盒子的公网IPv6地址进行Ping测试。若测试通过,则可以通过手机的4G网络通过SSH登录电视盒子了。手机上的SSH客户端推荐使用Termius,Android和iOS均可安装,其免费功能即可满足使用需求。Hostname为电视盒子IPv6地址
至此,电视盒子已成功暴露在公网上,相当于有了一台私人的服务器。可以搭建个人网站和其它服务。后续再进行相关介绍。