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.4k stars 1.36k forks source link

[Feature Request] add Linux support #10

Closed Peter42 closed 5 years ago

pojntfx commented 6 years ago

I'd be very interested as well!

irshadc commented 6 years ago

We are also looking for Debian support.

jacobamey commented 6 years ago

+1 this. Would also add that this shouldn't be built for just Debian. there are Fedora and Distro X users out there too ;-) just use simple tech that's available everywhere. Maybe an electron App or something like that?

asoltesz commented 6 years ago

Linux is the only one that has security-oriented distributions like Tails.

How come that all of the relatively less secure operating systems get clients but Linux doesn't?

Since the Outline server is only on Linux, the client could obviously reuse the networking infrastructure code...The UI is web based...So, this should be an easy thing to implement.

Seems like this project and its owners are actively hostile to Linux (since this glaring omission cannot be explained in any other way).

ibnesayeed commented 6 years ago

Hence the tweet https://twitter.com/ibnesayeed/status/977038976660987904

iezepov commented 6 years ago

Hi! Are there any expectations on when the linux client will be available?

asoltesz commented 6 years ago

@Project-Owners Please, make a statement about the your plans and expected release date of the Linux client !

pojntfx commented 6 years ago

They could distribute it using Snap || Flatpak ... Well it's Google, they did not create a GDrive client for Linux until now and quite frankly I believe they just aren't interested. Time to use an actually FOSS-supporting product here, the devs don't seem to be interested in it.

dlenski commented 6 years ago

(I was alerted to this discussion in https://github.com/dlenski/openconnect/issues/100 …)

I would definitely advocate for extending the cross-platform open-source openconnect VPN client to support Outline. It already has…

All this made it relatively straightforward for me to add support for the GlobalProtect VPN protocol to openconnect after reverse-engineering the protocol.

Outline VPN protocol ought to be even easier given appropriate protocol documentation. (Does this document exist outside of the client and server codebases?)

bemasc commented 6 years ago

Outline uses the Shadowsocks protocol, and is compatible with most Shadowsocks clients (including existing clients for Linux). The protocol is documented at http://shadowsocks.org/en/spec/Protocol.html

dlenski commented 6 years ago

Outline uses the Shadowsocks protocol, and is compatible with most Shadowsocks clients (including existing clients for Linux). The protocol is documented at http://shadowsocks.org/en/spec/Protocol.html

Ah, that's good to know. Thanks. I saw some press blurb about the connection to Shadowsocks, but didn't realize it actually uses the same wire protocol. It appears that the Shadowsocks protocol is itself based on SOCKS5 (documented in rfc1928).

That's great!

ibnesayeed commented 6 years ago

@bemasc: Outline uses the Shadowsocks protocol, and is compatible with most Shadowsocks clients (including existing clients for Linux).

While an Outline-specific Linux client is not being provided, it might be helpful to document somewhere how Linux users can play with it.

jab commented 6 years ago

Since Electron supports Linux desktops, a possible shortest path forward here is to start from the Windows client, which already packages up the UI as an Electron app, and swap out the Windows-specific bits for Linux-specific bits. Higher variation among different Linux distributions makes features like "auto-configure as the system proxy" more difficult to guarantee, but limiting support for those to the top N most popular Linux desktops could hit a good sweet spot.

bemasc commented 6 years ago

Indeed, porting the Electron frontend should be straightforward, but it's not clear what the right approach is for the network configuration backend. This is an open-source project, so I would encourage anyone who wants to give this a try to send us a pull request.

ZergZe commented 6 years ago

While mac os client was broken, I used just ShadowsocksX-NG (macos ss client) without any vpn. The browse's traffic was going though outline server ok (while all other traffic was passing by the tunnel). Seems, that for linux the same approach may work. But it would be great if somebody share experience how to complement the shadowsocks with proper vpn setting.

ZergZe commented 6 years ago

Just Info:

I've compared Outline VS OpenVPN via stunnel (Streisand project). Connection to the Outline-based server shows 2-3 time higher speed then connection to the Streisand-based server (in the same circumstances). So, using Outline on linux too makes a lot of sense.

Matvey-Kuk commented 6 years ago

For those who will search how to connect to Outline Server from Ubuntu 16.04:

1) Get your connection link. It should look like: ss://ZW5jX3Byb3RvY29sX25hbWU6cHdkCg==@123.123.123.123:1122/?outline=1

2) Decode your password and server's encryption method name:

$ echo 'ZW5jX3Byb3RvY29sX25hbWU6cHdkCg==' | base64 --decode

3) Install some software:

sudo apt-get install software-properties-common -y
sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev -y
sudo apt-get update
sudo apt install shadowsocks-libev
sudo apt-get install polipo

4) Start ss-local and polipo. This combination will serve shadowsocks -> socks -> http proxy for you. That's the only way I found to make both browser & terminal to work good.

sudo service polipo stop
ss-local -s 123.123.123.123 -p 1122 -k password -b 127.0.0.1 -l 1080 -m encryption_method_name -u &
sudo polipo socksParentProxy=localhost:1080 &

6) Set system HTTP proxy as localhost:8123. System -> Network -> Network Proxy -> Manual.

7) Set export http_proxy=http://localhost:8123 in a terminal where you want to use this proxy.

Matvey-Kuk commented 6 years ago

Hope Outline team will brew linux client one day 🙏 It will be really helpful!

ZergZe commented 6 years ago

is this approach wraps not all the traffic but only browser's?

Matvey-Kuk commented 6 years ago

@ZergZe as well as I know it's only for apps which are ready to work with proxy. Some of them need additional setup.

hbakhtiyor commented 6 years ago

hi @Matvey-Kuk, why need sudo add-apt-repository ppa:max-c-lv/shadowsocks-libev -y not official?

ghost commented 6 years ago

@hbakhtiyor To install latest shadowsocks-libev via apt. It's shadowsocks-libev's offical apt repository. See https://github.com/shadowsocks/shadowsocks-libev#install-from-repository

wuhamad commented 6 years ago

after 6 months still there's no Linux client. i hope that they are working on it.

isimonov commented 5 years ago

+1

yhio commented 5 years ago

why still no linux client?

trevj commented 5 years ago

Folks, please see https://github.com/Jigsaw-Code/outline-client/pull/393 which should get us a beta, at least, client for Linux.

trevj commented 5 years ago

Folks, I'm going to close this now that the Linux client is available for download from getoutline.org and the invitation page supports it.

vlad-khramov commented 5 years ago

How to connect with this client to existing ss:// link?

ghost commented 5 years ago

@quantum13 Just copy&paste it

vlad-khramov commented 5 years ago

@studentmain sorry, I've run outline manager instead of client :)

tuononh commented 5 years ago

hi! how can I use it in non-desktop environment. like command line only?