如果你手上没有实体服务器,那就可能需要租用服务器提供商的各种类型的服务器。

当租用服务器时,不可避免的一个问题就是服务器的远程连接。
  通常,我们会使用SSH协议进行连接,对应的软件有Finalshell、PUTTY、WinSCP、Xshell等。
  而有时,我们又想连接服务器的远程桌面,进行图形化操作(当然这对大部分人来说完全没有必要,命令行足够了),远程桌面对应的软件有windows远程桌面、Xmanager等。

本文将对这些连接方式、软件、协议进行简要介绍,快来看看你的服务器以及你的业务适合哪种连接吧。(基于自己使用经验,并不包含所有工具/协议)

目录

  • 一、SSH连接
    • 1.1 SSH协议基础
    • 1.2 PUTTY
    • 1.3 WinSCP
    • 1.4 Finalshell
  • 二、远程桌面
    • 2.1 安装图形化用户界面
    • 2.2 RDP协议与windows远程桌面连接
    • 2.3 VNC
      • 2.3.1 VNC远程桌面和RFB协议
      • 2.3.2 服务器VNC服务配置
      • 2.3.3 客户端VNC配置
    • 2.4 Xmanager

一、SSH连接

1.1 SSH协议基础

SSH即Secure Shell(安全外壳协议):是一种在不安全网络上用于安全远程登录和其他安全网络服务的协议。我们在使用远程登录以及Github服务时就经常接触这个协议了。

SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH

最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。SSH客户端适用于多种平台。几乎所有UNIX平台—包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台,都可运行SSH。

SSH 协议存在以下特征:

  • 有效防止远程管理过程中的信息泄漏;
  • 传输 数据加密,能够防止DNS和IP欺骗;
  • 传输 数据压缩,加快传输速度。

UNIX 平台系统(Linux/MacOS)等一般都默认安装了 SSH 客户端,直接在终端中使用SSH命令即可,Windows 等其它平台则需要手动安装 SSH 客户端,较常用的Windows SSH客户端有PuttyXShellFinalshell等。

查看ssh服务是否开启:

netstat -tlp | grep ssh

例:

root@CQUPTLEI:~#  netstat -tlp | grep ssh
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN      1000/sshd: /usr/sbi
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN      1000/sshd: /usr/sbi

启动/停止/重启 ssh服务

sudo /etc/init.d/ssh start
sudo /etc/init.d/ssh stop
sudo /etc/init.d/ssh restart

SSH服务端配置文件默认为/etc/ssh/sshd_config,可以按需修改默认22端口等配置。

连接命令:

ssh [-options] [user@hostname]
options 含义
-p 指定ssh端口号,默认端口为22
-i 使用指定私钥文件连接服务器免密登录
  • user远程服务器登录的用户名,默认为当前用户
  • hostname远程服务器地址。可以是IP/域名/别名
  • exitlogout命令均可退出当前登录

例:

# 以root用户登录192.168.1.196的到ssh服务器
$ ssh root@192.168.1.196# 以root用户登录到192.168.1.198的ssh服务器,使用2222端口
$ ssh -p 2222 root@192.168.1.198

自己指定端口时候,注意防火墙设置,放行相应的端口。

SSH还有一些高级配置,如服务器别名、免密/免秘钥登录等,以及更底层的原理,本文就不过多介绍了。

接下来简要介绍一下我经常使用的通过SSH协议远程登录服务器的windows软件(SSH客户端)

1.2 PUTTY

这是我最早使用的SSH客户端。

PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。

较早的版本仅支持Windows平台,在最近的版本中开始支持各类Unix平台,并打算移植至Mac OS X上。除了官方版本外,有许多第三方的团体或个人将PuTTY移植到其他平台上,像是以Symbian为基础的移动电话。PuTTY为一开放源代码软件,主要由Simon Tatham维护,使用MIT licence授权。随着Linux在服务器端应用的普及,Linux系统管理越来越依赖于远程。在各种远程登录工具中,Putty是出色的工具之一。Putty是一个免费的、Windows x86平台下的Telnet、SSH和rlogin客户端,但是功能丝毫不逊色于商业的Telnet类工具。最新的版本为 0.78

PUTTY官网:https://www.putty.org/

优点:

◆ 完全免费
◆ 在 Windows 9x/NT/2000 下运行的都非常好
◆ 全面支持 SSH1 和 SSH2
◆ 体积很小
◆ 操作简单

如图,我用ipv6地址连接我的vps,非常简约,就这一个命令行界面。

1.3 WinSCP

WinScp我之前写过一篇文章:【WinSCP】强大的可视化远程文件传输 、管理工具

WinSCP官网:https://winscp.net/eng/docs/lang:chs

WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件

主要特点就是文件可视化,就像操作本机目录一样,在本地与服务器之间传输文件很方便。

WinSCP也可以打开服务器的终端(像上面的putty那样),但不建议这样做,应为WinSCP的终端功能和文件可视化功能不能同时操作,必须关掉终端后才能可视化操作文件目录。

建议的方式是:使用putty打开服务器终端,在WinSCP中对服务器中的文件目录进行可视化地操作。

不过这样要打开2个软件,没有必要。1.4节中的Finalshell可以完美地解决这个问题。

WinSCP用于主机间的文件传输还是不错的,直接从本地的目录(左边)拖到服务器就行了(右边)。

1.4 Finalshell

在我用过的SSH客户端里面,这应该是最好用的一款了。

地址:http://www.hostbuf.com/c/131.html

主要特色:

  • 云端同步
  • 免费海外服务器远程桌面加速
  • ssh加速
  • 本地化命令输入框
  • 支持自动补全
  • 命令历史
  • 自定义命令参数

直接来看这个界面,很多优点就一目了然了。

二、远程桌面

绝大多数情况下,使用上面介绍到的终端+可视化目录就足以胜任我们的工作需求了。

不过偶尔有些需求使用可视化远程桌面操作更方便。

但要注意,远程桌面的开销会大很多,本机带宽、服务器带宽(主要是这个)、时延、服务器性能等都对连接质量有很大的影响。我使用一个4M带宽的国内服务器进行远程桌面连接,都会有些卡顿(不过能用)。

考虑一个问题:国内服务器带宽昂贵,1M带宽与10M带宽价格相差甚远;国外服务器可能延迟高。

如果你迫不得已要连接服务器的远程左面,请考虑这些因素。如果你有相关的业务,可以考虑租用云桌面,我体验过阿里云的云桌面,还不错。感兴趣的可以去体验下,我记得好像可以实用一个月。

可以看一下使用windows远程桌面的演示视频(ubuntu20.04,腾讯云,4M):

服务器远程桌面

2.1 安装图形化用户界面

安装GUI桌面:

sudo apt update
sudo apt install ubuntu-desktop

安装rdp服务(Remote Desktop Protocol):

sudo apt install xrdp

默认端口是3389,若要修改:

sudo nano /etc/xrdp/xrdp.ini

查看运行状态:

sudo systemctl status xrdp

在防火墙上打开 RDP 端口,如果买的国内服务器,一般云防火墙都是打开该端口的。

sudo ufw allow 3389

2.2 RDP协议与windows远程桌面连接

远程桌面协议(RDP)是一个多通道(multi-channel)的协议,让使用者(所在计算机称为用户端或’本地计算机’)连上提供微软终端机服务的计算机(称为服务端或’远程计算机’)。

远程桌面是方便windows服务器管理员对服务器进行基于图形界面的远程管理.远程桌面是基于RDP(RemoteDesktopProtocol远程桌面协议)的。

在windows的搜索栏搜索远程桌面打开即可:
(或者从Finalshell中添加远程桌面连接,新建>远程桌面连接,不过最终还是用的windows远程桌面)


打开,输入服务器的ip地址,点击链接,在弹出的界面输入用户名和密码(也即是ssh登录的用户名和密码)即可。

界面可能与你在本地电脑安装的ubuntu不太一样,大同小异了。另外,界面是英文的,个人感觉没必要安装中文。点击桌面左上角的Activities即可看到程序坞。

使用完了,最好log out一下。减少服务器内存占用。

可能出现的问题:
如果你使用root账户登录,可能输入了正确的密码,仍然显示无法登录。
解决方法:

vim /etc/pam.d/gdm-password

把第二行注释掉即可:

注:vim下,按键盘 i 即可进入编辑模式,esc退出编辑模式,:wq保存并退出。

2.3 VNC

2.3.1 VNC远程桌面和RFB协议

VNC (Virtual Network Console) 是虚拟网络控制台的缩写。它 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。VNC 是在基于 UNIX 和 Linux 操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 Windows 和 MAC 中的任何远程控制软件媲美。

在 Linux 中,VNC 包括以下四个命令:vncservervncviewervncpasswd,和 vncconnect。大多数情况下用户只需要其中的两个命令:vncserver 和 vncviewer。

VNC基本上是由两部分组成:一部分是客户端的应用程序(vncviewer) ;另外一部分是服务器端的应用程序(vncserver)。Linux系统一般都自带有VNC服务(可以在设置,共享那里看到)。本文安装的是更好用的TigerVNC

VNC是基于RFB( Remote Frame Buffer 远程帧缓冲) 协议(RFB基于TCP)的。

主要特点:

遵守RFB协议的RFB客户端是一个无状态的客户端,若RFB客户端从一台RFB服务器断开后重新连接到 RFB 服务器端,RFB客户端的图形用户界面就已经被保存。另外,不同的RFB客户端终端能够连接到相同的RFB服务器终端上,在新的RFB客户端终端上能够得到和原来的RFB客户端终端相同的图形用户界面。

2.3.2 服务器VNC服务配置

服务器安装VNC:

sudo apt install tigervnc-common
sudo apt install tigervnc-standalone-server

设置VNC远程访问密码:

vncpasswd

编写启动文件:

touch ~/.vnc/xstartup
vim ~/.vnc/xstartup
chmod +x ~/.vnc/xstartup

其中xstartup的内容为:

#!/bin/sh[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresourcesvncconfig -iconic &dbus-launch --exit-with-session gnome-session &

启动vnc server:
(后面是分辨率和编号)

vncserver -localhost no -geometry 1920x1080 :1

查看启动的VNC信息: vncserver -list

root@CQUPTLEI:/# vncserver -listTigerVNC server sessions:X DISPLAY #     RFB PORT #      PROCESS ID
:1              5901            266743

注意这里的DISPLAY和RFB PORT值。

放行服务器端口:上面是5901。我直接去腾讯云控制台添加防火墙规则。

可以实用这个网站查询端口开放情况:http://coolaf.com/tool/port

注意:每运行一次vncserver,就会新增一个vnc服务,DISPLAY 值会递增,通过DISPLAY 值,可以建立多个vnc连接,也就是开多个远程桌面,或者说多个用户访问同一服务器的远程桌面。

删除指定id的远程桌面连接:

vncserver -kill :1

2.3.3 客户端VNC配置

下载客户端:https://www.realvnc.com/en/connect/download/viewer/
(windows、MacOS、Linux版都有)

安装后打开,需要先注册账号,登录。按提示注册就行。

打开,点击文件,新建连接,server这里是ip地址:DISPLAY 值

VNC远程桌面如图所示:

会根据带宽情况自动降低清晰度,以达到较好的响应速度。

2.4 Xmanager

官网:https://www.xshellcn.com/

如图所示,新建Xmanager RDP就可以了,也是使用的RDP协议。

Xmanager也提供Xshell用来进行SSH连接,Xmanager我使用的很少,这个远程桌面感觉速度有点慢。以后换个带宽高的服务器再试试。

另外,这是付费平台(Finalshell也支持付费解锁高级功能,如高级网络监控、打包传输、进程管理等),本文是14天试用版本。

本文所列举的软件仅为本人目前使用过的,仅供学习、了解用,生产环境中还是应该选择正版、安全、专业的远程连接软件(多为付费)。

【服务器】远程连接选SSH(PUTTY、Finalshell、WinSCP) 还是 远程桌面(RDP、VNC、Xmanager)相关推荐

  1. linux远程桌面ipad,如何实现远程连接(SSH)iPhone/iPad?

    大家都知道,iOS系统是基于Unix的,算是Unix衍生出来的新系统,而要玩转Unix系统,无疑最根本的使用远程连接即SSH来用命令行直接控制你的iPhone,那么远程连接(SSH)究竟有什么用呢? ...

  2. 远程连接linux的mysql_【Linux开启mysql远程连接的设置步骤】 mysql开启远程连接

    相关热词搜索:Linux开启mysql远程连接的设置步骤,linux mysql 远程连接,linux连接mysql数据库, MySQL默认root用户只能本地访问,不能远程连接管理mysql数据库, ...

  3. labview 远程连接linux,SSH交互式通信总结:expect、plink、putty、sshpass、ALAB SSH

    关于在linux脚本中远程执行命令的问题,笔者在以前文章中可以使用expect工具来完成交互式通信.在windows平台下可以使用plink或者putty工具.免密也可以设置SSH秘钥,参考文章-Li ...

  4. Vscode 与服务器建立远程连接(ssh)

    想实现本地编写python代码并在服务器运行,可以使用vscode中的远程连接,下面是详细步骤: 注意在做后续所有事情之前,首先需要保证服务器和本地的ssh能正常连接.检查方法是使用xshell等软件 ...

  5. 【远程连接】SSH链接远程主机

    自己手头有: mac book pro 树莓派一个 想用ssh远程连接树莓派,这样显示器就能解放给别的PC去使用了,显示器目前看来是需要竞争的资源hhhh 这里写目录标题 怎么连接ssh 客户端 使用 ...

  6. windows远程连接ubuntu 黑屏_Windows跟Windows远程连接传输文件

    关注奕奇科技,学习更多小妙招电脑小知识,值得收藏 我们一般在使用windows远程连接时需要传输文件该怎么办?我们可以插入U盘导入导出,但这样很是麻烦而且如果身边暂时没有U盘的情况就要通过社交工具传播 ...

  7. 安装远程连接Ubuntu Server 的图形界面——x2go远程连接桌面

    想要远程连接你的Ubuntu服务器的图形界面么?这里有个简单的指导告诉你如何使用X2Go来实现,这是一个NX远程桌面协议的衍生版本. 你所需要做的就是 1. 在服务器上面安装X2Go服务端和桌面环境, ...

  8. navicat远程连接mysql很慢_解决Navicat远程连接mysql很慢的方法

    ubuntu 下 /etc/mysql/mysql.conf.d [mysqld] skip-name-resolve  增加该字段即可 如果增加该字段,这无法使用本地ip进行登入, 登陆到MySql ...

  9. mysql镜像远程连接_Docker创建MySQL镜像并成功进行远程连接

    1.安装 1.1 拉取镜像 docker pull mysql 拉取成功可以验证一下 docker images 1.2 创建并启动一个 mysql 容器 docker run --name ly-m ...

最新文章

  1. hive数据导入导出
  2. asp.net控件开发基础(2)
  3. python创建变量score_关于Python创建类时的self参数和__init__
  4. Huntor中国CRM评估报告连载(一)
  5. 《信息处理技术员考试考前冲刺预测卷及考点解析》下午案例复习重点
  6. JVM-常用内存调优参数总结
  7. spring boot+mybatis+quartz项目的搭建
  8. 关于触摸屏触摸驱动安装步骤
  9. Android Studio高级使用技巧
  10. 域名解析到服务器ip,域名解析到服务器ip上无法访问的原因汇总
  11. dns劫持教您dns被劫持如何修复、dns劫持如何修复
  12. html 列表 表格 form表单 文本域 label
  13. 界面自动化测试工具-Ksend
  14. vue调倍速后声音变了_pr加速人声后声音变调失真怎么办?
  15. 使用Vue实现todos(Vue CLI和VueX)
  16. Vue3前端项目加载使用腾讯地图
  17. Markdown详细教程
  18. ce在科学计算机器是什么意思,计算器的ce键是什么功能
  19. 让单个单元格显示两个数据
  20. 格式化输出的三种方式

热门文章

  1. 海威超市播音易源码+成品
  2. Linux下为知笔记和蚂蚁笔记测评,推荐蚂蚁笔记!(非广告)
  3. vue,js,html三种文件之间是怎样的关系?
  4. THE TWELFTH DAY
  5. php写接口curd,接口实战(数据库的CURD操作)
  6. 资本/车企持续加码的新赛道,谁将成为本土赢家?
  7. CRect类基本介绍
  8. 腾讯云服务器的系统安装
  9. C/C++中*和的用法
  10. 国内首个隐私计算盛会闭幕,区块链与隐私碰撞,数据流动价值未来可期