<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Home on Packetville</title>
    <link>/</link>
    <description>Recent content in Home on Packetville</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 11 Nov 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>DSM&#39;s TCP Stack Is Limiting Your Remote Access Speed</title>
      <link>/docs/synology/nas-remote-performance/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/synology/nas-remote-performance/</guid>
      <description>&lt;h1 id=&#34;dsms-tcp-stack-is-limiting-your-remote-access-speed&#34;&gt;DSM&amp;rsquo;s TCP Stack Is Limiting Your Remote Access Speed&lt;a class=&#34;anchor&#34; href=&#34;#dsms-tcp-stack-is-limiting-your-remote-access-speed&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;the-problem&#34;&gt;The Problem&lt;a class=&#34;anchor&#34; href=&#34;#the-problem&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;DSM uses CUBIC, Linux&amp;rsquo;s default TCP congestion algorithm. CUBIC treats dropped packets as a congestion signal and cuts its send rate hard. Packet loss on normal internet connections triggers this constantly, so CUBIC oscillates: brake, ramp up, brake again. The result is a connection sitting at a fraction of what your bandwidth can deliver. This is a kernel-level limitation. No amount of DSM tuning fixes it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Part 1 - Overview and Architecture</title>
      <link>/docs/synology/offsite-backup-rsyncd/part-1-overview-and-architecture/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/synology/offsite-backup-rsyncd/part-1-overview-and-architecture/</guid>
      <description>&lt;h1 id=&#34;part-1---overview-and-architecture&#34;&gt;Part 1 - Overview and Architecture&lt;a class=&#34;anchor&#34; href=&#34;#part-1---overview-and-architecture&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;Before touching any commands, it helps to understand what we are building and why. This page covers the architecture, the problem it solves, and the two-phase approach this guide takes.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;what-we-are-building&#34;&gt;What We Are Building&lt;a class=&#34;anchor&#34; href=&#34;#what-we-are-building&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The goal is an offsite backup destination for Synology Hyper Backup using a Linux server running rsyncd.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Home network                          Offsite location&#xA;┌──────────────────┐                 ┌──────────────────────────────┐&#xA;│                  │                 │                              │&#xA;│  Synology NAS    │── VPN ────────► │  Linux server (rsyncd)       │&#xA;│  Hyper Backup    │                 │      │                       │&#xA;│                  │                 │      ▼                       │&#xA;└──────────────────┘                 │  USB hard drive              │&#xA;                                     │  /mnt/backup_hdd             │&#xA;                                     │                              │&#xA;                                     └──────────────────────────────┘&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The Linux machine can be a dedicated server, a repurposed PC, or a virtual machine. It needs storage and network access. That is it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Part 2 - Drive Setup</title>
      <link>/docs/synology/offsite-backup-rsyncd/part-2-drive-setup/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/synology/offsite-backup-rsyncd/part-2-drive-setup/</guid>
      <description>&lt;h1 id=&#34;part-2---drive-setup&#34;&gt;Part 2 - Drive Setup&lt;a class=&#34;anchor&#34; href=&#34;#part-2---drive-setup&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;If you haven&amp;rsquo;t already, read &lt;a href=&#34;../part-1-overview-and-architecture&#34;&gt;Part 1 - Overview and Architecture&lt;/a&gt; before continuing. This part covers preparing the external hard drive and setting up the folder structure on the Linux server. For Phase 1, this server lives on your LAN.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Environment used in this guide:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Setting&lt;/th&gt;&#xA;          &lt;th&gt;Value&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;OS&lt;/td&gt;&#xA;          &lt;td&gt;Ubuntu Server&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;User account&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;archive&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Server hostname&lt;/td&gt;&#xA;          &lt;td&gt;&lt;code&gt;rsync-server&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;prepare-the-hard-drive&#34;&gt;Prepare the Hard Drive&lt;a class=&#34;anchor&#34; href=&#34;#prepare-the-hard-drive&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;identify-the-drive&#34;&gt;Identify the Drive&lt;a class=&#34;anchor&#34; href=&#34;#identify-the-drive&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Plug in your USB hard drive and confirm it connected at USB 3.0 speed (5000M). If it shows 480M, try a different port.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Part 3 - rsyncd Configuration</title>
      <link>/docs/synology/offsite-backup-rsyncd/part-3-rsyncd-configuration/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/synology/offsite-backup-rsyncd/part-3-rsyncd-configuration/</guid>
      <description>&lt;h1 id=&#34;part-3---rsyncd-configuration&#34;&gt;Part 3 - rsyncd Configuration&lt;a class=&#34;anchor&#34; href=&#34;#part-3---rsyncd-configuration&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;If you haven&amp;rsquo;t already, complete &lt;a href=&#34;../part-2-drive-setup&#34;&gt;Part 2 - Drive Setup&lt;/a&gt; before continuing. With storage ready, this part covers installing and configuring rsyncd on the Linux server.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;install-rsync&#34;&gt;Install rsync&lt;a class=&#34;anchor&#34; href=&#34;#install-rsync&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo apt install rsync&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;configure-rsyncd&#34;&gt;Configure rsyncd&lt;a class=&#34;anchor&#34; href=&#34;#configure-rsyncd&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Create the configuration file:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo nano /etc/rsyncd.conf&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Add the following:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;[backup]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;path&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;/mnt/backup_hdd/synology_share&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;comment&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;Synology Backup Module&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;read only&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;false&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;timeout&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;300&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;auth users&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;synology&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;secrets file&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;/etc/rsyncd.secrets&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;uid&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;archive&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;gid&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;archive&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;configuration-breakdown&#34;&gt;Configuration Breakdown&lt;a class=&#34;anchor&#34; href=&#34;#configuration-breakdown&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;Setting&lt;/th&gt;&#xA;          &lt;th&gt;Purpose&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;[backup]&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Module name. Think of this like a shared folder name (like an SMB share) on a network&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;path&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;The actual folder on the Linux server where files are stored&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;comment&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Description shown when listing modules&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;read only&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Set to &lt;code&gt;false&lt;/code&gt; so files can be written&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;timeout&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Kills stuck or frozen sessions after this many seconds&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;auth users&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;rsync usernames allowed to connect&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;secrets file&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Path to the rsync password file&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;uid&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;User that owns files written through rsync&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;&lt;code&gt;gid&lt;/code&gt;&lt;/td&gt;&#xA;          &lt;td&gt;Group that owns files written through rsync&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;a-note-on-uid-and-gid&#34;&gt;A Note on uid and gid&lt;a class=&#34;anchor&#34; href=&#34;#a-note-on-uid-and-gid&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;rsyncd runs as root and by default writes files as the &lt;code&gt;nobody&lt;/code&gt; user. In Part 2 we set specific permissions on the backup directory for the &lt;code&gt;archive&lt;/code&gt; account. Setting &lt;code&gt;uid&lt;/code&gt; and &lt;code&gt;gid&lt;/code&gt; to &lt;code&gt;archive&lt;/code&gt; ensures rsync writes files with the correct ownership. Without this you would need to open permissions to &amp;ldquo;other,&amp;rdquo; which is not ideal.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Part 4 - Hyper Backup Configuration and Local Seeding</title>
      <link>/docs/synology/offsite-backup-rsyncd/part-4-hyper-backup-configuration/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/synology/offsite-backup-rsyncd/part-4-hyper-backup-configuration/</guid>
      <description>&lt;h1 id=&#34;part-4---hyper-backup-configuration-and-local-seeding&#34;&gt;Part 4 - Hyper Backup Configuration and Local Seeding&lt;a class=&#34;anchor&#34; href=&#34;#part-4---hyper-backup-configuration-and-local-seeding&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;If you haven&amp;rsquo;t already, complete &lt;a href=&#34;../part-3-rsyncd-configuration&#34;&gt;Part 3 - rsyncd Configuration&lt;/a&gt; before continuing. With rsyncd running on the LAN, this part covers configuring Hyper Backup and completing the initial seed over gigabit.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;create-a-new-backup-task&#34;&gt;Create a New Backup Task&lt;a class=&#34;anchor&#34; href=&#34;#create-a-new-backup-task&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Open Hyper Backup on your Synology NAS and create a new backup task. When prompted for backup type, select &lt;strong&gt;Folders and Packages&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;On the next screen, select &lt;strong&gt;rsync&lt;/strong&gt; as the destination type, then select &lt;strong&gt;Multiple versions&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Part 5 - Relocating Offsite</title>
      <link>/docs/synology/offsite-backup-rsyncd/part-5-relocating-offsite/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/docs/synology/offsite-backup-rsyncd/part-5-relocating-offsite/</guid>
      <description>&lt;h1 id=&#34;part-5---relocating-offsite&#34;&gt;Part 5 - Relocating Offsite&lt;a class=&#34;anchor&#34; href=&#34;#part-5---relocating-offsite&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;If you haven&amp;rsquo;t already, complete &lt;a href=&#34;../part-4-hyper-backup-configuration&#34;&gt;Part 4 - Hyper Backup Configuration and Local Seeding&lt;/a&gt; before continuing. With a full backup on the rsyncd server, this part covers moving the server offsite and routing Hyper Backup through a proxy VM.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;what-we-are-doing&#34;&gt;What We Are Doing&lt;a class=&#34;anchor&#34; href=&#34;#what-we-are-doing&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;There are four pieces of work in this part:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Build a proxy VM on the home network. Enable BBR. Install Tailscale. Configure HAProxy.&lt;/li&gt;&#xA;&lt;li&gt;Install Tailscale on the rsyncd server.&lt;/li&gt;&#xA;&lt;li&gt;Physically move the rsyncd server to its offsite location.&lt;/li&gt;&#xA;&lt;li&gt;Update the Hyper Backup task to point at the proxy VM instead of the rsyncd server directly.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;The order matters. Set up Tailscale before you move any hardware. Confirm end-to-end connectivity while everything is still on the LAN. That way if something is wrong you can fix it without driving anywhere.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Understanding VirtualBox Internal Network Adapters</title>
      <link>/docs/virtualbox/internal-network-adapters/</link>
      <pubDate>Tue, 11 Nov 2025 00:00:00 +0000</pubDate>
      <guid>/docs/virtualbox/internal-network-adapters/</guid>
      <description>&lt;h1 id=&#34;understanding-virtualbox-internal-network-adapters&#34;&gt;Understanding VirtualBox Internal Network Adapters&lt;a class=&#34;anchor&#34; href=&#34;#understanding-virtualbox-internal-network-adapters&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;When you create an Internal Network in VirtualBox, three things happen behind the scenes.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;VirtualBox creates a virtual switch.&lt;/li&gt;&#xA;&lt;li&gt;The VM gets a virtual network adapter, just like a real NIC.&lt;/li&gt;&#xA;&lt;li&gt;A virtual network cable connects the VM&amp;rsquo;s adapter to the virtual switch.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Think of it like physical computers connecting their network ports to a switch using CAT6 cables.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;tplink-switch.jpg&#34; alt=&#34;Alt text&#34; /&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;creating-a-switch&#34;&gt;Creating a Switch&lt;a class=&#34;anchor&#34; href=&#34;#creating-a-switch&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;When you name your Internal Network (for example, &amp;ldquo;mynetwork&amp;rdquo;), that name is the switch. Any VM you attach to the same name will land on the same switch. Spelling matters. A typo creates a separate, isolated switch.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
