【部署】外网访问家庭计算机( 内网穿透)

场景

很多时候需要通过远程访问来进行跨网络跨机器。大部分的场景是访问公司机器。这种一般比较容易实现,因为公司都是固定ip,或者有vpn服务等等。实在不行也可以有teamviewer,anydesk,向日葵等工具来实现远程操控。而其他小部分需求则是访问家庭网络的机器。

参考方案

常见的解决方案

诸如teamviewer,anydesk,向日葵等。这些方式都有相同的缺点,就是有点慢,毕竟需要通过第三方服务器中转。传输带宽也被限制住了。


端口映射

这是内网穿透的核心,重中之重。以下任何解决方案均离不开端口映射的设置。需要在路由器中配置端口映射信息。即外部端口与内部ip与端口组合的映射。如22222 -> 192.168.1.2:3389,这里的3389是远程桌面服务的端口,192.168.1.2是内网目标机器的ip,务必设置成固定ip,22222是外网端口。使用时,外部通过访问IP:22222或者域名:22222即可映射至192.168.1.2:3389。所以这里的ip或者域名是关键。

ddns

动态的域名解析。实现动态ip的域名绑定。这里需要家庭网络有一个公网ip。由于是运营商动态分配,经常变动,不固定。但在某个时间段内,如24或48小时内,是固定的。然后需要一台支持ddns功能的路由器。操作思路就是,将自己家庭网络的动态ip绑定到一个域名上。外部访问只需要访问这个域名,如abc.com即可。至于域名背后映射的ip则不用去操心,因为都是动态绑定的。实现这种ddns其实也有两种方法。

  1. 使用第三方的域名服务,如花生壳。在花生壳网上申请一个免费的壳域名,如huashengke.com。然后在自己的路由器中找到ddns设置的地方,输入你在花生壳上注册的账号和密码。这样路由器就能使用这个账号密码,通过花生壳网站来映射(内部实现了动态ip与花生壳域名的绑定)。如下图:
    .在这里插入图片描述
    这个方案方便的地方在于使用了第三方服务,动态ip绑定的操作可以不用操心。缺点也很明显,会被花生壳限流,毕竟是免费服务。如果需要更高的带宽,就得付费,或者换其他方案。
  2. 通过阿里云等域名服务商,购买一个自己的域名。然后再域名服务里,通过脚本定时刷新绑定ip。具体操作可以参考https://post.smzdm.com/p/636325/结尾处的方法。这里稍微麻烦点的地方就是需要有一个定时的计划任务,定时运行脚本向阿里云更新本地ip到自己购买的域名。这个脚本可以运行在家庭网络的任何一台机器上,不必是那台远程目标机器。思路和方法1是一致的,只是动态ip绑定的操作需要我们自己完成,但也少了限流的操作。
    这个更新动态ip的脚本可以设置在家庭网络的主机上,nas上,甚至是路由器上(需要破解路由,大多是路由是linux,这个操作有点骚,不太适合大部分人)。

直接获取IP

看到这个你一定会觉得,这么骚的操作怎么可能,要是可以直接获取,还有上面ddns什么事。
一般来说直接获取IP是不肯能的,尤其是这个IP是动态的,经常会变更。总不能每天离开家前都要查看记下来吧。
但是,现在的一些高级路由器是可以的。诸如华硕网件的高级路由器,诸如ac68u,ac86u,r8000这种规格的。原理是,需要你在华硕,网件或者路由器厂商注册一个账号,然后绑定路由器,这样就可以通过公网查看和管理路由器状态。小米也可以通过公网访问家里的路由器,但是目前没有开通获取路由器所在网络的ip的功能。以我现在用的网件r8000示例。注册好账号密码后,在路由器里设置绑定。然后就可以在手机app”网件精灵“上登录这个账号。可以看到:

在这里插入图片描述
选择远程访问里的那个r8000路由器,就可以查看绑定好的路由器信息。进入界面后,选择网络地图功能。打开后可以看到下图的界面。点击红框的那个图标,即可查看当前路由器所在网络的ip。有了这个ip,就可以配合端口映射的设置信息,进行远程访问了。这样就可以完全的绕过ddns,不需要域名。缺点也有,就是需要买好一点的路由器。
在这里插入图片描述

其他

当以上都实现后,还可以继续改进。比如通过路由器和机器的设置,实现网络唤醒。即远程主机不需要一直开机待机。而是需要时,通过网络唤醒,将机器开机,然后再进行远程控制。这是可以操作实现的,这里就不展开说了,网络唤醒设置比较玄学,也看主板支不支持。

结语

顺便做个调查汇总,大家可以看看自己现在的路由器可不可以实现查看当前网络ip这个功能。如果可以,请留言告知,这样可以帮助更多的人,非常感谢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章