• Debian 8下设置VNC


    【官方原文】

    How To Set Up VNC Server on Debian 8

    Introduction

    VNC (Virtual Network Computing) is a system that enables users to connect and interact with graphical desktops of remote computers. It can transmit screen updates, and keyboard and mouse events, over the network.

    VNC is useful when you need a graphical desktop environment for your server.

    XFCE is a lightweight desktop environment. Because it has low system resource requirements, and because many VNC users are familiar with it, we will use XFCE in this tutorial. However, you can also use your favorite desktop environment, such as Gnome or KDE, instead.

    In this tutorial we will set up a Debian 8 server, install the XFCE desktop environment on it, and connect it to via VNC. Additionally, we will create a startup script for VNC Server and secure it over SSH.

     

    Prerequisities

    Please complete the following prerequisites.

    • Debian 8 (or 8.1) Droplet with root access. 512 MB of RAM is enough to run VNC and XFCE, but you might need a bigger Droplet depending on what you plan to do with the graphical interface
    • VNC viewer (client) on your computer to connect to your server. In this tutorial, we will use UltraVNC on Windows, but you can use other VNC clients. You can download UltraVNC here. OS X comes with a built in VNC client called Screen Sharing
    • SSH client to establish a secure connection over SSH. We will use PuTTY for Windows. You can download PuTTY here. On OS X, just use the built in Terminal application
     

    Step 1 — Installing VNC and XFCE

    In this step, we will install VNC Server and the XFCE desktop environment, with additional software and an icon pack.

    Update your server's package lists:

    • apt-get update

    Upgrade the packages themselves:

    • apt-get -y upgrade

    Then, we will install tightvncserver and XFCE4 with some useful add-ons, and an icon theme:

    • apt-get install xfce4 xfce4-goodies gnome-icon-theme tightvncserver

    By default there is no browser installed. You can install iceweasel (which is a rebranded version of Mozilla Firefox for Debian) if you want to access the web from your VNC connection:

    • apt-get install iceweasel
     

    Step 2 — Creating a VNC User

    We will create a separate user for VNC connections, to keep things secure and tidy. Using sudo is highly recommended, instead of using the root user directly for your VNC server.

    You can add a user named vnc to your Debian Droplet by using this command:

    • adduser vnc

    Give a password to your new user. You can skip all other questions by simply pressing ENTER.

    Install sudo by executing this command:

    • apt-get install sudo

    Add your new vnc user to the sudo group, which will give permissions to that user to execute root commands.

    • gpasswd -a vnc sudo

    Let's switch to the vnc user:

    • su - vnc
     

    Step 3 — Starting and Stopping Your VNC Server

    As our newly created vnc user, we can start VNC Server and test our connection.

    Start VNC Server:

    • vncserver

    As it is your first time running the server, you will be asked to set a password that clients will use to connect. Keep this password in mind for later! You can also set a view-only password, which will allow users to see the screen but not interact with it. Passwords should be 6-8 characters.

    You will get a notice about your display number when the server is started.

    Output
    xauth:  file /home/vnc/.Xauthority does not exist
    
    New 'X' desktop is vnc:1
    
    Creating default startup script /home/vnc/.vnc/xstartup
    Starting applications specified in /home/vnc/.vnc/xstartup
    Log file is /home/vnc/.vnc/vnc:1.log
    

    By default, VNC connections are served on ports starting at 5901 for the first display. Your second display will be served on port 5902, etc.

    Don't stop the server now, but we're including the stop command for reference.

    Use this command to stop your VNC server on Display 1 (and port 5901):

    • vncserver -kill :1

    :1 is the display number you want to kill.

    You can start VNC Server manually when you want to connect again. We'll create a service for VNC Server in a later step.

     

    Step 4 — Connecting from a VNC Client

    You can now connect to your VNC server. Open your local VNC client, which will vary depending on your operating system.

    On Windows, you can use UltraVNC here.

    On OS X, you can use the built-in Screen Sharing app or access this app through Safari. In Safari, you can enter vnc://yourserverip:5901

    For your VNC Server address, enter yourserverip:5901 and use the password you just set for your VNC connection.

    You can select the Use default config button on the XFCE welcome screen to get started easily:

    Now you can use your remote desktop!

     

    Step 5 — Creating a systemd Service to Start VNC Server Automatically

    In this section we'll add VNC Server to systemd. Using a service can be useful to start and stop your VNC server, and also to start it automatically when your Droplet is rebooted.

    First, let's kill the current instance:

    • vncserver -kill :1

    Create a simple script to manage and configure our VNC server easily:

    As the vnc or other sudo user, create a script file by using your favorite text editor.

    • sudo nano /usr/local/bin/myvncserver

    Add these contents exactly. This script provides VNC with a few parameters for startup.

    /usr/local/bin/myvncserver
    #!/bin/bash
    PATH="$PATH:/usr/bin/"
    DISPLAY="1"
    DEPTH="16"
    GEOMETRY="1024x768"
    OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
    
    case "$1" in
    start)
    /usr/bin/vncserver ${OPTIONS}
    ;;
    
    stop)
    /usr/bin/vncserver -kill :${DISPLAY}
    ;;
    
    restart)
    $0 stop
    $0 start
    ;;
    esac
    exit 0
    

    You can modify the script to change the color depth or resolution of your VNC connection.

    If you are using nano, you can save the file via CTRL+O and exit via CTRL+X.

    Make the file executable:

    • sudo chmod +x /usr/local/bin/myvncserver

    Our script will help us to modify settings and start/stop VNC Server easily.

    If you'd like, you can call the script manually to start/stop VNC Server on port 5901 with your desired configuration.

    • sudo /usr/local/bin/myvncserver start
    • sudo /usr/local/bin/myvncserver stop
    • sudo /usr/local/bin/myvncserver restart

    We can now create a unit file for our service. Unit files are used to describe services and tell the computer what to do to start/stop or restart the service.

    • sudo nano /lib/systemd/system/myvncserver.service

    Copy these commands to the service file. Our service will simply call the startup script above with the user vnc.

    /lib/systemd/system/myvncserver.service
    [Unit]
    Description=Manage VNC Server on this droplet
    
    [Service]
    Type=forking
    ExecStart=/usr/local/bin/myvncserver start
    ExecStop=/usr/local/bin/myvncserver stop
    ExecReload=/usr/local/bin/myvncserver restart
    User=vnc
    
    [Install]
    WantedBy=multi-user.target
    

    Now we can reload systemctl and enable our service:

    • sudo systemctl daemon-reload
    • sudo systemctl enable myvncserver.service

    You've enabled your new service now. Use these commands to start, stop or restart the service using the systemctl command:

    • sudo systemctl start myvncserver.service
    • sudo systemctl stop myvncserver.service
    • sudo systemctl restart myvncserver.service

    Now you can run VNC Server as a service on your Droplet.

     

    Step 6 — Securing Your VNC Server with SSH Tunneling

    By default VNC connections don't use encryption, so it is recommended to use an SSH Tunnel to secure your session.

    To do that, we will only let our VNC server serve on localhost.
    You can do that by adding -localhost to the OPTIONS line in the startup script created in the previous step.

    First, stop the VNC server:

    • sudo systemctl stop myvncserver.service

    Edit your configuration script:

    • sudo nano /usr/local/bin/myvncserver

    Change this line:

    /usr/local/bin/myvncserver
    . . .
    
    OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
    
    . . .
    

    Replace it with:

    /usr/local/bin/myvncserver
    . . .
    
    OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost"
    
    . . .
    

    Restart the VNC server:

    • sudo systemctl start myvncserver.service

    Now you can't directly connect to your VNC server from your remote computer.

    Windows:

    We will use PuTTY to create an SSH Tunnel and then connect through the tunnel we have created.

    Open PuTTY.

    From the left menu, go to the Connection->SSH->Tunnels section.

    In the Add New Forwarded Port section, enter 5901 as Source port and localhost:5901 as Destination.

    Click the Add button.

    You can now go to the Session section in the left menu.

    Enter your Droplet's IP address in the Host Name (or IP address) field.

    Click the Open button to connect. You can also save these options for later use.

    Log in with your vnc user.

    Keep the PuTTY window open while you make your VNC connection.

    Now you can use your VNC viewer as usual. Just enter localhost::5901 as the address, and keep your SSH connection live in the background.

    OS X:

    To establish an SSH tunnel, use the following line in Terminal:

    ssh vnc@your_server_ip -L 5901:localhost:5901
    

    Authenticate as normal for the vnc user for SSH. Then, in the Screen Sharing app, use localhost:5901.

     

    Conclusion

    Now you can use a shared remote desktop on your Debian 8 server.

    Use it to configure your server, or share your screen with others.

  • 相关阅读:
    angular 中同级元素交替样式
    Type反射遍历类的属性
    对路径“xxxxx”的访问被拒绝。
    判断文件路径和文件是否存在
    List集合删除方法
    .NET 树型递归
    AngularJS使用ngMessages进行表单验证
    Windows 端口占用查询
    小程序页面高度控制
    如何理解多个域名解析到同一个服务器空间上?
  • 原文地址:https://www.cnblogs.com/kuboy/p/8618116.html
Copyright © 2020-2023  润新知