How to Seed Two Synology NAS Devices (DSM 5.1) with Time Backup

EDIT – As of March 2016 and the advent of DSM 6.0 these instructions are no longer relevant.  Please use Synology’s new Hyper Backup replication feature.

The following are step by step instructions on how to perform the first copy of data from one Synology NAS to another via the Time Backup application with the goal of later installing one device remotely for scheduled incremental backups.

The Task:  Two Synology DSM 5.1 devices are to be paired with the Time Backup service so that one local device copies any new data (incremental) every night to the remote device installed off-site.  Normally the nightly incremental data transfers are not a lot of data, just any files that have been changed or added that day but the first copy or seed of the two devices is a lot of data and could take weeks to accomplish over the internet when encrypted transfer is enabled.  If the initial seed is interrupted, it has to be started again from scratch. The logical solution would be to accomplish the initial data seed while the two Synology NAS are side-by-side on the same local network.  But due to a limitation of Synology DSM 5.1 this is not easily accomplished.

The Problem:  When both NAS are installed on the same local network and the initial Time Backup task is created, you must define the location of the remote NAS.  Even if you input a fully qualified public domain name such as remote.snaz.synology.me it will still return the local netbios name with the local IP of the remote device such as REMOTE-SNAZ(192.168.1.15) but this cannot be changed later and will cause the Time Backup task to fail when the remote NAS is moved off-site.

The Solution:  By editing the local NAS hosts file we can prevent the device from using the local Netbios name during the initial seed.  After the local seed is completed and the remote NAS is installed off-site  the hosts file on the local NAS is reverted to default and it will then query the public internet DNS servers to find the remote NAS.  The scheduled incremental backups will now continue automatically.  Huzzah!

The Procedure:

  1. You need to have at least the remote device registered with a DDNS (Dynamic Domain Name Service) such as the free MyDS service provided my Synology.  You could also register it with your own domain, the goal is to have the device publicly addressable via a hostname.  In these instructions the local and remote NAS are registered repsectivly as local.snaz.synology.me and remote.snaz.synology.me You can sign up for the free Synology DDNS service here.  You will need to open the ports on your routers as per the usual instructions from Synology for setting up Time Backup.
  2. This next step will illustrate how to edit the hosts file on the local NAS. WARNING – EDITING FILES ON THE NAS COULD HARM YOUR DEVICE – I AM NOT RESPONSIBLE.  YOU HAVE BEEN WARNED.
  3. We need to prevent the local NAS from using the Netbios name and IP address of the remote NAS when it is installed locally, this is accomplished by creating an entry in the hosts file that maps the external hostname of the remote device to the temporary local IP address.  Once the data seed is completed and the remote device is installed off-site, the changes to the hosts file are reversed so that the local NAS can query the Internet to find the remote device normally.
    1. Enable SSH/Telnet in Control Panel.. Terminal & SNMP.  Download and install the free SSH tool PuTTY from here: http://www.putty.org/
    2. With PuTTY log into the Local NAS via is it’s local IP.  Username must be root and the password is your admin password.
    3. Type cd /etc <press enter>
    4. Type cp hosts hosts.bak <press enter> This makes a backup copy of the hosts file which can be used in case you make a mess of the hosts file.
    5. Use the built in file editor vi to edit the hosts file, see here for vi instructions if needed.
    6. Type vi hosts <press enter>
    7. The vi editor should load the un-edited hosts file and look something like this:synology-hosts
    8. Press the <INSERT> key on your keyboard to begin editing, use the arrow keys to navigate to end of the last line and press the <ENTER> key to begin a new line, sometimes the last character gets cut-off, clean this up before saving.
    9. On the new line type local IP address of the remote NAS followed by the external hostname, see below.  This hostname is the external name that identifies the remote device on the Internet, in my example I am using the Synology.me DDNS service.  If you make a mistake and want to try again, quite vi without saving by typing <ESC> key :q! <press enter>synology-edit-hosts
    10. Once the hosts file has been edited, save by typing <esc> key :wq!
    11. Test by pinging the external hostname, you should get the local IP you defined in the hosts file as a response.  Example: Type ping remote.snaz.synology.me <press enter>  Stop the pings with <CTRL> + C. The local NAS is now ready for the initial seed with the two devices side-by-side on the same local network.synology-hosts-ping
  4. Create the Time Backup task on the local NAS using the public hostname defined earlier as the destination.  No need for transfer encryption at this point as it is not needed and will dramatically slow down the data transfer.  After the initial seed is complete, try another backup and confirm the incrementals are working, the incremental backup should complete in a fraction of the time compared to the initial copy.
  5. Install the remote NAS at it’s off-site location and configure the local firewall with the correct ports as per Synology documentation and confirm the hostname and IP are correct with the DDNS service.
  6. On the local NAS turn on trsansfer encryption in the Time Backup Task and configure the local firewall as per the Synology documentation.
  7. You must undo the changes made to the hosts file on the local device.
    1. Using PuTTy log into the local NAS as per step 3 above.
    2. Type cd /etc <press enter>
    3. If you made a copy of the hosts file as per step 3, just copy it back over the existing hosts file with cp hosts.bak hosts <press enter>  or edit the hosts file to remove the entry of the remote hostname and the local IP.
    4. Test that local NAS has updated the hostname to the public Internet IP by pinging the hostname: Example: Type ping remote.snaz.synology.me <press enter>  Stop the pings with <CTRL> + C.  The remote device does not have to respond to the pings but you should see the new public Internet IP.
  8. Turn off SSH/Telnet in Control Panel.
  9. Finished!

7 Responses so far.

  1. Peter says:

    Have implemented this and the only problems are:
    1. Time Backup uses the Admin account on both NASs and Synology themselves recommend you disable the Admin account for security reasons.
    2. Time Backup is hard-coded to used port 22 (SSH). If you port-forward port 22 on your remote router to the NAS then you are creating a security risk. SSH scanners are searching for an open port 22 and it is not long before you get a security email from your NAS indicating that it has blocked an IP address after 5 failed attempts (configurable).
    3. If you do not forward port 22 (on the remote router) to the NAS Time Backup fails.
    4. Synology have indicated years ago (elsewhere) that it needed to update Time Backup, but as yet this has not happened… Sept 2015.

    • Keith Snazel says:

      I agree on all points. In fact when I called Synology to get help the tech hinted that Time Backup is no longer being developed and I expect it will dropped completely soon. Will they replace it with something better? Lets hope.

  2. Eric Allen says:

    I wanted to thank you for these awesome instructions. I also wanted to comment that they are no longer necessary on the latest version of DSM. You can now open backup and click on backup destination. You can then select the destination and select edit. From there you can change the IP address or server name to whatever you want. One note, you have to use the full server name like XXXXX.synology.me

    Thanks again, and I hope I can be of help to someone.

  3. Peter says:

    Update on my efforts to Time Backup to backup a local NAS to a remote NAS over the Internet:

    1. Installed OpenVPN Server on the remote NAS;
    2. Forwarded port 1194 on the remote router to the NAS LAN IP address (e.g. 192.168.x.x);
    3. Edited the local NAS tasks.conf as indicated here: http://keystoneisit.blogspot.com.au/2013/09/synology-time-backup-trick.html and changed the Destination IP address in Time Backup to the VPN Host address (e.g. 10.8.0.1);
    4. Downloaded the Certificate generated by OpenVPN;
    5. Configured OpenVPN on the local NAS under Control>Network>Network Interface>Create VPN Profile using the Certificate, connecting to xxxxx.synology.me (remote NAS), providing User Name and Password.

    It works… you just have to check the VPN has established a connection before the scheduled backup.

    I think Time Backup is really designed to work on LANs and so a VPN is the next best thing.

  4. Peter says:

    With the advent of DSM 6 I have switched to the use of Hyper Backup instead of Time Backup (I think there will be limited support for Time Backup in the future). I found that after several backups (3 to 10) I would get the error “failed to copy files” and have to delete the backup and start again.

    Hyper Backup is more flexible and allows you to backup locally (local LAN) and then change the destination (Target) of the backup to a VPN Host connection (e.g. 10.8.0.1 as indicated above). Also it is not hard coded to use the Admin account.

    • Keith Snazel says:

      Thank goodness. When I first talked to Synology about this issue the tech hinted that Time Backup was due to be deprecated. I will add a not to the top of this post indicating this is workaround is no longer required after DSM version 6. Cheers!

Leave a Reply

Your email address will not be published. Required fields are marked *