noVNC访问内网的vncserver

noVNC提供在通过html页面上访问vncserver提供的vnc服务,网页就是一个客户端,无需单独安装vnc客户端。

noVNC服务器

  1. 在启用novnc服务的系统上安装noVNC

  2. 启动novnc

    示例:

    #cd到noVNC文件夹
    #默认监听 localhost:5901上的vnc web服务监听6080端口
    ./utils/launch.sh  #web浏览器访问 http://该服务器地址:6080/vnc.html
    #监听192.168.0.2:5901的vnc  #web浏览器访问 http://该服务器地址:8080/vnc.html
    ./utils/launch.sh --vnc 192.168.0.2:5900 --listen 8080
    
    ./utils/launch.sh --vnc *:5901 --listen *:8080
    
    #如果是archlinux安装novnc的aur,使用novnc命令代替./utils/launch.sh
  3. nginx(可选)
    参看novnc-nginx

vnc服务器

  1. 位于内网的服务器上安装vncserver,例如TigerVNC、ultraVNC(windows)、turboVNC等。
  2. 启用vnc服务

    windows上开启软件即可,监听端口默认是5900。~~~~

    linux上参看archlinux-wiki-vnc
    示例:

    vncpasswd #设置密码
    
    #虚拟会话 每个会话的画面不同 相互独立
    vncserver  #一般默认监听5901端口
    vncserver :2  #指定监听到会话2 端口应该是5902
    
    #实际物理画面 显示器的画面 所有连入看到的画面一样
    #display :0是第一个物理显示器
    x0vncserver -rfbauth ~/.vnc/passwd -display :0

3.转发vnc端口到noVNC服务器
在noVNC服务器上监听6081端口的vnc

./utils/launch.sh --vnc *:6081 --listen 6080

以下实例中均转发vncserver的端口到noVNC的6081端口,这样就能从web页面的noVNC连接到vncserver上。

可用多种方案,例如:

  • ssh(vncserver和noVNC server均是linux/mac/unix等时,直接ssh比较简单,一般ssh都预装,无需安装额外工具)

    ssh -gfCNR 6081:localhost:5900 user@server1 -p 22

    f 后台运行
    N 不执行远程命令(一般使用转发时要使用该选项)
    C 启用压缩(可选,网络不好时可提升一点效率)
    R 远程转发
    g 允许远程主机连接本地转发端口( 或者在server1上的sshd_config中配置GatewayPorts yes

    转发本机5900端口到远程主机server的6081端口,user是sserver1上的用户。

  • frp等工具(其他例如ngrok,localtunel等)转发vncserver的5900到noVNC服务器的6081端口。

你可能感兴趣的:(vnc,穿透)