Skip to content

Latest commit

 

History

History
309 lines (182 loc) · 19 KB

README.md

File metadata and controls

309 lines (182 loc) · 19 KB

PLEASE READ!

I am not in any way affiliated with DWService! The files in this repository are simply my own notes for using DWService. Please don't open any issues or post questions about DWService here. Instead, contact DWService directly for support.

Computer Remote Control using DWService

VERSION: 20211210

AUTHOR: Steve Magnuson, AG7GN

DWService is an open source project that allows access to remote computers (Windows, Mac, Linux, Raspberry...) using a standard web browser - without any special software required on the client side. Wherever you may be in the world, you may need to access your home computer. You can start the web browser from any device to connect to DWService website and immediately gain control of the computer (Screen + Files + Running processes). DWService is a "cloud brokered" service, meaning that you connect to the computer you want to control through another computer "in the cloud".

DWService is an alternative to VNC and TeamViewer.

Terminology

  • DWService

    DWService is the name of the service. You access the service via an account on the DWService website. Through your account, you can set up one or more computers that you can control from a remote location. You can also selectively make your computers available for other DWService users to access and control. You can control computers other DWService users have share with you.

  • DWAgent

    The DWAgent is the software that runs on the computer you want to control. DWAgents are available for Windows, Linux, Mac and Raspberry Pi computers, among others.

  • Server

    In this document, the server refers to the computer being controlled. The server software is the DWAgent.

  • Client

    In this document, the client refers to the computer controlling the server. In DWService, the client software is a web browser.

Differences Between VNC (free account) and DWService

  1. DWService has no restrictions on the number of hosts you can remotely access. VNC has a 5 host limit for the free account.
  2. DWService allows you to share access to your hosts with an unlimited number of other users. VNC limits sharing to 2 other users for the free account.
  3. The DWService client is a standard web browser, so no additional software is needed on the client. VNC requires software on the client.
  4. DWService is free with the option of paying a subscription fee for greater bandwidth. Please support DWService if you find it useful!
  5. You may notice when using DWService that the screen you are controlling is somewhat slow to respond. VNC is faster, but DWService is very usable.
  6. DWService ONLY works via the "cloud". VNC can work directly to the host you want to control or via the cloud. I use both: VNC for situations where the client and server are both on my network and DWService for situations where I want to control hosts that are not on my network.
  7. VNC has a chat feature that allows multiple users who are controlling the same computer to communicate with each other using a chat window. DWService does not have this feature.
  8. VNC allows you to copy/paste from your client to the computer you are controlling. In DWService, copy/paste only works when the computer being controlled is running Windows.
  9. Both services allow multiple clients to control a computer at a time. However, only VNC provides a way for connected users to see how many users are connected and who they are.

Initial Setup

Establish a DWService Account

Create Your Account

  1. Create an account at DWService.

    Follow the instructions on the web page to set up your account. You will be emailed a code that you must enter on the DWService sign-up web page to complete your account setup.

  2. Log in to your account.

    Once you've set up your account, login to DWService.

  3. Configure your account.

    Click My Account and select the type of account (Personal or Company/Organization) and provide whatever other information you want to enter. For most users, "Personal" is the best choice. Click Update Account when done. Click the Home icon to return to the home page.

  4. For WECG Members:

    If you want to be added to the WECG group, which allows you to control certain computers managed by WECG, send the email address you used for your DWService account to w7ecg.wecg@gmail.com. You'll get a reply from w7ecg.wecg@gmail.com with information about accessing/controlling WECG computers. Note that this is NOT an automated reply! It might take a day or 2 for me to check the account and add you to the group, so don't expect an immediate email reply.

    Once I add you to the WECG group and you receive a confirmation email from w7ecg.wecg@gmail.com, log in to DWService. Your DWService page will show a red square with a number in it on top of the Bell icon in the upper right corner indicating you have one or more messages waiting.

    If you see a message waiting:

    1. Click on the Bell and click Accept.
    2. Click Yes in the "Do you want to accept..." dialog window.
    3. Go to back to the Home page and click Shares, then Incoming Shares. You should see the WECG computers you can control listed there. You can now remotely connect to any of those computers that show "available" status by clicking on it.

    Skip to the Access and Control Remote Computers section in this document for more information on controlling remote computers.

  5. If you aren't interested in remotely controlling your own computers with DWService, skip to the Access and Control Remote Computers section in this document.

OPTIONAL - if you want to control your own computers with DWService: Create Agents

  1. If you aren't already, log in to DWService.

  2. On your Home page, click Agents.

  3. Click + to add a new agent. Enter a name meaningful to you (to identify a particular computer you want to control) and optionally a description for this agent. Leave the Group field empty for now. Click Confirm to finish.

    Repeat this step for as many agents you want to make. Each agent corresponds to a computer you want to remotely control.

  4. IMPORTANT: In the lower right corner of each agent "box" is an install code. You'll need that when you install the agent on the computer you want to control.

  5. Click the Home icon to go back to your Home page.

OPTIONAL: Create Agent Groups (If you want to control your own computers with DWService)

Agent Groups allow you to put certain agents (remotely controlled computers) into groups. An agent can be in none or one Agent group.

  1. From the Home page, click Groups.
  2. Click +. Give your group a name and optionally a description. Click Confirm when done. Repeat this step for as many groups as you want to create.
  3. Go back to the Home page.
  4. In each of your Agent's boxes, you'll see three vertical dots (this is called a 'kebab') near the top. Click the kebab and select Edit.
  5. The Group you created earlier should now be available in the dropdown selection. Select the group you want this agent to be in, then click Confirm. Repeat this step as desired for your other Agents.

OPTIONAL: Create Contacts (If you want to allow other users to control your computers)

Contacts are the email addresses of other DWService users. The email address of the contact must be the email address that person used to create their DWService account.

  1. From the Home page, click Contacts.
  2. Click +. Enter the DWService account email address of the other user. Optionally assign the user to one of the groups you created, and enter a description (for example, the user's full name and call sign). Click Confirm. Repeat this step for each DWService user you want to add as a contact.
  3. Once you've created a contact, you'll notice that that contact's box will display waiting in the lower right corner.

OPTIONAL: Create Outgoing Shares (if you want to allow other users to control your computers)

Shares are collections of Agents that you make available for others to control (Outgoing shares) or other users have made available for you to control (Incoming shares).

  • Outgoing Shares

    1. From the Home page, select Shares. Click Outgoing.
    2. Click + and select the Type, either an individual agent or a group of agents.
    3. Select the Agent or Agent Group, optionally check the box and give it a Display Name, and optionally give it a Description. Click Next.
    4. Uncheck Full Access. Check Screen. Click Next.
    5. Check Myself Enable. Check Contacts Enable.
    6. Click + next to Contacts Enable. Select an individual contact or contact group. Repeat this step for other contacts or groups.
    7. Click Next. Check Validity Always, or uncheck it and select the start and end dates/times.
    8. Click Confirm. Click Close to close the "This operation completed successfully" window.
    9. When a user you've assigned to an Outgoing Share logs in to their DWService account, They'll see a bell with a red box with a number in it, indicating one or more messages are waiting. When they click on the Bell, they can Accept or Reject the Share. Your outgoing share becomes their incoming share.

OPTIONAL: Install Agents (If you want to control your own computers with DWService)

Follow these steps if you want to remotely control your computers. For each computer you want to control, you'll download and install a DWAgent on that computer.

  1. On the computer you want to control, open a web browser and go to the download page at DWService.

  2. Select the DWAgent download appropriate for the computer you are on (the computer you want to control). Again, MAKE SURE YOU SELECT THE RIGHT DOWNLOAD for the computer you want to control! It's easy to pick the wrong one! Click DOWNLOAD and follow the prompts.

  3. Locate the downloaded file on your computer and install it in the same way you install other downloaded software. If there are installation notes included in the download, be sure to read them for important information about installing/using DWAgent your particular computer's operating system.

    At some point in the installation process, you'll be asked to do either:

    • Enter the installation code, or
    • Create a new agent

    Select Enter the installation code, and supply the installation code for the agent you created in the Create Agent procedure described earlier.

    • Installing the DWAgent on Raspberry Pi and Linux is a somewhat special case and described here:

      1. Open a browser on the Pi or Linux host on which you want to install the DWAgent.

      2. Go to https://dwservice.net and in the Download box, click "Click here". DO NOT click the Download button - it may download the wrong file!

      3. You should now see the Download screen. Locate the Raspberry ARM or Linux x86 (depending on what kind of computer you have) download on that screen, and click it's DOWNLOAD button.

      4. This will save a file called dwagent.sh in your Downloads folder.

      5. Open a terminal and run these commands:

         cd Downloads
         chmod +x dwagent.sh
         sudo ./dwagent.sh
        
      6. Select 1. Install when prompted.

      7. Accept default for Path.

      8. Select 1. Yes for the "Do you want to install..." question.

      9. Select 1. Entering the installation code.

      10. Enter the install code for the agent you created for this Raspberry Pi in the Create Agents section of this document.

      11. The script should finish the installation and start the DWAgent. Close the Terminal window and close the Chromium browser window.

  4. Follow the prompts to complete the installation.

    OPTIONAL: Run the DWAgent as a Regular User on Linux

    By default, the dwagent runs as root, so that when you start a shell in the DWService web interface, you get a root shell. That's not good. Here's how to run the dwagent as another user. We'll use user bob in this example, and bob has sudo privileges.

    1. Install the agent on your Linux host in the usual way as described above.

    2. Stop and disable the service:

       sudo systemctl stop dwagent.service
       sudo systemctl disable dwagent.service
      
    3. Make a folder for user level services and move the service file into it. Run these commands as user bob:

       cd ~
       mkdir -p .config/systemd/user
       cd .config/systemd/user/
       sudo mv /etc/systemd/system/dwagent.service .
       sudo chown bob:bob dwagent.service
      
    4. As user bob, open dwagent.service in an editor and change this line:

       WantedBy=multi-user.target
      

      to:

       WantedBy=default.target
      

      Alternatively, you can make the above change by running this command (no editor needed):

       sed -i 's/WantedBy=multi-user.target/WantedBy=default.target/' ~/.config/systemd/user/dwagent.service
      
    5. Change the ownership of the /usr/share/dwagent folder and everything in it to user bob:

      sudo chown -R bob:bob /usr/share/dwagent
      
    6. Allow user bob to autostart services even if not logged in:

      sudo loginctl enable-linger bob
      
    7. Enable and start the user service as user bob (not as root):

       systemctl --user enable dwagent.service
       systemctl --user start dwagent.service
      

      If you get an error message that says Failed to connect to bus: No such file or directory, then run the above systemctl commands like this instead:

       XDG_RUNTIME_DIR=/run/user/$UID systemctl --user enable dwagent.service
       XDG_RUNTIME_DIR=/run/user/$UID systemctl --user start dwagent.service
      

      From now on, the dwagent.service will start as user bob at bootup, and if you open a shell in the DWService web interface, it'll be bob's shell, not root's.

      You'll notice that the shell won't have bob's environment when the shell starts. To fix, run su - bob.

  5. Start your DWAgent.

    Raspberry Pi and Linux

    • Assuming you installed as described above, the agent runs automatically in the background. Nothing more for you to do.

    Apple Mac

    • Locate the DWAgent.app in your Applications folder and double-click it to run it. Follow the prompts for further configuration. FYI - I've found the Mac agent to be lacking.

    Windows

    • Left as an exercise for the reader.

Access and Control Remote Computers

This section describes how to access and control remote computers using the DWService.

  1. Log in to your DWService account.

  2. Computers that you own and have set up with Agents are listed under Agents. Computers that other DWService users have made available to you are shown in Incoming Shares.

    • Incoming Shares

      Agents that appear here are ones that other DWService users have shared with you.

      If another DWService user has newly added you to one of their outgoing shares, your DWService page will show a red square with a number in it on top of the Bell icon in the upper right corner indicating you have one or more messages waiting.

      If you see a message waiting:

      1. Click on the Bell and click Accept.
      2. Click Yes in the "Do you want to accept..." dialog window.
      3. Go to back to the Home page and click Shares, then Incoming Shares. The Agent the other user shared with you should be listed there, and if the DWAgent is running on that remote computer, the Agent box should say available. You can now remotely connect to that computer. More than one Agent may be listed if the other user shared a group with multiple computers. If the Agent on the remote computer is not running, it will show up as unavailable in your DWService Incoming Shares web page.
  3. Locate the computer you want to control under Agents (for your own computers) or Incoming Shares (for computers shared with you). Make sure it's status is Available.

  4. Click on the Agent's name. You'll see 2 tiles: Files and Folders and Screen.

    • Screen

      1. Click the Screen tile.
      2. After a few seconds, the screen of the remote computer should appear in your browser.
      3. There are some controls at the top that allow you to make the remote computer's screen full screen on your computer, select a different display on the remote computer (if the remote computer has more than one monitor), among other things. Hover your mouse over these controls to see what they do.
      4. To exit a remote control session, click on the circle with the arrow icon in the upper right corner.
    • Files and Folders

      1. Click the Files and Folders tile.
      2. You now have access to the files and folders of the remote computer. PLEASE BE CAREFUL not to delete any folders or files unless they are your own.
      3. You can navigate into any folder, at which time you'll see some new icons appear near the top of the page. The two cloud icons allow you to transfer files between your PC and the remote computer. The Cloud icon with the Up arrow allows you to upload files TO the remote computer. The Cloud icon with the Down arrow allows you to download files FROM the remote computer. Again, be careful not to delete any files that are not your own.
      4. To exit a remote control session, click on the circle with the arrow icon in the upper right corner.
  5. At any time, you can return to the top level page for this remote computer by clicking the blue tile with the 9 dots in the upper left.

Notes

DWAgent does not display desktop on Linux hosts with only Python3 installed

Solution: remove agent, install Python2 and re-install agent

  1. Remove dwagent if you've already installed it

     sudo /usr/share/dwagent/native/dwagsvc stop
     sudo /usr/share/dwagent/native/dwagsvc delete
     sudo rm -r -f /usr/share/dwagent
     sudo rm -f /etc/dwagent
    
  2. Install Python2

    sudo apt -y install python2
    
  3. Install dwagent as per the instructions

Cut/Copy/Paste to/from remote Linux hosts

At this time, cut/copy/paste between the client (your web browser) and the server (the computer you are controlling) only works when the remote computer is running Windows. However, if you open a shell in the DWService web interface, you can cut/copy/paste between that shell and client.

XWayland

DWService does not work with XWayland. If you see Error: XWayland is not supported when connecting to the DWService Screen of a remote Linux host, here's the fix:

  1. Open the Shell for this remote host in DWService, or open Terminal if you are directly connected to this host or open an SSH session to the remote host.

  2. As root (sudo), edit /etc/gdm3/custom.conf and change this line:

     #WaylandEnable=false	
    

    to:

     WaylandEnable=false
    
  3. Save and exit your editor, then reboot the remote host.