Connect: network is unreachable (Onedrive)

What is the problem you are having with rclone?

When setting up a OneDrive connection I'm prompted for a connection type and I enter 1) OneDrive Personal or Business. The respnse is Failed to query available drives: Get "https://graph.microsoft.com/v1.0/me/drive": dial tcp [2603:1016:1400:68::80]:443: connect: network is unreachable

Prior to reaching this point everything had worked flawlessly.

Run the command 'rclone version' and share the full output of the command.

rclone v1.61.1

  • os/version: raspbian 11.6
  • os/kernel: 5.15.76-v7+ (armv7l)
  • os/type: linux
  • os/arch: arm
  • go/version: go1.19.4
  • go/linking: static
  • go/tags: none

Which cloud storage system are you using? (eg Google Drive)

OneDrive

The command you were trying to run (eg rclone copy /tmp remote:tmp)

rclone config
config_type> 1

The rclone config contents with secrets removed.

raspberry@raspberrypi:~ $ rclone config
Current remotes:

Name                 Type
====                 ====
Onedrive             onedrive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remotePaste config here
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> e

Select remote.
Choose a number from below, or type in an existing value.
 1 > Onedrive
remote> 1

Editing existing "Onedrive" remote with options:
- type: onedrive
- token: {"access_token":"EwB4A8l6BAAUkj1NuJYtTVha+Mogk+HEiPbQo04AAZTjXQahoh5ynK9q0+rcgUzMpCE6jGcD1m3B6xJgZvJa6ohmIsKcbfsc8Quz9hJaVMevrDbrEglmRcWIGADVJlioK3pP4M02rkacJRmPQPnC5jw3fgslgYDpL2l8Uvgz8TshGfa70oEJyh+hfq+U1TUJ85hzp8JaYqiZ5Sxzaz3buXSR9ieVr6773I39ez+1JuiMLZVzmKHnaNcS8Ht6/HluvZ0OxHRmvT2NYBjbcfPcGzTqRfYlsH7b6tegJdD+XqmtUsn3WNyFFZHwfABTyDttluZT56wWp5OhT1cAqKUvfp43hYq0/q6csZnoAt1lAjX53PmsW2ZF1BC9CzUOqUYDZgAACKXVvDPOx+31SAIqTvff0uE/X8nwwUrRuReqb1FQNA5JKdzihuhvIUnoeyjEWC+/QAXJEvwdaVjBOiF1j7Tq12sm+tykgjMt2hiI84UZOmQeYhb/PufSmBwxjEd53rEpj3kwR96OaNadKvGot68AgOn6+LHuGtLDm64Sfalj8o0TObugbL/Zcso9+WH3Tstp8VT1vFG5iEgq6NWM2En7i3BssvuZ5oCZqeC9s5necM+oLurSG0W15bXVD6xWww28BG4WkmK7iPIXuW7afcFa/tuAVW5OgIZ/+YFuDOvfB0QMMmhhXxCYMLkB1z7h4MLATfUcX75Dpui0M/zP0LXHU4LPpl0E22yqJEUGbVTj8xCSOPNeM1VBeYGjbnjOPBtCr6CdNCQiJ2CqoQFcpxJOVgWmWeshXssSRHHDIjg0hhqeU4MTqsP9Ileyl00vrRODyF8nXsG33FugjUeWM1jPMWOY8+KDpDXYOG5ZJBZjkt37eXcRoSimSQ0Imk2NCpXIQI/bMZYLgiQiM4s7+2ymjGHw7wutts9cRBGJ0W/UuMmnYUD0VciNFwiA00Ws2BkfgAzIb5wxqSaLbrZM4FXYKXyP03+BOuHoIfmHeVuF3CmnIY0MA4/MxFZd9I7Iw5/i/4XcnQNZWHb96E3lWCANcuv7QxvQZrpy7+JkEAqYJA9ZZkTgx5GA96VwsiiCf0CWD8xCFU31QWkpDoqzd24gtDTu+wFxKi2y+LP3DC0wKFdheLBxwJQQ3eDY0gSnAzyskC30PNCnATL5vsnR0Vej3Jmre5IC","token_type":"Bearer","refresh_token":"M.R3_BAY.-CZRTom8tav*JQA3*jlD!aATk7sqvZelBkMQiHmb0Ezj7aQW*Y0276Sucu!3A3obb3vvSqBf0YAOgrNk4a4izbGsSbkv4WSsxHICsQdaalIXQH4o1i!H0SeStOX7V5URUHFdoFZDFOAUGTXXFiA2e8YK8hzv5lgdbw5HPeGcjrqJcnIBrA1AEmzkStTWl7Bz733NEg7H7ttzzrgKi3N0p5xCwtQvN3xsE3Ji6ua7rScx1SAqnFXR4Lm1XETGFZugpIx!nRhiKlpmGOcxmA8pwrYB3IIuwy0QEb910FqQuWzGmlr1JpxYueQKCon5WxGY9qTapN!C*C3VwFxzPzVho8Y26M8dy3gPLGF5Bgo9l8qNg","expiry":"2022-12-28T20:23:50.358753081+11:00"}
- drive_id: 85a4edc70e340bd7
- drive_type: personal
- link_type: edit

Option client_id.
OAuth Client Id.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_id> 

Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_secret> 

Option region.
Choose national cloud region for OneDrive.
Choose a number from below, or type in your own string value.
Press Enter for the default (global).
 1 / Microsoft Cloud Global
   \ (global)
 2 / Microsoft Cloud for US Government
   \ (us)
 3 / Microsoft Cloud Germany
   \ (de)
 4 / Azure and Office 365 operated by Vnet Group in China
   \ (cn)
region> 1

Edit advanced config?
y) Yes
n) No (default)
y/n> 

Already have a token - refresh?
y) Yes (default)
n) No
y/n> 

Use web browser to automatically authenticate rclone with remote?
 * Say Y if the machine running rclone has a web browser you can use
 * Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.

y) Yes (default)
n) No
y/n> 

2022/12/28 19:28:22 NOTICE: If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=sMCju8hzFIv9RCq61kA6YQ
2022/12/28 19:28:22 NOTICE: Log in and authorize rclone for access
2022/12/28 19:28:22 NOTICE: Waiting for code...
2022/12/28 19:28:34 NOTICE: Got code
Option config_type.
Type of connection
Choose a number from below, or type in an existing string value.
Press Enter for the default (onedrive).
 1 / OneDrive Personal or Business
   \ (onedrive)
 2 / Root Sharepoint site
   \ (sharepoint)
   / Sharepoint site name or URL
 3 | E.g. mysite or https://contoso.sharepoint.com/sites/mysite
   \ (url)
 4 / Search for a Sharepoint site
   \ (search)
 5 / Type in driveID (advanced)
   \ (driveid)
 6 / Type in SiteID (advanced)
   \ (siteid)
   / Sharepoint server-relative path (advanced)
 7 | E.g. /teams/hr
   \ (path)
config_type> 1

Failed to query available drives: Get "https://graph.microsoft.com/v1.0/me/drive": dial tcp [2603:1016:1400:68::80]:443: connect: network is unreachable

Option config_type.
Type of connection
Choose a number from below, or type in an existing string value.
Press Enter for the default (onedrive).

A log from the command with the -vv flag

Paste  log here

That typically means you have a firewall / proxy / something blocking the connection as it is a network time out.

I turned the firewall off and still get the same message. Are there any specific proxy settings I need for a RPi?

It seems to be trying to connect over IPv6. Do you have that set up? If not disable it in the Pi.

Thanks, I've disabled ipv6 but now get the following response:

Failed to query available drives: Get "https://graph.microsoft.com/v1.0/me/drive": dial tcp [2603:1016:1400:68::81]:443: connect: cannot assign requested address

I guess that's an improvement. Any thoughts?

Looks like you DNS still returns an IPv6 address, so IPv6 isn't entirely disabled. IPv4 adresses look like xxx.xxx.xxx.xxx, where none of the xxx's are above 255.

You can probably test your connection without rclone by using:

ping graph.microsoft.com

Thanks, it's definitely connecting when pinged.

PING www.tm.prd.ags.akadns.net (20.190.142.42) 56(84) bytes of data.

I did run cat /proc/sys/net/ipv6/conf/all/disable_ipv6 and it returned 1 which apparently means ipv6 is disabled so I'm a little confused as your response seems pretty convincing.

Any thought's on next steps?

Hmm, interesting.

Perhaps it takes a little while until the ipv6 disable takes effect, do you still see the same if trying rclone?

Are ping and rclone executed by the same user and shell?

Yes, same user, same shell. I did reboot to make sure all changes with the ipv6 had taken effect and it still comes back with that condition.

OK, that is strange. I never seen that before and is out of ideas. (I am mostly on Windows)

Let's hope somebody with better knowledge of Linux and rclone drops by.

Here is a quick summary of the situation I see:

IPv6 is supposedly disabled and ping graph.microsoft.com connects using IPv4 without issues as seen here:

However rclone config still receives an IPv6 address and then fails the connection like this:

Thanks for your help with this, I do appreciate it.

1 Like

You can tell rclone to use only IPv4 addresses with --bind 0.0.0.0

Not sure why your IP address disabling didn't work... - I usually edit /etc/gai/conf to make IPv4 the preferred protocol.

Thanks Nick. I get an interesting response when I try the bind command.

raspberry@raspberrypi:~ $ rclone --bind 0.0.0.0.
2022/12/30 12:50:56 --bind: Failed to parse "0.0.0.0." as IP address: lookup 0.0.0.0.: no such host

Regarding /etc/gai/conf I had a look at it but wasn't clear on exactly what to modify.

# Configuration for getaddrinfo(3).
#
# So far only configuration for the destination address sorting is needed.
# RFC 3484 governs the sorting.  But the RFC also says that system
# administrators should be able to overwrite the defaults.  This can be
# achieved here.
#
# All lines have an initial identifier specifying the option followed by
# up to two values.  Information specified in this file replaces the
# default information.  Complete absence of data of one kind causes the
# appropriate default information to be used.  The supported commands include:
#
# reload  <yes|no>
#    If set to yes, each getaddrinfo(3) call will check whether this file
#    changed and if necessary reload.  This option should not really be
#    used.  There are possible runtime problems.  The default is no.
#
# label   <mask>   <value>
#    Add another rule to the RFC 3484 label table.  See section 2.1 in
#    RFC 3484.  The default is:
#
#label ::1/128       0
#label ::/0          1
#label 2002::/16     2
#label ::/96         3
#label ::ffff:0:0/96 4
#label fec0::/10     5
#label fc00::/7      6
#label 2001:0::/32   7
#
#    This default differs from the tables given in RFC 3484 by handling
#    (now obsolete) site-local IPv6 addresses and Unique Local Addresses.
#    The reason for this difference is that these addresses are never
#    NATed while IPv4 site-local addresses most probably are.  Given
#    the precedence of IPv6 over IPv4 (see below) on machines having only
#    site-local IPv4 and IPv6 addresses a lookup for a global address would
#    see the IPv6 be preferred.  The result is a long delay because the
#    site-local IPv6 addresses cannot be used while the IPv4 address is
#    (at least for the foreseeable future) NATed.  We also treat Teredo
#    tunnels special.
#
# precedence  <mask>   <value>
#    Add another rule to the RFC 3484 precedence table.  See section 2.1
#    and 10.3 in RFC 3484.  The default is:
#
#precedence  ::1/128       50
#precedence  ::/0          40
#precedence  2002::/16     30
#precedence ::/96          20
#precedence ::ffff:0:0/96  10
#
#    For sites which prefer IPv4 connections change the last line to
#
#precedence ::ffff:0:0/96  100

#
# scopev4  <mask>  <value>
#    Add another rule to the RFC 6724 scope table for IPv4 addresses.
#    By default the scope IDs described in section 3.2 in RFC 6724 are
#    used.  Changing these defaults should hardly ever be necessary.
#    The defaults are equivalent to:
#
#scopev4 ::ffff:169.254.0.0/112  2
#scopev4 ::ffff:127.0.0.0/104    2
#scopev4 ::ffff:0.0.0.0/96       14

Thanks

You have an extra period at the end.

It's just "0.0.0.0"

Thanks. I tried the following.

raspberry@raspberrypi:~ $ --bind 0.0.0.0
bash: --bind: command not found

Also the following but it just came back with the command glossary.

raspberry@raspberrypi:~ $ rclone --bind 0.0.0.0

It's a flag so have to put that with a command.

rclone config --bind 0.0.0.0
Current remotes:

Name                 Type
====                 ====
DB                   dropbox
DBMovies             dropbox
DBTV                 dropbox
GD                   drive
dcrypt-movies        crypt
dcrypt-tv            crypt
gcrypt               crypt

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q>

Thanks, that's a step in the right direction but it doesn't seem to have resolved the issue.

raspberry@raspberrypi:~ $ rclone config --bind 0.0.0.0
Current remotes:

Name                 Type
====                 ====
Onedrive             onedrive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> e

Select remote.
Choose a number from below, or type in an existing value.
 1 > Onedrive
remote> 1

Editing existing "Onedrive" remote with options:
- type: onedrive
- token: {"access_token":"EwB4A8l6BAAUkj1NuJYtTVha+Mogk+HEiPbQo04AAQ70CjjxiwrbPe26QIOiZcO/OvlJeA2QLYD0J48SpcHms6rYzgO/+tGOdGX/C5wS76Sdy+nlAODhf+DsxJ2N3AlsZNYFAdwwmnFrsHoUTEjq7hRFeIMhz6n1JXC7GqCqqJ5EeEaz+6sRJbQwS62pXFaYrvmD/iuWgsqDkn4Jc+WPbAQtayZRG7L4zc/bXILBxs8mCbgS9F7gnP67Wt8epYKipy2169cj6Pq+YGRE8P2XLhqi4HsTHt3pkbdq69uVO8iwG6c0skwq/ELdZ1GMnkT5lk9xUk8bgkguFNUpcj5/3quVqVoNuHbbaEnf0iNC+HWVsWm7JTj/LdV14AJLPxgDZgAACAJNYP9yuapCSAJ1i4ObiyU0YRTQX7tIIZZ7aNigmMq99ROMX6VMvT6uM1eCnDJVn5b4gOLD8nE4IQRE3jBJTvSvA1NP3+BaE4Zt2HbbmHRZxyN3n7IyFTQsFmHRXT1huyhCo2uuY5tQAV3HlSG+LcQeT4dRyJpDdXUHM6YI1x5oZx4M7Pj3xT/lt0a015tRXFh95JubL0ku0qsd6bLESeMuhbAphOwG+zC50nTbO5pGld1eKUPbtraPFci7/wMbE0zfjwo4oTKosThW+NlcfRcEFO5y28GMKulB2vORlCGEHF/i4xk0TBTyrcmi4T5pOw479jguXTQ8qk2p0QCe1i1ti3EM38KFCOjNdSkXAmCx2bwARsxmah5W021shMT7O3XqkwtfYV1HJp7+P0c0cioiyUt8DCacbKpZNATINQMRJL6re392lIZmdwqG5XjCYirooU7ysSxRpo0cQ8P5QcknoJLOBNc8xV7RFiSsxYeiyfv/Nad70cu0UlFsM9txlnv15RpugY4HNQoFzYADjZQTuQB0ZUdFVw8pTxl5tw0ZRrvxLOicnrPLzcS+qNpLyHjf3vCiVcmF04XeBRwRwXm5JeEX1ZMDJ48fXdiA0YiUzDAexmYUZvhYLEjHvpMoGVfgEi8KXR/lliuOSalCU+8ZiRrR3n3WIejmU6SPFUsg4FBvf5HXD8jNds0n/wMTQDKXzDrEZu4bADRTeaQum7Livc1R43N1NPRiF1SV/E0JyZWeoCwvB0cXT+Gq5ztMrdEOlLv47M1uLTPS/9o3iueQe5IC","token_type":"Bearer","refresh_token":"M.R3_BAY.-CYPh27u5UuBHZXg!iEUNKkDX8c5aiApqIy!ZYKpn4sjmJu3bEYTRyd48WJE*IqNQ2d*BqAQY5lzgAPlT33lR!mVbUrr7Z6ov!w2ZCIrRM*H87wXbRzWz!y22IboEmmND641oIk*OKO2AS1LI!fmhN3QSE8nxXM!itBftdg1hhq!95fjiFco7CRcLrZJDauiqymo5pCgRSG4724K64iT0GFHoXUKLXl5JOmhThDlqqUYHEp*tGpaR4K1oQCCBov1AvaHrSJQNgIZk6VwuAo6P7A!uzZb8fZDbxQakoWJ88lo1pIhRMoBkltvLyWRAodyCsXHRxwVUfJLbugZrCXqL4VBzUlNYzyAlzH8YEYotisY2","expiry":"2022-12-30T15:27:42.994533928+11:00"}
- drive_id: 85a4edc70e340bd7
- drive_type: personal
- link_type: edit

Option client_id.
OAuth Client Id.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_id> 

Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_secret> 

Option region.
Choose national cloud region for OneDrive.
Choose a number from below, or type in your own string value.
Press Enter for the default (global).
 1 / Microsoft Cloud Global
   \ (global)
 2 / Microsoft Cloud for US Government
   \ (us)
 3 / Microsoft Cloud Germany
   \ (de)
 4 / Azure and Office 365 operated by Vnet Group in China
   \ (cn)
region> 1

Edit advanced config?
y) Yes
n) No (default)
y/n> 

Already have a token - refresh?
y) Yes (default)
n) No
y/n> 

Use web browser to automatically authenticate rclone with remote?
 * Say Y if the machine running rclone has a web browser you can use
 * Say N if running rclone on a (remote) machine without web browser access
If not sure try Y. If Y failed, try N.

y) Yes (default)
n) No
y/n> 

2022/12/30 14:56:21 NOTICE: If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=eGbcwmQP92cOkncsmSc5QQ
2022/12/30 14:56:21 NOTICE: Log in and authorize rclone for access
2022/12/30 14:56:21 NOTICE: Waiting for code...
2022/12/30 14:56:33 NOTICE: Got code
Option config_type.
Type of connection
Choose a number from below, or type in an existing string value.
Press Enter for the default (onedrive).
 1 / OneDrive Personal or Business
   \ (onedrive)
 2 / Root Sharepoint site
   \ (sharepoint)
   / Sharepoint site name or URL
 3 | E.g. mysite or https://contoso.sharepoint.com/sites/mysite
   \ (url)
 4 / Search for a Sharepoint site
   \ (search)
 5 / Type in driveID (advanced)
   \ (driveid)
 6 / Type in SiteID (advanced)
   \ (siteid)
   / Sharepoint server-relative path (advanced)
 7 | E.g. /teams/hr
   \ (path)
config_type> 1

Failed to query available drives: Get "https://graph.microsoft.com/v1.0/me/drive": dial tcp 0.0.0.0:0->[2603:1016:1400:68::82]:443: connect: cannot assign requested address

Option config_type.
Type of connection
Choose a number from below, or type in an existing string value.
Press Enter for the default (onedrive).
 1 / OneDrive Personal or Business
   \ (onedrive)
 2 / Root Sharepoint site
   \ (sharepoint)
   / Sharepoint site name or URL
 3 | E.g. mysite or https://contoso.sharepoint.com/sites/mysite
   \ (url)
 4 / Search for a Sharepoint site
   \ (search)
 5 / Type in driveID (advanced)
   \ (driveid)
 6 / Type in SiteID (advanced)
   \ (siteid)
   / Sharepoint server-relative path (advanced)
 7 | E.g. /teams/hr
   \ (path)

I guess --bind doesn't work with rclone config :frowning:

You'll have to make 100% sure you've disabled IPv6 on your Pi.

You should see no IPv6 addresses when you do ifconfig.

There doesn't look to be any ipv6 addresses there.

raspberry@raspberrypi:~ $ ifconfig
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether b8:27:eb:f4:b2:a5  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 60  bytes 6526 (6.3 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 60  bytes 6526 (6.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.20.102  netmask 255.255.255.0  broadcast 192.168.20.255
        ether b8:27:eb:a1:e7:f0  txqueuelen 1000  (Ethernet)
        RX packets 33593  bytes 43479590 (41.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 15902  bytes 2409503 (2.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

You might need to edit /etc/gai.conf also to disable IPv6 name resolution.