环境
Client:Windows 远程登录Ubuntu系统
Server:Ubuntu Server 有公网固定IP
买的云服务器带宽只有1M,使用frp远程连接windows有卡顿
连接国外VPS远程桌面时会卡顿原因分析
首先分析卡顿是什么因素导致的,总结的原因。
step 1:首先得排除网络原因。
网络延迟: >80ms会导致卡顿。
网络带宽:如果网络本身就比较慢,那么没啥好办法。由于带宽只有1Mbps,实际只有130KB/s,不可能不卡。提升带宽无疑是最佳解决方案;
排除这种情况可以参考下面方法。具体如下:
1、组合键“Win+R”调出运行窗口,输入“mstsc”并回车或确定;
2、在远程桌面连接中输入计算机名称IP并连接;
3、虽然能够正常连接,但是在使用操控中显得特别缓慢;
4、出现这种现象主要是系统设置所致,我们可以通过快捷组合键“Win+R”调出运行窗口并输入“CMD”回车或确定;
5、在弹出CMD命令提示符窗口后并输入“netsh interface tcp set global autotuninglevel=disabled”回车;
6、在输入以上命令后如果提示“命令失败请求的操作需要提升(作为管理员运行)”,此时需要以管理员身份运行,
输入快捷键“Win+X”→“命令提示符(管理员)”以此启动CMD,然后再次运行即可。
其实很简单
不用加钱去升级宽带,如果是阿里云的ECS,那么直接把带宽改成按量付费即可,然后带宽拉倒10M,甚至50M都可以,
而且不用多掏钱,这个是关键,如果你VPS流量不大的话,甚至可能比你原来的1M带宽包月还便宜哦
frp有xtcp模式(点对点内网穿透代理,但是流量不需要经过服务器中转),只要本地有frpc客户端即可,两端使用点对点直连,云服务器只用来做握手链接使用。
这样直连的带宽取决于你和远程windows的带宽,通常来说家庭宽带足够了。
国际出口带宽不足:目前(2019年)大陆总带宽约8700Gbps,均分到8亿网民头上,每人0.01Mbps。当然,现实情况是不可能平分的,大企业等有带宽优先使用权。剩下的普通网民使用更少的带宽份额,自然会卡顿。
网络延迟高:一些国外VPS因地理遥远,延迟高等因素,使用windows 访问3389卡慢。网络延迟 <80m会导致卡顿。
RDP 协议是给 Windows 平台用的.
Step 2:远程服务器的性能太差。1G Ubuntu Server,图形化后非常缓慢。国内 国外都是如此。
Win10 Update 的升级问题
软件本身的问题
比如手里有一台国外服务器,安装Windows系统,通过远程桌面连接进行管理。但是线路一般,连接很慢,操作很不流畅。这种情况就可以设置远程桌面走代理,通过网络较好的服务器进行中转,从而加快远程桌面连接速度,大幅减少卡顿。
原始环境:国外VPS安装Windows系统,网络状况较差,经常性连接失败,即使连接成功,操作也极其卡顿,无法正常使用。
改善效果:通过代理转发远程桌面后,很快连接成功,操作流畅,与本地桌面操作区别不大。
1.windows机器要访问linux server 远程桌面,必须在Windows机器上安装Xmanager,Xming,Windows机器通过X11协议访问linux Server机器
2.分别安装server 和 client端程序,server 和 clent 通过X11协议来通信。如:rdp vnc
具体方法:
1.被控端安装轻量级桌面系统xfce
在Ubuntu的Gnome桌面配置x11vnc,但是访问卡顿很厉害。后来通过vncserver+fxce来实现远程访问,流畅度很好
2.Windows 远程桌面客户端修改传输参数设置。比如不绘制桌面背景,降低颜色位数等等.
X, Xorg, X11, gdm, gnome, kde, xfce这些的关系是什么?
总是在这些概念里跑来跑去,一层一层的服务关系还是什么?没有系统的介绍。
Linux初学者经常分不清楚linux和X之间,X和Xfree86之间,X和KDE,GNOME等之间是什么关系。常常混淆概念,本文解释X,X11,XFREE,WM,KDE,GNOME等之间的关系。
关键在于理清楚远程桌面几个组件xrdp,x11,xfce/gnome 之间层次关系,这样就不会在各种配置文件之间感到混乱。
X是一种协议,X11是X的第11版本。
X11其协议框架为XServer+Xclient+X11协议。
Xorg是安装在linux的应用程序,是对X11的具体实现。
linux上的图形应用程序,如firefox
gnome(xfce等) linux系统上的桌面环境,管理linux上的图形应用程序,如firefox,chrome等
第三方桌面(xfce桌面等等)
远程桌面传输协议
xrdp
vnc
2.1 xrdp 监听3389端口
2.2 vnc 监听5900端口
Ubuntu 提供两个安装版本:
Ubuntu 服务器版
服务器安装 ISO 镜像是 Ubuntu 提供的最小的下载,仅仅32M。它是针对服务器操作优化的操作系统的精简版本。此版本没有 GUI。默认情况下,它完全从命令行运行。比如:安装oracle,也是用命令行解决。
在最小化安装的基础上,用apt-get命令有选择的安装服务和应用。
Ubuntu 服务器桌面版
桌面安装 ISO 镜像相当大,并且有多个在服务器安装 ISO 镜像上没有的软件包。此安装用于工作站或日常桌面使用。
一句话:Ubuntu 服务器版+apt-get install ubuntu-desktop=Ubuntu 服务器桌面版
linux本身没有图形界面
linux只是一个基于命令行的操作系统.Unix/Linux这类系统本身没有图形界面,linux现在的图形界面的实现只是linux下的应用程序实现的而已。换言之,图形界面并不是操作系统本身的一部分,Unix/Linux就是一个基于shell命令行的操作系统。
linux系统的大致框架:
Kernel->Shell(bash)->X(xorg)->Desktop Manager
从底层到上层各个调用关系为
cpu——>(GPU2d/3d加速(几个库))——>framebuffer ——>tslib ——>xserver ——>gtk /qt——>gnome/kde
xserver 一般所在目录叫X11,对应的可执行程序叫Xorg,是作为服务器,图形软件界面相当于客户端
linux图形界面层次关系总结
linux本身-->X服务器<-[通过X协议交谈]->窗口管理器(综合桌面环境)-->X应用程序.
ubuntu中的远程桌面组成
x11 负责远程桌面的窗口管理
xfce、gnome之类属于上层的窗口应用层实现。KDE 和GNOME是LINUX里最常用的图形界面操作环境。
xrdp 负责远程桌面的传输协议
X11
X是协议,并不是具体的某个软件。就像HTTP协议,IP协议,WSGI协议一样都是协议,X11就是X协议的第11版.x11又叫x window。
.
unix系统中是没有图形界面的,只有字符界面。在Macintosh和Windows有图形界面之后,unix系统也想搞一套图形界面系统,然后就有了X11。
Linux上的图形系统都依赖于X。
X11和Windows的图形界面系统是不同的
X Window System 常被简称为X11或X,其功能包括窗口的绘制、移动,以及与鼠标、键盘等输入设备的交互。
X 架构,由「X server」,「X client」,「X 协议」三部分组成:
ubuntu上 的X11采用C/S模型:X server和client位于同一台计算机上。
X server和X client通过X协议进行通信。
X server 管理主机上与显示相关的硬件设置(如显卡、硬盘、鼠标等),它负责屏幕画面的绘制与显示,以及将输入设置(如键盘、鼠标)的动作告知 X client。
X client (即 X 应用程序) 则主要负责事件的处理(即程序的逻辑)。
举个例子,如果用户点击了鼠标左键,因为鼠标归 X server 管理,于是 X server 就捕捉到了鼠标点击这个动作,然后它将这个动作告诉 X client,因为 X client 负责程序逻辑,于是 X client 就根据程序预先设定的逻辑(例如画一个圆),告诉 X server说:“请在鼠标点击的位置,画一个圆”。最后,X server 就响应 X client 的请求,在鼠标点击的位置,绘制并显示出一个圆。
一个X server 和多个应用程序(client)通信。server接收client的请求绘制窗口,并将来自鼠标、键盘等设备的输入传递给client。
X server和client可以位于同一计算机上,就类似于平时使用的Windows操作系统;当X server和client不在同一计算机时,使用本地的X server 进行绘制、交互,就变成了远程桌面。
一般来说,X的客户端部分一般都使用的是libxcb(更早些时候是xlib)这样的库,其实主要的图形程序也不是直接使用libxcb或者xlib的,而是使用更流行的封装,比如Qt或者gtk。而服务端则是Xorg进程:
[email protected]:~$ ps -ef |grep Xorg
root 1002 807 0 2月16 tty7 01:23:43 /usr/lib/xorg/Xorg -nolisten tcp -auth
/var/run/sddm/{ab81e385-8f3c-4f6c-881d-a2c8d17bbbef} -background none -noreset -displayfd 17 vt7
现在的发行版默认情况下,Xorg这个server进程只接收本机的client。但是通过ssh建立隧道进行X协议的转发就可以克服这个障碍。要转发X11,我们需要在ssh的客户端和服务端都开启支持x11的功能,注意了,是ssh的客户端和服务端,从X协议的视角出发,它们正好是相反的。
有 了协议就需要具体的软件来实现这个协议。实现这个协议的常用服务器有Xfree86 ,Xorg ,Xnest等。
Xfree86是一个根据实现X 协议的软件。
Xorg是一个根据实现X 协议的软件
X系统是linux的图形系统,而 Xorg是X系统的一种开源实现。
gnome, kde, xfce是桌面环境,方便用户使用
icewm,xfwm,kwim,metacity, window maker,compiz是窗口管理器, 用于捕捉窗口事件和响应窗口事件
gdm,xdm,kdm是登录器,桌面环境可有,可无
加速方法基本分两类:
1.使用优先权更高的国际线路,比如电信的CN2线路的vps:一般为政企所用,总带宽不足时,电信运营商会优先保障CN2线路的通畅。
个人现在不太容易购买CN2的宽带,但可以购买使用CN2线路的国外VPS服务器来中转,需要专业的网络配置知识。市场上也存在一些第三方的服务。
2.程序优化方法:包括不限于多倍发包等方法,这种属于大大损人,微微利己的加速方法,不但对普通人来说部署麻烦,不安全,而且对整个网络环境是一大危害。
3.xrdp远程桌面协议是windows用的,
企业具体方法
海外设备远程下载目前常用3种方案
方案1部署:
编程软件和调试人员在国内,设备在国外,通过网络建立虚拟连接下载。
缺点:编程软件到PLC延迟大,导致下载不稳定或不流畅,有防火墙阻挡问题。
方案2部署:
调试人员在国内,编程软件和设备在国外,通过远程桌面连接电脑操作。
缺点:远程桌面慢,现场需要安装加密等软件,程序发给客户无法保证加密。
方案2部署:
海外编程云服务器部署创新方案:
部署:编程调试人员在国内,设备在国外,中间搭建海外加速服务器和编程云服务器。
优势:将延迟变成2段,一部分延迟由远程桌面承担,一部分延迟由编程软件到PLC承担。利用远程桌面对延迟不敏感的特性,极大提升远程调试的体验和稳定性。
个人具体方法
1.转发或者udp
买了一个 cn2 线路的转接服务,通过CN2网络转发流量实现.1 元 100M,非常流畅
如:用一个香港CN2的代理,然后在链接服务器,应该就稳定了
如: TCP转发 新加坡转发, 然后本地连接新加坡。
软件:
2.使用Xshell中转加速远程桌面RDP
使用Xshell中转加速远程桌面RDP ,让远程桌面不卡变快
3.HeyTerm 网页终端,支持ssh rdp vnc
4.Nat中转
5.远程桌面本身可以设置网络、颜色、分辨率等一系列参数,全部调低。.rdp文件右键编辑,设置选项.
6.用netch
7.用SocksCap64可代理所有你想加速的程序
8.frp,或者zerotier-one,推荐用前者
使用frp的内网穿透,kcp模式(KCP是一个快速可靠协议,能以比 TCP浪费10%-20%的带宽的代价,换取平均延迟降低 30%-40%,且最大延迟降低三倍的传输效果。KCP模式是通过UDP发包的),大概原理就是,国外VPS用frpc客户端对3389穿透使用kcp模式,转发数据到frps服务端。然后frps服务端往返协议传输给终端用户。
跳板,当然就是找台国内VPS,或者新加坡/香港的低延迟当中继,用来搭建frp服务端。宽带没啥要求,用来访问3389 1M都行。
如:阿里云香港+frp
9.端口转发
Linux直接iptables端口转发,用香港做中转块非常多
Windows系统端口转发
win的话一个命令就中转了
http://foreversong.cn/archives/1117
用nginx 转发
https://blog.51cto.com/icenycmh/2117844
远程连接到Linux服务器Ubuntu的连接方式
远程连接到Linux服务器(本文是Ubuntu),连接主要分为两种:
1.终端命令窗口:通过SSH服务(使用xshell等工具)来远程访问,编写终端命令,不过这个是无界面的。
2.图形界面:通过可视化界面远程访问,像Windows下的自带的远程工具一样,能够以图形化的界面远程操作。
细分为两种:
2.1 通过xrdp远程桌面协议来进行可视化远程操作
2.2 通过vnc远程桌面协议来进行可视化远程操作
2.1通过xrdp远程桌面协议来进行可视化远程操作
Xrdp 是 Microsoft 远程桌面协议 (RDP) 的开源实现,允许您以图形方式控制远程系统。使用 RDP ,您可以登录到远程计算机并创建一个真实的桌面会话,就像您已登录到本地计算机一样。
本教程介绍如何在 Ubuntu 18.04 上安装和配置 Xrdp 服务。
原始的unix系统中是没有图形界面的,只有字符界面的。
Step 1:安装桌面环境
Linux 服务器没有安装桌面环境。我们的第一步是安装 X11 和一个轻量级桌面环境,它将充当 Xrdp 的后端。
Ubuntu 存储库中有几个桌面环境 (DE) 。我们将选择安装 Xfce 。它是一个快速,稳定和轻量级的桌面环境,非常适合在远程服务器上使用。
以具有 sudo 权限的用户身份键入以下命令,以在服务器上安装 Xfce :
sudo apt update
sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
Step 2:安装 Xrdp
Xrdp 包在默认的 Ubuntu 存储库中可用。要安装它,请运行:
sudo apt install xrdp
安装过程完成后, Xrdp 服务将自动启动。通过键入以下内容来验证 Xrdp 是否正在运行:
sudo systemctl status xrdp
Output
xrdp.service - xrdp daemon
Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2019-07-28 22:40:53 UTC; 4min 21s ago
Docs: man:xrdp(8)
man:xrdp.ini(5)
Step 3:配置 Xrdp
Xrdp 配置文件位于 /etc/xrdp 目录中。对于基本的 Xrdp 连接,我们只需要配置 Xrdp 即可使用 Xfce 。为此,请在文本编辑器中打开以下文件:
文件 /etc/xrdp/xrdp.ini
sudo nano /etc/xrdp/xrdp.ini
在文件末尾添加以下行:
#channel.xrdpvr=true
exec startxfce4
保存文件并重新启动 Xrdp 服务:
#重启xrdp服务
sudo service xrdp restart
Step 4:检查防火墙
默认情况下, Xrdp 监听 3389/tcp 所有接口上的端口。如果您在 Ubuntu 服务器上运行防火墙(您应该总是这样做),则需要添加一个规则来启用 Xrdp 端口上的流量。
#sudo netstat -plntu
tcp6 0 0 :::3389 :::* LISTEN 12648/xrdp
2.2 Install VNC Server and access it using any VNC client
VNC 不是加密协议,可以进行数据包嗅探。建议的方法是创建一个 SSH 隧道,该隧道将安全地将来自本地计算机的端口 5901 上的流量转发到同一端口上的服务器。
Client 到VNC官网(https://www.realvnc.com/en/connect/download/viewer/)下载最新的版本
2.2.1 VNC运行的工作流程
1)、VNC客户端通过浏览器或VNC Viewer连接至VNC Server。
2)、VNC Server传送一对话窗口至客户端,要求输入连接密码,以及存取的VNC Server显示装置。
3)、在客户端输入联机密码后,VNC Server验证客户端是否具有存取权限。
4)、若是客户端通过VNC Server的验证,客户端即要求VNC Server显示桌面环境。
5)、VNC Server通过X Protocol 要求X Server将画面显示控制权交由VNC Server负责。
6)、VNC Server将来由 X Server的桌面环境利用VNC通信协议送至客户端,并且允许客户端控制VNC Server的桌面环境及输入装置。
在Ubuntu 20.04上安装Xrdp服务器(远程桌面)
一、安装桌面环境
Ubuntu 服务器通常使用命令行进行管理,默认没有安装桌面环境。
在 Ubuntu 源仓库有很多桌面环境供你选择。一个选择是安装 Gnome,它是 Ubuntu 20.04 的默认桌面环境。另外一个选项就是安装 xfce。它是快速,稳定,并且轻量的桌面环境,使得它成为远程服务器的理想桌面。
运行下面的命令去安装你选择的桌面环境:
安装 Xfce
sudo apt update
sudo apt install xubuntu-desktop
Generating 2048 bit rsa key...
ssl_gen_key_xrdp1 ok
saving to /etc/xrdp/rsakeys.ini
Webmin 安装了一个基于 Web 的管理界面
Useful links
Ubuntu Linux 的不同安装类型:服务器 vs 桌面