当前位置:   article > 正文

windows公网ssh+vnc连接局域网内linux服务器_vnc公网访问

vnc公网访问

windows公网ssh+vnc连接局域网内linux服务器

因实际问题,需要在windows上远程公网访问linux服务器,同时包含部分界面操作,尝试实现一下。
目前的工具非常多,一般都是通过服务器中转从而提供连接服务,有流量劫持等风险。因此想linux做服务端,windows直接访问,这类软件中vnc较为常见,一般为局域网访问,但使用ssh为隧道可以实现公网远程访问。

环境:windows10,linux-ubuntu18.04桌面版本

1 ssh配置

1.1 windows ssh配置

windows下使用xshell作为连接工具,可百度下载。

1.2 Linux ssh配置

# 安装ssh服务端
sudo apt-get install openssh-server

# 开机自动启动ssh命令
sudo systemctl enable ssh

# 设置好后重启系统
reboot

#查看ssh是否启动,看到Active: active (running)即表示成功
sudo systemctl status ssh



# 查看ssh状态
sudo service ssh status
# 关闭ssh开机自动启动命令
sudo systemctl disable ssh

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

1.3 端口映射

Linux服务器在局域网内部,因此需要借助路由器或者光猫进行端口映射
——确认本机ip

ifconfig
  • 1

——本机IP地址如图:在这里插入图片描述

——输入网关地址进入路由器或者光猫管理页面 这里为192.168.0.1
进入之后输入密码登陆
转发规则
——设置端口映射规则
服务端口:设置一个设备没有占用的端口即可
内部端口:ssh的默认端口为22
IP地址:本机的局域网内地址
在这里插入图片描述

1.4 ssh连接

——查看本机公网地址

curl cip.cc #速度快
  • 1

——结果如图
在这里插入图片描述
根据显示可以得知自己的运营商,后续连接的时候用相应运营商的网络,速度会极大提高。

——得到地址之后可以进行ssh访问
在这里插入图片描述
在这里插入图片描述
——连接成功
在这里插入图片描述

1.5 针对上述连接不上的解决办法

按照上述操作,结果ssh连接不上;首先可以在windows下cmd打开命令行,使用ping命令测试一下,具体命令如下

ping IP地址 #ip地址为linux服务器端口映射出去以后的地址,而不是本地的局域网地址。这里为113.54.XX.XX
  • 1

如果发现ping不通,代表你处于的网络是设置了防火墙不允许外网访问,例如学校的教育网,公司的私有网络都是,都是设置了防火墙权限,但是当居家办公或者作业需要访问的时候学校或者公司都是开放了vpn,因此这里可以用这类软件解决。

笔者这里是使用的学校提供的vpn软件及easyconnect(根据实际情况下载),一定要下载客户端,只是网页不行,客户端会在本地虚拟一个网卡,给予本机一个地址,这个地址就具有访问内部网络的权限。
——如图
在这里插入图片描述

2 realvnc安装

2.1 下载linux服务端安装包

https://www.realvnc.com/en/connect/download/vnc/linux/

2.2 安装

sudo dpkg -i <p_name>
  • 1

在这里插入图片描述

2.3 基本配置

sudo vnclicense -add WHJRK-UXY7V-Q34M9-CZU8L-8KGFA //添加license
sudo systemctl enable vncserver-virtuald.service //开机自启动
sudo systemctl start vncserver-virtuald.service //开启服务
  • 1
  • 2
  • 3

2.4 查看状态

sudo netstat -lntp //查看正在监听的端口
  • 1

在这里插入图片描述
虚拟模式下,使用的端口为5999,另外该程序还监听了5902 6902端口(具体个人电脑可能会有不同),只要用监听的端口连接都可以成功;但是目前仅限于局域网。公网访问还需要进行隧道配置。

3 ssh隧道配置

3.1 隧道配置

windows下打开xshell;右击前面步骤1创建的ssh会话——点击隧道——点击添加
在这里插入图片描述
本地端口:任意,只要是windows没有使用的都可以,本次填写5999
目标端口:根据步骤2.4查看的该应用正在监听的端口来确定,本次填写5999
点击确定,及添加了一条转发规则

在这里插入图片描述
重新连接会话一次,即可看到转移规则下显示绿色
在这里插入图片描述

3.2 windows连接linux下vnc服务

——windows打开vnc viewer,点击file——点击new connections
在这里插入图片描述
——按照如下图片配置
vnc server:localhost::5999
name:随意
——点击ok
在这里插入图片描述
——点击continue
在这里插入图片描述
——输入linux用户的密码,并勾选上remember password
在这里插入图片描述

3.3 灰屏解决办法

经过查阅realvnc官方文档可知,18.04的gnomes桌面系统不兼容导致,因此安装另外的桌面系统即可,官方给出的三个桌面系统分别是:
在这里插入图片描述

官方文档解释:https://help.realvnc.com/hc/en-us/articles/360003474792-Why-does-VNC-Server-in-Virtual-Mode-on-Linux-appear-to-hang-or-show-a-gray-screen-

3.3.1 安装xface4

sudo apt-get update //更新源
sudo apt-get install xfce4 //安装桌面
  • 1
  • 2

3.3.2 修改vnc配置
——查看现有的桌面系统

grep Exec= /usr/share/xsessions/*.desktop
  • 1

在这里插入图片描述
——代开vnc配置文件

vim ~/.vnc/xstartup
  • 1

增加如下代码

#!/bin/sh
DESKTOP_SESSION=xfce
export DESKTOP_SESSION
startxfce4 //根据查看的现有的桌面系统来
vncserver-virtual -kill $DISPLAY
  • 1
  • 2
  • 3
  • 4
  • 5
reboot //重启系统
  • 1

系统重启后,先将ssh连接,在进行vnc连接,即可看到桌面
在这里插入图片描述

参考文献:

https://cloud.tencent.com/developer/article/1394134 //Linux环境下ssh的安装及使用
https://www.cnblogs.com/shuiche/p/6072724.html //service命令使用方法
https://help.realvnc.com/hc/en-us/articles/360016058212-How-do-I-adjust-the-screen-resolution-of-a-virtual-desktop-under-Linux-#for-users-running-xvnc-0-0 //分辨率调整文档
https://blog.csdn.net/weixin_31456563/article/details/116773021 //网络状态查看

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/714005
推荐阅读
相关标签
  

闽ICP备14008679号