Jigsaw-Code / outline-apps

Outline Client and Manager, developed by Jigsaw. Outline Manager makes it easy to create your own VPN server. Outline Client lets you share access to your VPN with anyone in your network, giving them access to the free and open internet.
https://getoutline.org/
Apache License 2.0
8.24k stars 1.35k forks source link

Outline Proxy Routing Controller does not start on CentOS 8 #1021

Open Himura2la opened 3 years ago

Himura2la commented 3 years ago

Describe the bug Does not work on CentOS 8 Stream

To Reproduce

I changed this section. Previously there was a screenshot of GUI with an error message.

$ docker run -itv ~/outline-client/tools/outline_proxy_controller/dist:/w centos /w/OutlineProxyController 
/w/OutlineProxyController: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /w/OutlineProxyController)

Expected behavior

  -h [ --help ]                print this message
  -d [ --daemonize ]           run in daemon mode
  -s [ --socket-filename ] arg unix socket filename where controller listen on 
                               for commands
  -l [ --log-filename ] arg    the filename to store the loggers output

Exception: missing socket-filename argument is mandatory

Client System (please complete the following information):

Submit Feedback I noticed that the client uses sudo to put some files into /tmp

I found an outline_proxy_controller.service service and tried to do service outline_proxy_controller status, which revealed the following:

$ service outline_proxy_controller status
Redirecting to /bin/systemctl status outline_proxy_controller.service
● outline_proxy_controller.service - Outline Proxy Routing Controller
   Loaded: loaded (/etc/systemd/system/outline_proxy_controller.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since Thu 2021-05-06 23:25:24 MSK; 15min ago
  Process: 8079 ExecStart=/usr/local/sbin/OutlineProxyController --socket-filename=/var/run/outline_controller (code=exited, status=1/FAILURE)
 Main PID: 8079 (code=exited, status=1/FAILURE)

мая 06 23:25:24 centos-lenovo systemd[1]: Started Outline Proxy Routing Controller.
мая 06 23:25:24 centos-lenovo OutlineProxyController[8079]: /usr/local/sbin/OutlineProxyController: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /usr/local/sbin/OutlineProxyController)
мая 06 23:25:24 centos-lenovo systemd[1]: outline_proxy_controller.service: Main process exited, code=exited, status=1/FAILURE
мая 06 23:25:24 centos-lenovo systemd[1]: outline_proxy_controller.service: Failed with result 'exit-code'.

I'm going to try compiling an OutlineProxyController to replace your /usr/local/sbin/OutlineProxyController binary, but anyway the problem exists.

Himura2la commented 3 years ago

Here's the binary I got after compiling on my host system. It seems a kind of alive.

$ sudo ./OutlineProxyController --socket-filename=/var/run/outline_controller
1620422630.859223: [ERROR] need at least a destination address

1620422630.859355: [WARN] unable to query the default route to the outline proxy
1620422630.859369: [WARN] we could not detect the best interface, will try again at connect

Anyway, looks like the electron app copies its own binary every time, and I can't use my compiled one...

OutlineProxyController.zip Notice for everyone: Please always check every untrusted binary from strange guys for viruses before running, and never execute them on your main host system. I'm not sure why I post it here, but hope it can help someone...

My next step is to build an electron app with my binary

Beepbloop commented 3 years ago

I've encountered the same issue on Ubuntu 18. I managed to work around it by first trying to connect using Linux Release 1.2.0. It seems that will run the setup script and switch to 1.4.0 after the setup script has been successfully executed. #1024

Himura2la commented 3 years ago

The app built with the attached binary as tools/outline_proxy_controller/dist/OutlineProxyController works fine! Also it seems operational on ubuntu, so it looks like the https://github.com/Jigsaw-Code/outline-client/blob/master/tools/outline_proxy_controller/Dockerfile needs some more work to support multiple distributions

Himura2la commented 3 years ago

Looks like the similar issue in other product https://github.com/cdr/code-server/issues/209

Himura2la commented 2 years ago

@fortuna any updates on this? Looks like my MR is stuck