UBports Robot Logo UBports Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    Change DNS servers, wifi and mobile data

    Scheduled Pinned Locked Moved Support
    22 Posts 4 Posters 6.6k Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Br1B Offline
      Br1
      last edited by

      ---- UPDATE OTA-2 Focal ----
      ---- Stable Channel ----

      Usual three steps :

      1 - download (just tap) setdns-ota.2 from here

      2 - open file manager, go to Downloads, tap setdns-ota.2.tar.gz and tap extract archive

      3 - open terminal, type :

      sudo Downloads/setdns-ota.2/setdns-ota.2.sh
      

      and hit enter,

      type 1 + enter to set Cloudflare servers
      type 2 + enter to set OpenDNS servers
      type 3 + enter to set custom servers (*)
      type 4 + enter to restore default settings (Restore OS)
      type 5 + enter to exit (OS unchanged)

      Remember to "Restore OS" before the next OTA update !

      set-dns is one single script, preview :

      #!/bin/bash
      
      # Make sure only root can run this script
      if [ "$(id -u)" != "0" ]; then
         echo " - You must prepend 'sudo' !" 1>&2
         exit 1
      fi
      
      echo -e '\n- Set DNS servers / Restore default -\n' ;
      
      rsv_cnf=/etc/resolv.conf ;
      
      # these are Cloudflare's DNS servers
      CLF_one=1.1.1.1
      CLF_two=1.0.0.1
      
      # these are OpenDNS servers
      OPE_one=208.67.222.222
      OPE_two=208.67.220.220
      
      PS3='
      Please enter your choice : '
      options=("  Cloudflare  -      " "  OpenDNS     -      " "  Custom DNS  -      " "  Restore OS  -      " "  Quit        -      ")
      select opt in "${options[@]}"
      do
      	case $opt in
      	"  Cloudflare  -      ")
      		# check resolv.conf
      		if [ ! -L $rsv_cnf ] ;
      
      		then
      
      			# -------------------- runs if resolv.conf is a file --------------------
      
      			# mount root in read/write mode
      			mount -o remount,rw / ;
      
      			# add it Cloudflare servers
      			echo -e "# Cloudflare servers" > $rsv_cnf ; echo -e "nameserver $CLF_one" >> $rsv_cnf ; echo -e "nameserver $CLF_two" >> $rsv_cnf ;
      
      			# remount root in read only mode
      			mount -o remount,ro / ;
      
      			echo -e '\n Cloudflare DNS are set up !\n'
      
      			exit 0
      
      		else
      
      			# -------------------- runs if resolv.conf is a symbolic link --------------------
      
      			# mount root in read/write mode
      			mount -o remount,rw / ;
      
      			# delete symbolic link
      			rm /etc/resolv.conf ;
      
      			# create file
      			touch /etc/resolv.conf ;
      
      			# add it Cloudflare servers
      			echo -e "# Cloudflare servers" > $rsv_cnf ; echo -e "nameserver $CLF_one" >> $rsv_cnf ; echo -e "nameserver $CLF_two" >> $rsv_cnf ;
      
                             # remount root in read only mode
                              mount -o remount,ro / ;
      
      			echo -e '\n Cloudflare DNS are set up !\n'
      
      			exit 0
      
      		fi
      
      		;;
      
      	"  OpenDNS     -      ")
      		# check resolv.conf
      		if [ ! -L $rsv_cnf ] ;
      
      		then
      
      			# -------------------- runs if resolv.conf is a file --------------------
      
      			# mount root in read/write mode
      			mount -o remount,rw / ;
      
      			# add it Cloudflare servers
      			echo -e "# OpenDNS servers" > $rsv_cnf ; echo -e "nameserver $OPE_one" >> $rsv_cnf ; echo -e "nameserver $OPE_two" >> $rsv_cnf ;
      
      			# remount root in read only mode
      			mount -o remount,ro / ;
      
      			echo -e '\n OpenDNS servers are set up !\n'
      
      			exit 0
      
      		else
      
      			# -------------------- runs if resolv.conf is a symbolic link --------------------
      
      			# mount root in read/write mode
      			mount -o remount,rw / ;
      
      			# delete symbolic link
      			rm /etc/resolv.conf ;
      
      			# create file
      			touch /etc/resolv.conf ;
      
      			# add it Cloudflare servers
      			echo -e "# OpenDNS servers" > $rsv_cnf ; echo -e "nameserver $OPE_one" >> $rsv_cnf ; echo -e "nameserver $OPE_two" >> $rsv_cnf ;
      
                             # remount root in read only mode
                              mount -o remount,ro / ;
      
      			echo -e '\n OpenDNS servers are set up !\n'
      
      			exit 0
      
      		fi
      
      		;;
      
      	"  Custom DNS  -      ")
      		# check resolv.conf
      		if [ ! -L $rsv_cnf ] ;
      
      		then
      
      			# -------------------- runs if resolv.conf is a file -------------------- 
      
      			# mount root in read/write mode
      			mount -o remount,rw / ;
      
      			echo -e "# Custom DNS servers" > $rsv_cnf ; 
      
                                              read -p " Type primary server : " priDN
      
      					echo -e "nameserver $priDN" >> $rsv_cnf ;
      
      					read -p " Type secondary server : " secDN
      
      					echo -e "nameserver $secDN" >> $rsv_cnf ;
      
      			# remount root in read only mode
      			mount -o remount,ro / ;
      
      			echo -e '\n Custom DNS are set up !\n'
      
      			exit 0
      
      		else
      
      			# -------------------- runs if resolv.conf is a symbolic link --------------------
      
      			# mount root in read/write mode
      			mount -o remount,rw / ;
      
      			# delete symbolic link
      			rm /etc/resolv.conf ;
      
      			# create file
      			touch /etc/resolv.conf ;
      
      			echo -e "# Custom DNS servers" > $rsv_cnf ;
      
                                              read -p " Type primary server : " priDN
      
                                              echo -e "nameserver $priDN" >> $rsv_cnf ;
      
                                              read -p " Type secondary server : " secDN
      
                                              echo -e "nameserver $secDN" >> $rsv_cnf ;
      
                             # remount root in read only mode
                              mount -o remount,ro / ;
      
      			echo -e '\n Custom DNS are set up !\n'
      
      			exit 0
      
      		fi
      
      		;;
      
      	"  Restore OS  -      ")
      			# mount root in read/write mode
      			mount -o remount,rw / ;
      
      			# delete file
      			rm /etc/resolv.conf ;
      
      			# recreate symbolic link
      			ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf ;
      
                             # remount root in read only mode
                              mount -o remount,ro / ;
      
      			echo -e '\n Default settings have been Restored !\n'
      
      			exit 0
      
      		;;
              "  Quit        -      ")
      			echo -e '\n  - OS unchanged !\n'
      
      			break
      		;;
      			*) echo "invalid option $REPLY"
      		;;
          esac
      done
      
      

      (*) For example, if you want to set Google DNS servers enter 8.8.8.8 as primary server and 8.8.4.4 as secondary server.

      ^

      • Google Pixel 3a XL
      • Xiaomi MI A2
      D 1 Reply Last reply Reply Quote 2
      • D Offline
        domubpkm @Br1
        last edited by

        @Br1 Hello. is your OTA-2 work / procedure the same for OTA-3 ? Thanks again

        1 Reply Last reply Reply Quote 0
        • Br1B Offline
          Br1
          last edited by Br1

          I can’t test ota 3 update, install at your own risk (*)

          ^

          • Google Pixel 3a XL
          • Xiaomi MI A2
          1 Reply Last reply Reply Quote 0
          • Br1B Offline
            Br1
            last edited by

            OTA 3 Stable channel --- You can reinstall, no changes are necessary.

            ^

            • Google Pixel 3a XL
            • Xiaomi MI A2
            D 1 Reply Last reply Reply Quote 1
            • D Offline
              domubpkm @Br1
              last edited by

              @Br1 Done, it works as expected.

              1 Reply Last reply Reply Quote 0
              • D Offline
                domubpkm
                last edited by

                @Br1 I am on RC test OTA-4, it seems ok for me.

                1 Reply Last reply Reply Quote 0
                • D Offline
                  domubpkm
                  last edited by domubpkm

                  @Br1

                  New tests.

                  I noted this:
                  . Sometimes a reboot is necessary to get my carrier's DNS fully restored if I no longer want to use cloudflare dns. Just using the 'restore' option in the script is not enough.

                  . When using cloudflare, in the list of cloudflare DNS servers, some are in the USA (Missouri). Is this normal ? Shouldn't cloudflare DNS all stay in its country of origin like I see with Firefox (all in France for me) ?

                  Thank you to enlighten me.

                  Br1B 1 Reply Last reply Reply Quote 0
                  • Br1B Offline
                    Br1 @domubpkm
                    last edited by

                    @domubpkm said in Change DNS servers, wifi and mobile data:

                    Sometimes a reboot is necessary to get my carrier's DNS fully restored

                    It could be caused by dns cache, after restoring try this :

                    sudo resolvectl flush-caches
                    

                    if it works, I can add it to next version

                    @domubpkm said in Change DNS servers, wifi and mobile data:

                    Shouldn't cloudflare DNS all stay in its country of origin

                    servers in 120+ countries ... I don’t know what criteria they use

                    ^

                    • Google Pixel 3a XL
                    • Xiaomi MI A2
                    D 1 Reply Last reply Reply Quote 0
                    • D Offline
                      domubpkm @Br1
                      last edited by

                      @Br1 said in Change DNS servers, wifi and mobile data:

                      It could be caused by dns cache, after restoring try this :

                      sudo resolvectl flush-caches

                      Sorry, i can't confirm it works for me. A reboot is yet necessary.

                      @Br1 said in Change DNS servers, wifi and mobile data:

                      Shouldn't cloudflare DNS all stay in its country of origin

                      servers in 120+ countries ... I don’t know what criteria they use

                      When i did my precedent feedback, i was in RC TEST OTA-4. Now i am on 'real' OTA-4 and all cloudfare DNS are in my country. So for this, it's solved. 🤔 🙂

                      1 Reply Last reply Reply Quote 0
                      • Br1B Offline
                        Br1
                        last edited by

                        --- New version (only an optimization) here, as reported by @domubpkm to restore the original dns servers reboot is required (added message).

                        ^

                        • Google Pixel 3a XL
                        • Xiaomi MI A2
                        1 Reply Last reply Reply Quote 0
                        • Br1B Br1 referenced this topic on
                        • D Offline
                          domubpkm
                          last edited by domubpkm

                          Hi @Br1 . Could you please update your very useful script for Noble ? I'm still using your last focal script which works yet with Noble, but with an error. Thanks in advance.
                          screenshot20251019_195605222.png

                          1 Reply Last reply Reply Quote 0

                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                          With your input, this post could be even better 💗

                          Register Login
                          • First post
                            Last post