最近完美实现了从远程局域网连接家里电脑,进行远程控制,这里记录一下几种不同的方案。

首先要看看家里电脑是用的哪个运营商的宽带,如果是中国电信的宽带,那么实现起来是最容易方便的,那就是和中国电信申请分配一个公网的IP地址,但是如果是中国移动的宽带,那么就比较麻烦,移动那边是不会分配公网IPv4的地址的,但是不要担心,我们也是有方案来解决。下面就描述一下不同的场景下的解决方案。

远程控制电脑开关机

第一步是要能实现远程控制家里的电脑的开关机,这里有两种方案

如果是中国电信的宽带并且分配了公网IPV4地址,可以采用wake on lan(WOL)这种方式来进行远程开关机,这种方式需要电脑通过有线网络连接家里的路由器,在电脑的BIOS设置里面打开WOL的选项,然后远程电脑运行WOL的命令,向家里的电脑发送WOL的magic packet即可实现开机。但是这个方式需要有线网络的连接,如果没有的话,也可采用新增一个无线路由器放在家里电脑旁边,通过桥接的方式连到主路由器,然后家里的电脑通过网线和这个无线路由器相连。另外,因为电信分配的公网IP地址会定期更改,最好是申请一个域名,在家里的无线路由器里面设置DDNS来和这个IP做绑定,可以选择花生壳的DDNS服务,申请一个域名也很便宜。

如果是其他运营商的宽带,无法获得公网IPV4地址,那么我们可以采用另外一种方式,就是购买一个智能插座,连接家里的无线路由之后,就可以远程遥控插座的通电,并且在家里电脑的BIOS选项中选择通电后自动开机的选项(我的电脑的BIOS选项里面是有一个Power restore的选项,选择Power ON)。

远程连接家里的电脑

实现了远程控制电脑开机之后,我们就可以进行下一步操作了,这里面也是有几种不同的方案

1. 能拿到公网IPV4地址

这种方式是最简洁的,只要在家里的无线路由设置好端口转发,把外网的端口映射到内网电脑的端口即可。之后就可以远程连接这个公网IP地址加端口来访问家里的电脑。但是一般只有电信的宽带才会分配IPV4地址。

2. 无法拿到公网IPV4地址,但是能拿到公网IPV6地址

目前各大运营商都已经支持IPV6公网IP地址的分配了,只要家里的路由器能支持,就可获取公网IPV6地址。如果远端的电脑也支持IPV6,那么也可以通过IPV6来进行远程访问。具体是否支持可以在远端的电脑上访问ipv6-test.com网站来进行测试。如果远端的电脑不支持,那么可以尝试开启微软的Teredo隧道,来进行IPV6的封装。在Win10版本下,可以用管理员身份打开Powershell,然后运行netsh interface teredo set state enterpriseclient server=default来开启这个隧道,开启之后查看ipconfig,如果能分配2001开头的IPV6地址,那么一般来说就可以用IPV6服务了,可以再上ipv6-test.com来测试一下。不过我这里遇到一个奇怪的问题,就是开启隧道之后,虽然获取了2001的地址,但是仍然无法访问IPV6,可能是我远端电脑所处的网络设置的问题,例如路由器不支持这种隧道之类的。所以这种方案对我来说并不适用。

3. 内网穿透

我用的是移动的宽带,在没有公网IPV4,而且远端电脑也不支持IPV6的情况下,应该如何来实现这个远程访问呢?不用着急,还是有解决方案的。那就是可以采用内网穿透的方式,也就是虽然家里的电脑是处于内网,无法让外网的电脑直接连接,但是家里的电脑是可以连到外网的,因此我们可以通过反向端口映射的方式来建立一个SSH隧道。一种方式是可以采用一些服务提供商的内网穿透服务,例如花生壳,提供了内网穿透,可以设置家里的电脑绑定到一个外网的地址和端口,然后远端电脑可以访问这个外网的地址和端口,从而访问家里电脑的服务。不过这种方式有个缺陷,那就是免费版的服务能绑定的端口数量有限,而且限制带宽,例如花生壳限制是2个端口的绑定,以及带宽不能超过1Mbps(这个估计也是共享带宽的,如果这个免费内网穿透的服务同时很多人用,那么就很慢),有没有其他方式来突破这个限制呢?

经过我的研究,还真有一种完美的方式,那就是自己部署一台云主机,用来提供这个内网穿透服务。例如我们可以选用腾讯的轻量应用服务器,现在做活动是288元3年(平均每个月8元),服务器配置是1核CPU,2G内存,40G硬盘,5M带宽,这个就很适合用来做内网穿透(当然还可以挖掘一些其他的用途,例如用来做代理服务器,实现游戏加速等等)。部署了云主机之后,我们需要做以下的设置

a. 实现SSH免密码登录

在家里的电脑运行ssh keygen,然后点回车即可,为家里的电脑生成一个公钥和私钥,然后运行ssh-copy-id -i ~/.ssh/id_rsa user@abc.cn, 把这个公钥拷贝到云主机上即可。user@123.123.123.123是云主机的用户名和IP地址,之后需要ssh连接一次云主机,测试一下是否不需要输入密码。

b. 在家里的电脑配置反向端口映射

运行SSH,进行反向端口映射,把云主机的端口映射到本地电脑的22端口。这里采用autossh来进行配置,因为需要解决SSH配置之后隧道容易失效的问题,autossh可以帮我们自动监控和重建这个隧道。在ubuntu系统下可以运行apt install autossh来安装。我家里电脑是ubuntu 18.04的操作系统,为了让autossh能开机自启动,需要在/etc/systemd/system目录下面新建一个service文件,例如命名为autossh-reverse-mapping.service,编辑内容如下:

[Unit]
Description=AutoSSH reverse proxy
After=network.target[Service]
Environment="AUTOSSH_GATETIME=0"
ExecStart=/usr/bin/autossh -M 0 -o "ServerAliveInterval 60" -o "ServerAliveCountMax 2" -o TCPKeepAlive=yes -NR 7777:localhost:22 user@123.123.123.123[Install]
WantedBy=multi-user.target

然后运行sudo systemctl enable autossh-reverse-mapping, sudo systemctl start autossh-reverse-mapping,启动服务。

登录家里的无线路由器,配置端口转发,允许外网访问22端口映射到家里电脑的内网IP地址和22端口上

c. 在云主机上配置正向端口转发(可选)

这一步是可选的,因为在以上步骤做完之后,在远端电脑直接ssh -p7777 user@123.123.123.123即可实现访问家里的电脑。不过我们也可以在云主机上配置另外一个端口暴露给外网来访问(可能在安全性上更好),例如我可以暴露8888这个端口,外网访问8888,实际上会转发到7777这个端口,然后再转到家里电脑的22端口。

在云主机上运行以下设置

ssh -fCNL *:8888:localhost:7777 localhost

然后在远端电脑运行以下命令,即可实现远程登录家里的电脑

ssh -p8888 user@123.123.123.123

d. 配置VNC实现远程图形控制

如果要实现VNC远程连接,方式也是和上面的类似,也是建立一个反向端口,把云主机的端口绑定到家里电脑的5901端口上,然后在云主机上配置一个正向端口代理,把暴露给公网的端口转发到之前和5901绑定的那个端口上。

以上就是我当前采用的方案,可以完美解决外网访问内网的问题。

远程控制家里电脑的N种方案相关推荐

  1. 怎么恢复本地磁盘里的数据?电脑本地磁盘数据恢复7种方案

    演示机型:技嘉 H310M HD22.0 系统版本:Windows 10 专业版 软件版本:云骑士数据恢复软件3.21.0.17 本地磁盘是什么意思?所谓的本地磁盘是指安装在电脑主板上,不能随便拔插的 ...

  2. 帝国cms7.5电脑端手机端多终端解决方案之选择哪种方案

    制作电脑站和手机端通常有三种方式, 1.代码适配:服务程序端,即通过php动态程序,根据ua来判断来自于电脑还是手机,根据终端类型来渲染不同的模板界面;这种电脑和手机端的url是保持一致的,但程序必须 ...

  3. 高效远程控制另一台电脑的3种方法,提升工作效率!

    如何从我的电脑控制另一台电脑?  "我妈妈的电脑出了问题,我需要帮她修理下,但是我不能亲自去进行故障排除.我应该如何从我的电脑远程控制另一台电脑,并提供远程支持?" 如何远程控制另 ...

  4. 如何远程控制其它电脑!

    我和舍友共用ADSL,我的电脑接在宽带路由器上面.为了能远程控制家里的电脑,我是煞费苦心,最后终于OK了,把一些经验心得写出来.          首先想要远程登录的机器最好是WinXP或者Win20 ...

  5. qq远程控制电脑方法_【技术分享】教你远程控制别人电脑

    大家好呀,欢迎小伙伴们观看文章,希望小伙伴们多多点赞分享加关注,并且小伙伴们可以动动小手将本公众号添加到星标,星标可以第一时间收到本公众号的消息哦~ ◆  ◆  ◆ 技术分享 分享是一种美德 乐人之乐 ...

  6. java word转pdf_java里实现Word转PDF的几种方案

    一.libreOffice 与openOffice类似,但比openOffice稳定. 优点:样式稳定 缺点:性能较差 调用方式:windows:1 2 3 4 5 6 7 8 9 10 11 12 ...

  7. mac远程控制pc电脑的方法 pc控制mac

    目前本人正在使用的两种mac远程控制pc电脑的方法. 本教程以mac os x:10.7.3 和 windows xp 做示范,windows其他系统都是一样的. 一:mac官方(局域网内) 这个方法 ...

  8. 家用计算机的运行速度,家里电脑又卡又慢!如何提高电脑运行速度?

    原标题:家里电脑又卡又慢!如何提高电脑运行速度? 想要提高电脑运行速度,除了硬件上面加内存显卡,换固态之外,系统本身如何达到极致的优化,让电脑运行速度变得杠杠的呢?下面小A介绍几种有效提高电脑运行速度 ...

  9. intel(r)wireless-ac9462异常//笔记本电脑网络无法连接???吐血后总结 :一次解决,史上最全,N种方案

    intel®wireless-ac9462出现黄色感叹号 intel®wireless-ac9560出现黄色感叹号 笔记本联网出现异常 如图所示: 简单介绍:这种情况是无线网卡驱动出现问题 解决方案一 ...

  10. 文件夹选择对话框 JS实现的两种方案

    文件夹选择对话框 JS实现的两种方案 /**  * browseFolder.js  * 该文件定义了BrowseFolder()函数,它将提供一个文件夹选择对话框  * 以供用户实现对系统文件夹选择 ...

最新文章

  1. 17岁「天才少女」被8所世界名校录取,最终选择MIT计算机系,还说学成后肯定回国...
  2. Mahout的推荐系统
  3. 女子多年未住别墅成剧组拍摄地,网友:看个剧才想起自己还有栋别墅
  4. 2021年中国一次性卫生设备市场趋势报告、技术动态创新及2027年市场预测
  5. 分治法求一个整数序列中的最大和最小元素
  6. python 报警声音的实现
  7. 一个新手学习python、pys60的感受
  8. php汉字转拼音百家姓版,百家姓详(带拼音).ppt
  9. c语言 1为真还是0为真,C语言中逻辑表达式和关系表达式的值为真时,到底是用非0的任何数表示还是只能用1来表示?...
  10. APP推广的十大法宝
  11. java实现 蓝桥杯 算法训练 操作格子
  12. android 给图片加文字、图片水印
  13. 沟通的艺术(笔记)——前言
  14. 深入浅出进入PE世界[网络转载]
  15. error: command ‘gcc‘ failed with exit status 1
  16. (151)设计一个同或门之Xnorgate
  17. Chips-2.0(一) 安装
  18. OpenXml 操作Excel,Word,PPT
  19. rf2o_laser_odometry运行警告Waiting for laser_scans....
  20. U盘---群联方案量产

热门文章

  1. 语法长难句——并列句
  2. Axure images 元件,图片在浏览器加载不出来
  3. camera 添加外挂pmic进行供电的涉及
  4. 在Ubuntu 8.10 中安装使用新一代输入法ibus Deb包下载_Ubuntu,Linux,ibus输入法,拼音,五笔,搜狗
  5. python大数据之缺省值处理
  6. Mathtype 花体字 Euclid math one/two 不能显示的问题
  7. 大数据技术之Hive(四)函数、压缩和存储
  8. ARM与RISC-V的恩爱情仇
  9. 网站服务器停止响应是什么意思?
  10. 如何画出一张优秀的架构图(老鸟必备)