Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Outline client on Fedora 39 #1794

Closed
SheezZarR opened this issue Dec 7, 2023 · 13 comments
Closed

Support Outline client on Fedora 39 #1794

SheezZarR opened this issue Dec 7, 2023 · 13 comments
Assignees
Labels
bug Something is broken, we are tracking it needs more info We need more information in order to help or verify os/linux

Comments

@SheezZarR
Copy link

SheezZarR commented Dec 7, 2023

Describe the bug
After updating Fedora from 37 to 39 the client hops between 2 states:

  • multiple re-connection attempts for 10-30 seconds followed by;
  • 30-60 seconds of working fine (websites are browse-able etc...).

To reproduce

How can the broken behavior be reproduced?

  1. Install Fedora 37;
  2. Install Outline Client and add working server connection;
  3. Update the distro to newer version.

Expected behavior

What behavior did you expect?

The connection to be established right away and won't be interrupted.
At least more continuous operation.

Screenshots

If applicable, add screenshots to help explain your problem.

Sure, I hope it will help. Here is a recording I have made that illustrates the behavior.

Client system:

  • Outline Client Version [e.g. iOS 1.3.1]
  • Your Operating System: [e.g. iOS 14.2, Windows 10]

Outline Client Version: Version 1.11.0 (468189)
Operating System: Linux fedora 6.5.12-300.fc39.x86_64 #1 SMP PREEMPT_DYNAMIC Mon Nov 20 22:44:24 UTC 2023 x86_64 GNU/Linux

Submit feedback

Please submit feedback through the app and label it with this issue number.

List debugging tools for networking? That could help..? Per OS of course.

Additional context

Add any other context about the problem here.

I am using Fedora 39 on two computers and the behavior is the same. I also upgraded the second pc and got the exact same problem (from 37 to 39).

The issue is not with the Outline Server because the android app works just fine with exact same host. There are no such weird shenanigans and the web is browse-able...

Btw, if I ran the app it complained about a missing connection store file. The googled proposals did not helped.

@SheezZarR SheezZarR added the bug Something is broken, we are tracking it label Dec 7, 2023
@SheezZarR SheezZarR changed the title [Fedora 39] Outline client frequently interupts the connection after distribution update. [Fedora 39] Outline client frequently interrupts the connection after distribution update. Dec 7, 2023
@SheezZarR
Copy link
Author

I have tried updating to the latest version - no positive change.

@SheezZarR
Copy link
Author

Here is the output from the app:

Outline is starting
loading web app from file:///tmp/.mount_Outling8rDqZ/resources/app.asar/www/index_electron.html?appName=Outline
Could not load active tunnel:  [Error: ENOENT: no such file or directory, open '/home/sheezzarr/.config/Outline/connection_store'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/home/sheezzarr/.config/Outline/connection_store'
}
Checking for update
Update for version 1.12.1 is not available (latest version: 1.12.1, downgrade is disallowed).
connecting to *******...
using tun2socks to check connectivity
[7797:1209/200113.675273:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 1 times!
[EXIT - tun2socks]: Exited with code 0
UDP support: true
starting routing daemon
tun2socks started
connected to *******
reconnecting to *******
reconnected to *******
using tun2socks to check connectivity
[EXIT - tun2socks]: Exited with code 0
reconnecting to *******
reconnected to *******
using tun2socks to check connectivity
[EXIT - tun2socks]: Exited with code 0
reconnecting to *******
reconnected to *******
using tun2socks to check connectivity
[EXIT - tun2socks]: Exited with code 0
[7797:1209/200121.460970:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 2 times!
[7797:1209/200125.022959:ERROR:gl_surface_presentation_helper.cc(260)] GetVSyncParametersIfAvailable() failed for 3 times!
reconnecting to *******
reconnected to *******
using tun2socks to check connectivity
[EXIT - tun2socks]: Exited with code 0
reconnecting to *******
reconnected to *******
using tun2socks to check connectivity
[EXIT - tun2socks]: Exited with code 0
[EXIT - tun2socks]: Exited with code 0
tun2socks exited with no errors
disconnected from *******

@jyyi1 jyyi1 self-assigned this Dec 13, 2023
@jyyi1 jyyi1 added the os/linux label Dec 13, 2023
@jyyi1 jyyi1 changed the title [Fedora 39] Outline client frequently interrupts the connection after distribution update. Support Outline client on Fedora 39 Dec 13, 2023
@jyyi1
Copy link
Contributor

jyyi1 commented Dec 13, 2023

Hi @SheezZarR , sorry about the inconvenience. Due to limited workforce, Outline Client only supports Ubuntu for now. But we have made a simpler Outline CLI that should be compatible to more Linux distros. Would you mind trying that to see whether it works on Fedora? If you are a developer, please also feel free to contribute to it if you meet any problems. Thanks.

@jyyi1 jyyi1 added the needs more info We need more information in order to help or verify label Dec 13, 2023
@SheezZarR
Copy link
Author

SheezZarR commented Dec 14, 2023

@jyyi1. Thanks for reaching out!
I have tested the CLI utility and it works just fine but one caveat.
I have to run the
go run github.com/Jigsaw-Code/outline-sdk/x/examples/outline-cli@latest -transport "ss://<outline-server-access-key>"
under the root otherwise it fails with this error message:
[ERROR] 2023/12/14 13:15:51 failed to create tun device: failed to create TUN/TAP device: ioctl: operation not permitted

@jyyi1
Copy link
Contributor

jyyi1 commented Dec 14, 2023

@SheezZarR , yes the root account is required in order to configure system routing tables. Outline Client uses some tricks to avoid that, but they're causing issues on Linux distros other than Ubuntu.

@Sergei-Nikiforov
Copy link

Sergei-Nikiforov commented Feb 9, 2024

Hi @jyyi1 @SheezZarR

If I run go run github.com/Jigsaw-Code/outline-sdk/x/examples/outline-cli@latest -transport "ss://" under the root.

I get the error:
go: downloading github.com/Jigsaw-Code/outline-sdk v0.0.12-0.20240117212550-6cd87709dc1e
/root/go/pkg/mod/github.com/!jigsaw-!code/outline-sdk/x@v0.0.0-20240205193844-52ed380b366a/examples/outline-cli/outline_packet_proxy.go:21:2: github.com/Jigsaw-Code/outline-sdk@v0.0.12-0.20240117212550-6cd87709dc1e: invalid version: unknown revision 6cd87709dc1e
/root/go/pkg/mod/github.com/!jigsaw-!code/outline-sdk/x@v0.0.0-20240205193844-52ed380b366a/examples/outline-cli/outline_device.go:24:2: github.com/Jigsaw-Code/outline-sdk@v0.0.12-0.20240117212550-6cd87709dc1e: invalid version: unknown revision 6cd87709dc1e
/root/go/pkg/mod/github.com/!jigsaw-!code/outline-sdk/x@v0.0.0-20240205193844-52ed380b366a/examples/outline-cli/outline_packet_proxy.go:23:2: github.com/Jigsaw-Code/outline-sdk@v0.0.12-0.20240117212550-6cd87709dc1e: invalid version: unknown revision 6cd87709dc1e
/root/go/pkg/mod/github.com/!jigsaw-!code/outline-sdk/x@v0.0.0-20240205193844-52ed380b366a/examples/outline-cli/outline_device.go:25:2: github.com/Jigsaw-Code/outline-sdk@v0.0.12-0.20240117212550-6cd87709dc1e: invalid version: unknown revision 6cd87709dc1e
/root/go/pkg/mod/github.com/!jigsaw-!code/outline-sdk/x@v0.0.0-20240205193844-52ed380b366a/examples/outline-cli/outline_device.go:26:2: github.com/Jigsaw-Code/outline-sdk@v0.0.12-0.20240117212550-6cd87709dc1e: invalid version: unknown revision 6cd87709dc1e
/root/go/pkg/mod/github.com/!jigsaw-!code/outline-sdk/x@v0.0.0-20240205193844-52ed380b366a/config/shadowsocks.go:25:2: github.com/Jigsaw-Code/outline-sdk@v0.0.12-0.20240117212550-6cd87709dc1e: invalid version: unknown revision 6cd87709dc1e
/root/go/pkg/mod/github.com/!jigsaw-!code/outline-sdk/x@v0.0.0-20240205193844-52ed380b366a/config/config.go:25:2: github.com/Jigsaw-Code/outline-sdk@v0.0.12-0.20240117212550-6cd87709dc1e: invalid version: unknown revision 6cd87709dc1e
/root/go/pkg/mod/github.com/!jigsaw-!code/outline-sdk/x@v0.0.0-20240205193844-52ed380b366a/config/config.go:26:2: github.com/Jigsaw-Code/outline-sdk@v0.0.12-0.20240117212550-6cd87709dc1e: invalid version: unknown revision 6cd87709dc1e
/root/go/pkg/mod/github.com/!jigsaw-!code/outline-sdk/x@v0.0.0-20240205193844-52ed380b366a/config/tls.go:23:2: github.com/Jigsaw-Code/outline-sdk@v0.0.12-0.20240117212550-6cd87709dc1e: invalid version: unknown revision 6cd87709dc1e
/root/go/pkg/mod/github.com/!jigsaw-!code/outline-sdk/x@v0.0.0-20240205193844-52ed380b366a/config/config.go:27:2: github.com/Jigsaw-Code/outline-sdk@v0.0.12-0.20240117212550-6cd87709dc1e: invalid version: unknown revision 6cd87709dc1e

What could be a problem?

@SheezZarR
Copy link
Author

@Sergei-Nikiforov Hello
Does specifying the commit hash work? Like so:

go run github.com/Jigsaw-Code/outline-sdk/x/examples/outline-cli@7294484 -transport "ss://<outline-server-access-key>"

Maybe some sort of a caching issue, idk... Latest tag has always been working for me.
Additionally, you could try to update your go installation or change to 1.20.2 which i currently use and seem to work.

@jyyi1
Copy link
Contributor

jyyi1 commented Feb 17, 2024

Hi @SheezZarR , it sounds like the CLI is referencing to an invalid version of Outline SDK. Would you please create a new issue here? https://github.com/Jigsaw-Code/outline-sdk/issues , so we will be able to track and fix it in the correct repository. Thanks.

@Sergei-Nikiforov
Copy link

Hi @SheezZarR

Thanks a lot.
The commit hash works:
"go run github.com/Jigsaw-Code/outline-sdk/x/examples/outline-cli@7294484 -transport "ss://<outline-server-access-key>"

However https://www.dnsleaktest.com/ shows the dns leaks.

@SheezZarR
Copy link
Author

@Sergei-Nikiforov, glad it has helped. Unfortunately, I can't follow up on the dns issue tho. Would you mind opening an issue there (https://github.com/Jigsaw-Code/outline-sdk/issues)? In regards to the incorrect version that CLI pulls in your case.

@jyyi1 the CLI works fine for me. It references the correct hash/tag. It is @Sergei-Nikiforov that has the issue.

@Sergei-Nikiforov
Copy link

Sergei-Nikiforov commented Feb 18, 2024

Hi @SheezZarR , @jyyi1

I can't follow up on the dns issue tho. Would you mind opening an issue there (https://github.com/Jigsaw-Code/outline-sdk/issues)? In regards to the incorrect version that CLI pulls in your case.

Done!
CLI is referencing to an invalid version of Outline SDK

@maikeriva
Copy link

maikeriva commented Jun 27, 2024

Adding my 2 cents here on Fedora support. The DNS issue can be worked around through resovlectl.

First identify your link interfaces by typing resolvectl. Take note of all of them and identify which is the one belonging to outline (on my system is outline233).

Install the outline CLI as per official instructions (don't use the appimage as it results in the reconnection issue shown in the commends above).

Then start an outline tunnel and configure resolvconf as follows:

outline-cli -transport "YOUR_TRANSPORT_KEY"
# For every link interface
resolvectl default-route LINK_INTERFACE false
# Finally
resolvectl dns OUTLINE_INTERFACE 9.9.9.9
resolvectl default-route OUTLINE_INTERFACE true

I am available to work on a patch for the client and/or CLI under some guidance.

EDIT: Modified for clarity and use of outline CLI

@NukerDuker
Copy link

I also faced this issue, and after installing CLI via go run, i have another error "failed to create tun device: failed to create TUN/TAP device: ioctl: operation not permitted".
I find this project, which provides script for Outline cli installation, and it works! All installation process in readme:
https://github.com/Kir-Antipov/outline-cli

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something is broken, we are tracking it needs more info We need more information in order to help or verify os/linux
Projects
None yet
Development

No branches or pull requests

6 participants