前言:我一个java web工程师,怎么写的第一篇技术分享是关于路由器和网络的呢,于是我只好念了两首诗:苟。。。
场景
- 一般家庭设备都是通过路由器中转连上互联网的,而且运营商给家庭宽带分配的IP地址也是动态的、随时可能变动的。所以当程序员们离开家之后,是很难直接和家里的设备进行交互的。但是通过TPLINK路由器提供的端口转发和DDNS功能,我们可以很轻松的做到随时随地连到家里的设备,也就可以做到我们标题所说的以ssh到家里的电脑。
所需环境
- 型号为TL-WR890N的路由器一只
- 装有ubuntu系统的笔记本一台
- 开通了宽带的房子一间
步骤目录
- (根据实际情况可选)把家里的光猫改成桥接模式
- (根据实际情况可选)开通你自己需要连接设备的ssh功能
- 设置路由器的端口转发功能到需要连接设备的ssh端口上
- 开通路由器的DDNS功能
1、把家里的光猫改成桥接模式
- 如果家里的宽带是拨号上网或者网线直连的,那就不需要看这一步,直接通过路由器拨号上网或者直接连接就可以。
- 再解释一下为什么要做这一步,因为我们要确保路由器是直接连接到外网环境的。为什么要路由器连接到外网呢?很简单,如果路由器拿到的是被光猫、或者别的什么电信的上网设备分配到的内网IP,那路由器就只能转发所有访问这个内网IP的请求,那么我们在外网还是不能访问到家里的设备。如何确认路由器已经直接连到外网了呢?以我的TL-WR890N为例,在如图位置,如果看到的IP是一个外网IP,说明路由器是直接连到外网的。
- 同时,外网IP这里还有一个坑,有些运营商分配给你的IP不是真正的外网ip,而是运营商自己内部的大局域网ip。如果是这样的情况,那么你还是不能通过这个ip访问到自己的设备。那么如何解决这个情况呢?直接拨打你家宽带的供应商电话,要求他给你分配的ip是外网ip。注意不是问他要一个固定ip,固定ip是很贵的,而且我们有了DDNS功能也不需要外网固定ip,只是要求运营商在分配IP的时候,分配给你的是外网ip而不是大内网ip。
- 如果家里宽带用的是光猫,因为路由器没法替代光猫的读取光信号的功能,所以不能直接通过路由器拨号上网,那么就需要把光猫改成桥接模式,然后路由器再连接到光猫上进行拨号上网。至于如何把光猫改成桥接模式,因为涉及到光猫的破解篇幅较长,并且不是本文的重点,在这里不再赘述,各位可以自行百度自家的光猫型号加破解二字。我这里也提供一篇教程关于如何破解光猫:破解教程
2、开通你自己需要连接设备的ssh功能
- 这一步应该也很简单,自行搜索家里设备的操作系统如何开放ssh功能就好
- 开通好你的设备的ssh功能之后,最好再把你设备的MAC地址与路由器分配的ip进行绑定,方便之后的端口转发
3、设置路由器的端口转发功能到需要链接设备的ssh端口上
- 先放相关官方文档 1、如何映射服务器到外网 2、设置了虚拟服务器,外网无法访问服务器怎么办
- 还是以我的TL-WR890N为例子,进入路由器管理网页,点击应用管理中的虚拟服务器
- 然后点击添加,外部端口填你希望从外网通过哪个端口访问,内部端口是你需要访问设备的ssh的端口,默认是22,ip地址是你需要访问设备在内网的IP地址,协议选ALL就好,常用服务器不用选,然后点击保存就好
4、开通路由器的DDNS功能
- 先放相关官方文档TPDDNS的使用方法介绍
- 点击进入路由器的DDNS应用
- 进去之后,点击服务提供者的下拉框,选择花生壳,因为TPlink自身提供的DDNS服务有时候会解析到错误的IP,我也不清楚这是为什么。。。
- 然后有花生壳账号的就用自己账号,没有的就注册一个,连接成功后,域名信息那里会显示你的域名
5、大功告成
之后就可以在外网环境,通过{花生壳返回的域名}+{端口转发那里配置的外部端口}ssh到你家里的设备啦。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。