Skip to content

Instantly share code, notes, and snippets.

@Erisa
Last active July 8, 2024 02:01
Show Gist options
  • Save Erisa/4015ae12211434b8f2f64ac1d731b830 to your computer and use it in GitHub Desktop.
Save Erisa/4015ae12211434b8f2f64ac1d731b830 to your computer and use it in GitHub Desktop.
Install the Cloudflare Daemon (cloudflared) in Termux
#!/bin/sh
echo 'NOTE: You can now install cloudflared directly from Termux repos.'
echo 'NOTE: To install it from source instead, open the script and comment out the next two lines.'
pkg install cloudflared
exit
# ^ comment out these lines to proceed with the script
echo "--upgrading packages"
yes "" | pkg update
echo "-- installing dependancies: golang git debianutils make"
yes "" | pkg install golang git debianutils make
echo "-- downloading cloudflared source"
git clone https://github.com/cloudflare/cloudflared.git --depth=1
cd cloudflared
sed -i 's/linux/android/g' Makefile
echo "-- building and installing cloudflared"
make cloudflared
install cloudflared /data/data/com.termux/files/usr/bin
echo "-- done!"
@srivathsanvenkateswaran
Copy link

srivathsanvenkateswaran commented Feb 10, 2021

The github link specified here is broken. Also, while trying with Termux, the last line

install $GOPATH/bin/cloudflared /data/data/com.termux/files/usr/bin threw me an error : No such file or directory
image

@Erisa
Copy link
Author

Erisa commented Feb 10, 2021

Hi @srivathsanvenkateswaran,
I didn't really expect anyone to use this little script and I haven't touched it since I first threw it together a few months ago.

The github "link" isn't a real link, just a reference for Go to know where to retrieve the module and which one to build from the repository (https://github.com/cloudflare/cloudflared)

These days because of changes in their build process I would instead recommend cloning the repository (With --depth=1 to save time, bandwidth and storage), installing the make package as well as the ones mentioned here and running make cloudflared in the directory after editing the makefile to support Android as a target.

As a script this would be something like:

cd ~
yes "" | pkg update
yes "" | pkg install golang git debianutils make
git clone https://github.com/cloudflare/cloudflared.git --depth=1
cd cloudflared
sed -i 's/linux/android/g' Makefile
make cloudflared
install cloudflared /data/data/com.termux/files/usr/bin

There are prettier ways to handle the Makefile edit, I'm (ironically) writing this from my phone so thats the best I could come up with that works.
I'd be happy to update the script with this method later.

Screenshot_20210210-061425_Termux

@nalakawula
Copy link

I got an error when trying to run cloudflared


2021-05-17T02:30:30Z INF Initial protocol h2mux
2021-05-17T02:30:30Z INF Starting metrics server on 127.0.0.1:41105/metrics
2021-05-17T02:30:31Z ERR Error looking up Cloudflare edge IPs: the DNS query failed error="lookup _origintunneld._tcp.argotunnel.com on [::1]:53: read udp [::1]:38332->[::1]:53: read: connection refused"

@Erisa
Copy link
Author

Erisa commented May 17, 2021

Its working fine for me on the latest version.
In the past I've had that issue when running cloudflared compiled for linux (GOOS=linux or precompiled binary from their website) rather than for Android (GOOS=android from source).
This reason is why my short script (Made for my personal use) builds it from source targeting Android.

@Erisa
Copy link
Author

Erisa commented May 17, 2021

The lines at the top of your output that look like this

2021-05-17T02:39:15Z INF Version 2021.5.6-dev
2021-05-17T02:39:15Z INF GOOS: android, GOVersion: go1.16.3, GoArch: arm64

Will tell you that information

@Isbbrt
Copy link

Isbbrt commented Jun 29, 2021

is there how to install it on windows cmd?

@Erisa
Copy link
Author

Erisa commented Jun 29, 2021

is there how to install it on windows cmd?

You can do that officially with official instructions: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation#windows

Or install Scoop and simply scoop install cloudflared

@Isbbrt
Copy link

Isbbrt commented Jun 29, 2021

is there how to install it on windows cmd?

You can do that officially with official instructions: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup/installation#windows

Or install Scoop and simply scoop install cloudflared

thank you so much

@yelrom0
Copy link

yelrom0 commented Jul 15, 2021

The github link specified here is broken. Also, while trying with Termux, the last line

install $GOPATH/bin/cloudflared /data/data/com.termux/files/usr/bin threw me an error : No such file or directory
image

It worked fine for me. Make sure that you run chmod +x before running the script.

@DarremMolko
Copy link

It worked like a charm. Thank you so much.

@DarremMolko
Copy link

Good news, it has been packaged for Termux and it can now be installed with "pkg i cloudflared" or just "apt install cloudflared" (termux/termux-packages#9304)

@Erisa
Copy link
Author

Erisa commented Mar 7, 2022

Good news, it has been packaged for Termux and it can now be installed with "pkg i cloudflared" or just "apt install cloudflared" (termux/termux-packages#9304)

Woah!! I had considered trying to get them to do this at one point but never found the time.
Thank you for letting me know! 🎉♥️

@Erisa
Copy link
Author

Erisa commented Mar 9, 2022

Updated the script to notify and install from repos directly, but kept the rest for posterity and in case anyone is curious in future.

@sangelxyz
Copy link

Erisa, What is the proper way to run cloudflared from termux. My phone is not rooted. so the
sudo cloudflared service install does not work. Is there another way i can run this as a service from a phone that's not rooted ?

@yelrom0
Copy link

yelrom0 commented May 21, 2022

Erisa, What is the proper way to run cloudflared from termux. My phone is not rooted. so the sudo cloudflared service install does not work. Is there another way i can run this as a service from a phone that's not rooted ?

You should be able to run apt update then apt install cloudflared or pkg run cloudflared, don't need root for commands without su or sudo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment