最近终于实现了这个功能,可以带着我的小新pro13随地远程实验室的服务器了,爽。
为什么不用teamviewer ?
延迟大,极有可能被检测为商用然后收费,最要命的是,如果服务器没有插显示屏,teamviewer是不能显示的。
通过测试发现,如果服务器不接主机,本方法可以显示但是没有响应
解决方法大概看了下,可以安装ubuntu虚拟显示器,但是会和主显示器抢,开机黑屏等问题,比较麻烦后面有空再探索吧。
实现配置:
外网win10,
内网ubuntu20(理论上ubuntu16-20都可以)
实现方法
使用win10自带的远程桌面 + ubuntu 自带的屏幕共享
为了解决内外网的IP地址问题,需要在路由器上将服务器的IP固定,并设置专门的端口转发。
下面开始:
ubuntu服务器端
据我所知ubuntu16之后的都自带屏幕共享功能: 设置-》 共享-》屏幕共享
如果是最小安装的ubuntu可能没有,需要额外命令行安装:
安装方法具体见https://blog.csdn.net/weixin_33804990/article/details/92484727
只用参考如何安装屏幕共享功能,他的后续步骤对于两台机器在内外网的情况是不work的,因为没有进行端口转发
安装成功:
重启ubuntu
win10端
先把win10链接在局域网内,因为要去设置局域网路由器。
进入路由器的网页端管理界面,我的是tplink,直接输入http://tplogin.cn/ 即可
- 首先要固定ubuntu服务器的IP(静态IP),不然路由器给局域网的IP地址是随机的。tplinK为例,进入应用管理-》IP与mac绑定:
添加绑定就好了。
这里绑定的IP是局域网内的IP,需要记录一下后面会用到。
如图中的192.168.1.159。
- 添加两个端口映射
进入应用管理-》 虚拟服务器,如图,
- 第二个是将路由器的80端口映射到局域网内的IP为192.168.1.159的22号端口,这样就实现了远程SSH功能:
如果想在外网通过SSH连接内网的服务器,直接用ssh连接路由器的IP,以及路由器的80号端口,这样就会自动连接到192.168.1.159:22(即局域网内ubuntu服务器的22号端口)
当然Ubuntu服务器上要开启ssh以及配置好端口(默认是22)等,具体见https://blog.csdn.net/future_ai/article/details/81701744 - 第一个端口映射是为了实现远程桌面:
win10的远程桌面是默认访问3389端口的,因此需要将路由器的3389端口映射到局域网内服务器的3389端口。否则会提示连接失败。
开始连接:
将win10 连接在公网,
打开win10的远程桌面,输入路由器的IP地址(不用端口,默认是3389),也就是公网地址:
点击连接,不出意外会出现:
选择vnc-any,IP填写的是服务器在局域网的IP,192开头的一串,
port 5900默认不用改,密码是刚开始在ubuntu上设置的屏幕共享的密码。
点击确认,大功告成!