# Install Tailscale on Wago cc100

**URL:** <https://www.wago.community/t/install-tailscale-on-wago-cc100/873>\
**Category:** Hardware and Linux\
**Tags:** cc100\
**Created:** [April 10, 2024, 10:03am UTC](https://www.wago.community/t/install-tailscale-on-wago-cc100/873 "2024-04-10T10:03:10Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![espenbo](https://avatars.discourse-cdn.com/v4/letter/e/c57346/32.png) [@espenbo](https://www.wago.community/u/espenbo)\
**Post date:** [April 10, 2024, 10:03am UTC](https://www.wago.community/t/install-tailscale-on-wago-cc100/873/1 "2024-04-10T10:03:10Z")

</div>

Install Tailscale on Wago cc100  
[https://tailscale.com](https://tailscale.com/)

Login via SSH

```auto
 ssh root@ipaddress
 pass: wago

```

Download the latest Tailscale client  
[https://pkgs.tailscale.com/stable/#static](https://pkgs.tailscale.com/stable/#static)

arm: tailscale\_1.62.1\_arm.tgz  
[https://pkgs.tailscale.com/stable/tailscale\_1.62.1\_arm.tgz](https://pkgs.tailscale.com/stable/tailscale_1.62.1_arm.tgz)

> mkdir tmp  
> cd tmp  
> curl [https://pkgs.tailscale.com/stable/tailscale\_1.62.1\_arm.tgz](https://pkgs.tailscale.com/stable/tailscale_1.62.1_arm.tgz) --output tailscale\_1.62.1\_arm.tgz

Extract the package

> tar x -zvC /root/tmp -f tailscale\_1.62.1\_arm.tgz

Delete the package when it’s extracted

> rm tailscale\_1.62.1\_arm.tgz

Move the tailscale and tailscaled binaries to /usr/bin

> cd tailsca~1  
> cp tailscale /usr/bin  
> cp tailscaled /usr/bin

Make a init script to start and stop the tailscale service

```auto
  cd /etc/init.d
  nano /etc/init.d/tailscale
  
  #!/bin/sh
  # Tailscale init script
  
  ### BEGIN INIT INFO
  # Provides: tailscale
  # Required-Start: $network $local_fs $remote_fs
  # Required-Stop: $network $local_fs $remote_fs
  # Default-Start: 2 3 4 5
  # Default-Stop: 0 1 6
  # Short-Description: Tailscale VPN
  ### END INIT INFO
  
  case "$1" in
  start)
      echo "Starting Tailscale..."
      /usr/bin/tailscaled --state=/var/lib/tailscale/tailscaled.state
      ;;
  stop)
      echo "Stopping Tailscale..."
      /usr/bin/tailscale down
      ;;
  restart)
      $0 stop
      $0 start
      ;;
  *)
      echo "Usage: $0 {start|stop|restart}"
      exit 1
      ;;
  esac
  
  exit 0

```

Paste the script

> chmod 775 /etc/init.d/tailscale  
> chmod 775 /usr/bin/tailscale  
> chmod 775 /usr/bin/tailscaled

Link the startup script to init

> ln -s /etc/init.d/tailscale /etc/rc.d/S99\_tailscale

Start tailscale service

> /etc/init.d/tailscale start

See if the service is running.

> ps aux |grep tailscale\*

Login and connect tailscale

> tailscale up

---

<div class="post-metadata">

**Author:** ![quenorha](https://sea2.discourse-cdn.com/flex016/user_avatar/www.wago.community/quenorha/32/429_2.png) [@quenorha](https://www.wago.community/u/quenorha)\
**Post date:** [April 10, 2024, 11:28am UTC](https://www.wago.community/t/install-tailscale-on-wago-cc100/873/2 "2024-04-10T11:28:50Z")

</div>

Nice !  
There is a dockerized version but a binary is very interesting !

> [@Tailscale running on controller](https://www.wago.community/t/tailscale-running-on-controller/796):
>
> Hi, has anyone had any success installing Tailscale-client on the controller? I’ve tried the dockerized “tailscaled” withouth any luck - and for now ended up with ZeroTier. I’ve also tried the “standard” curl-installation command but that doesn’t recognize the Linux distro (CC100)

---

<div class="post-metadata">

**Author:** ![quenorha](https://sea2.discourse-cdn.com/flex016/user_avatar/www.wago.community/quenorha/32/429_2.png) [@quenorha](https://www.wago.community/u/quenorha)\
**Post date:** [April 10, 2024, 11:29am UTC](https://www.wago.community/t/install-tailscale-on-wago-cc100/873/3 "2024-04-10T11:29:30Z")

</div>

We could create an IPK package

---

<div class="post-metadata">

**Author:** ![espenbo](https://avatars.discourse-cdn.com/v4/letter/e/c57346/32.png) [@espenbo](https://www.wago.community/u/espenbo)\
**Post date:** [April 10, 2024, 11:47am UTC](https://www.wago.community/t/install-tailscale-on-wago-cc100/873/4 "2024-04-10T11:47:11Z")

</div>

Yes a IPK. that would be nice.

I would like a work opkg server that we could get packages from. Then It could be easier when updates is made.

---

<div class="post-metadata">

**Author:** ![espenbo](https://avatars.discourse-cdn.com/v4/letter/e/c57346/32.png) [@espenbo](https://www.wago.community/u/espenbo)\
**Post date:** [May 1, 2024, 12:40pm UTC](https://www.wago.community/t/install-tailscale-on-wago-cc100/873/5 "2024-05-01T12:40:31Z")

</div>

I have started to make a installscript for tailscale.

> **[GitHub - espenbo/InstallTailscale: Script for automatic find rigth tailscale...](https://github.com/espenbo/InstallTailscale/tree/main)**
>
> main

Please give feedback

---

<div class="post-metadata">

**Author:** ![pfcdiederick](https://avatars.discourse-cdn.com/v4/letter/p/e99b99/32.png) [@pfcdiederick](https://www.wago.community/u/pfcdiederick)\
**Post date:** [June 5, 2024, 8:30pm UTC](https://www.wago.community/t/install-tailscale-on-wago-cc100/873/6 "2024-06-05T20:30:35Z")

</div>

I prefer to use the Tailscale docker container.

docker run -d   
–name=tailscaled   
–restart=unless-stopped   
–network=host   
-v /var/lib:/var/lib   
-v /dev/net/tun:/dev/net/tun   
-v /var/lib/tailscale:/var/lib/tailscale   
-e TS\_ROUTES=\< ip range \>/24   
-e TS\_AUTHKEY=\< key \>   
–cap-add=NET\_ADMIN   
–cap-add=NET\_RAW   
tailscale/tailscale

Enjoy!

---

<div class="post-metadata">

**Author:** ![espenbo](https://avatars.discourse-cdn.com/v4/letter/e/c57346/32.png) [@espenbo](https://www.wago.community/u/espenbo)\
**Post date:** [August 18, 2026, 9:47pm UTC](https://www.wago.community/t/install-tailscale-on-wago-cc100/873/7 "2026-08-18T21:47:11Z")

</div>

> **[GitHub - espenbo/InstallTailscale: Script for automatic find rigth tailscale package...](https://github.com/espenbo/InstallTailscale)**
>
> Script for automatic find rigth tailscale package to install

Rewrite InstallTailscale.sh: safe atomic upgrades, fix stale static-binary parsing  
The Tailscale download page changed its HTML structure ( anchors  
became

> ****
>
> ), which had silently broken both the static-binary  
> lookup for arm/arm64/386 and the per-distro install-script lookup for amd64.  
> Rewrote the parsing against the live page.
> 
>  
> 
> Also fixes several correctness/safety issues found while validating on real  
> WAGO PLCs (PFC300, CC100, and a heavily space-constrained Old PFC200 BACnet controller):
> 
>  
> - Never delete the running tailscale/tailscaled until the new binaries are  
> downloaded, extracted, and validated (previously deleted eagerly on update).
> - Atomic install with backup + rollback, using an off-destination backup  
> location so it doesn’t need double the space on cramped root filesystems.
> - Low-space fallback: when there isn’t room to stage old+new binaries side  
> by side, remove the (already backed-up) old binary first and copy the new  
> one in directly - only needs headroom for the version-to-version size  
> delta, not the full binary.
> - Replace stat -c%s with wc -c: some embedded BusyBox builds ship stat  
> without format-string support.
> - Fix a subshell variable-scoping bug that silently prevented the extraction  
> directory from ever being cleaned up.
> - New init.d script with PID-file repair, pidof fallback, and a real restart  
> path; installed via the same backup+rollback pattern as the binaries.
> - Decouple daemon restart from install, with an optional detached restart so  
> it survives the SSH-over-Tailscale session it may itself interrupt.
> - Fix duplicate install-status checks, curl --insecure, and a fetchAndParseData  
> argument/scoping mismatch from the previous version.

---

<div class="post-metadata">

**Author:** ![sommerz](https://avatars.discourse-cdn.com/v4/letter/s/db5fbb/32.png) [@sommerz](https://www.wago.community/u/sommerz)\
**Post date:** [August 19, 2026, 11:45am UTC](https://www.wago.community/t/install-tailscale-on-wago-cc100/873/8 "2026-08-19T11:45:59Z")

</div>

Bra greier!  
Would this survive a firmware update?

---

<div class="post-metadata">

**Author:** ![espenbo](https://avatars.discourse-cdn.com/v4/letter/e/c57346/32.png) [@espenbo](https://www.wago.community/u/espenbo)\
**Post date:** [August 19, 2026, 7:59pm UTC](https://www.wago.community/t/install-tailscale-on-wago-cc100/873/9 "2026-08-19T19:59:04Z")

</div>

I’m not sure, I think a firmware upgrade would erease all the files on the PLC. And the script places the file in /usr/bin
