outline-apps: Linux client based on shadowsocks-libev not working

image

$ ./Outline-Client.AppImage
loading web app from file:///tmp/.mount_OutlinK6eLfr/resources/app.asar/www/electron_index.html?appName=Outline
(node:28847) electron: The default of contextIsolation is deprecated and will be changing from false to true in a future release of Electron.  See https://github.com/electron/electron/issues/23506 for more information
Could not load active tunnel:  [Error: ENOENT: no such file or directory, open '/home/user/.config/Outline/connection_store'] {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/home/user/.config/Outline/connection_store'
}
Checking for update
(electron) Sending uncompressed crash reports is deprecated and will be removed in a future version of Electron. Set { compress: true } to opt-in to the new behavior. Crash reports will be uploaded gzipped, which most crash reporting servers support.
Outline is starting
Update for version 1.4.0 is not available (latest version: 1.4.0, downgrade is disallowed).
connecting to 3f8039ae-83b8-41f7-bdc6-7cc561db272c...
(node:28847) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
UDP support: true
(re-)installing routing daemon
copying service files to /tmp/rPVBsY
[EXIT - badvpn-tun2socks]: Exited with code 1
a helper has exited, disconnecting
could not stop routing: Cannot call write after a stream was destroyed
[EXIT - ss-local]: Exited with code 0
could not connect: h (routing daemon is not running)
Promise "DNS lookup" resolved before 10000 ms

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Reactions: 15
  • Comments: 21 (1 by maintainers)

Most upvoted comments

I had the same bug. The problem appeared after a kernel update. It happens because there is no kernel module TUN. This can be checked with the following command:

$ sudo dmesg | grep TUN
[   26.091113] tun: Universal TUN/TAP device driver, 1.6

Outline needs to create a TUN interface to work properly.

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.31.1    0.0.0.0         UG    304    0        0 wlan0
10.0.85.0       0.0.0.0         255.255.255.0   U     0      0        0 outline-tun0
192.168.31.0    0.0.0.0         255.255.255.0   U     0      0        0 wlan0

If you don’t get this output, simply reboot and check again.

If it is still missing, add a TUN kernel module and reboot.

sudo modprobe tun
lsmod | grep tun
reboot

I hope it helps.

This problem exists in the following versions and I tested it.

Ubuntu 20.04 Ubuntu 21.10 Ubuntu 22.04 PopOS 22.04

Please fix this bug.

As a workaround you can recompile the client locally. I’ve just tried it and it’s working just fine on Ubuntu 22.04

  1. Clone the repo:
    git clone git@github.com:Jigsaw-Code/outline-client.git
    cd outline-client
    
  2. Install node 16 (for example using brew)
    brew install node@16
    
  3. Install all dependencies
    npm install
    
  4. Build the app
    npm run action electron/build linux
    
  5. Now you have properly working Outline-Client.AppImage and you can run it
    ./build/dist/Outline-Client.AppImage
    

I’m using the latest outline appimage on Debian 11 and 12

  1. I start the app

  2. Then I click on connect

  3. The app asks for my root password

  4. I enter the password and then the app says “Initializing Outline…Outline has been successfully initialized. please try again to conenct to the server” and that’s it… connecting again doesn’t seem to be working

The server is running on Debian 11. Windows and android apps work fine.

PS It looks you need to reboot your PC to make the app working… The devs should have specified it in the app description tbh…

I have the same issue in Ubuntu 22.04.

In my case for some reason i was not in the outlinevpn group. Added to the group. Rebooted. It works.

Fedora 35, AppImage 1.7.0, same reslut.