StreisandEffect / discussions

30 stars 3 forks source link

Include V2Ray as a service #85

Open nopdotcom opened 6 years ago

nopdotcom commented 6 years ago

StreisandEffect/streisand#1142 suggests adding the V2Ray suite as a service. I've asked @baimafeima to chime in with more information; if it works better against the usual Streisand threat model, it could be useful.

I am a little concerned about source code, and very concerned about this license:


Ways to Install V2Ray

Licenses of all content of this repository are reserved to the owner of V2Ray. No permission granted for reusing, redistribution and modification the content.


With all rights reserved, it is very difficult to distribute much of anything; in particular it clashes with our license to the point we can't include it (IANAL but leaning on the "mere aggregation" clause in the GPL can be trouble). Perhaps source code for a V2Ray server with a better license is lurking around somewhere, but I didn't see it. I think we need server source in order to include it in testing.

If your Streisand server had Docker on it, it wouldn't be that hard to install V2Ray, I think. Maybe somebody could manage a contrib option for installing Docker, maybe in a fork. But I can't see enabling the Docker daemon in a default Streisand configuration; the security footprint is huge, and I don't think we can give useful advice in each case about locking a particular Docker container down, or unlocking stuff in the firewall.

nopdotcom commented 6 years ago

Mentioning #86 as a probable prerequisite.

sabersalv commented 6 years ago

@nopdotcom

I am a little concerned about source code, and very concerned about this license:

I'm not follow what do you mean.

V2ray source code is license under MIT. And the code is written in Go lang, so it's very easy to download a pre-compiled package or use go get -u github.com/v2ray/v2ray-core to compile from the source code.

You can find more information in the Installation Documentation.

If you want to add v2ray into streisand, I'd like to help.

VictoriaRaymond commented 6 years ago

@nopdotcom

I am the maintainer of V2Ray. Thanks for being interested in Project V.

You were looking at the wrong repository. As @sabersalv mentioned, the source code of V2Ray executable is under MIT license. What you need to do is to write a piece of script (or docker file) to deploy V2Ray in the way best for your project.

Compared with Shadowsocks, V2Ray offers better functionalities (and not limited to):

  1. UDP over TCP. We believe that it is an obvious pattern if an app opens both TCP and UDP on the same port. This behavior can be easily detected, and blocked by GFW.
  2. Various of transport, including TLS, WebSocket, mKCP (reliable stream transport over UDP), to hide traffic from detection.
  3. Management through gRPC. The V2Ray instance can be managed/contacted via gRPC. This is a feature being developed currently, but there are some useful services/signals ready for use by now. See stats and api.

All the features above are optional and configurable. The bottom line is V2Ray can be configured to be exactly the same as Shadowsocks, but users can enable these features at their interest.

nopdotcom commented 6 years ago

@VictoriaRaymond: Thank you for your response. Please forgive my lack of action on it; I had lost the notification I think. I'll study now.

"UDP on TCP" has bugged me for a while.

We are definitely behind at management tools; in fact, we haven't been thinking about them. The most action we've taken is closing down monit access; it was just more attack surface for little return. Good management could be worth it.

@nickolasclarke: I know you're super-busy lately, but could you take a glance at this too?

hadifarnoud commented 6 years ago

@VictoriaRaymond V2Ray addition would be awesome, thanks for participating. Is V2Ray based on Shadowsocks?

Always wanted to try V2Ray as Iran firewall is based on GFW and we have same issues of getting blocked soon

VictoriaRaymond commented 6 years ago

@hadifarnoud No. V2Ray is designed as a platform. It includes Shadowsocks protocol among many others. The main protocol, named "VMess", is designed to fix some shortages in Shadowsocks. For example, VMess supports multiple users on one port, while Shadowsocks has strictly one user to port mapping.

Here is our official document: https://www.v2ray.com/en/ and source code: https://github.com/v2ray/v2ray-core/ . Feel free to give a try.

baimafeima commented 5 years ago

@VictoriaRaymond What client do you recommend to use for Linux-based operating systems? I've only found https://github.com/v2ray/v2ray-qt5 but there hasn't been an official tarball release yet. Is this client under development?

VictoriaRaymond commented 5 years ago

@baimafeima V2Ray itself can be used as a client (without GUI). You just need to configure a socks inbound proxy and VMess (or Shadowsocks) outbound. It will run as a "client".

See the releases here for linux.

MikePadge commented 5 years ago

shadowsocks now has implementation of v2ray plugin and has deprecated simple-obfs

https://github.com/shadowsocks/v2ray-plugin

stonedreamforest commented 4 years ago

+1

proletarius101 commented 4 years ago

shadowsocks now has implementation of v2ray plugin and has deprecated simple-obfs

https://github.com/shadowsocks/v2ray-plugin

It's great to have shadowsocks with v2ray as a plugin. However, as described in SIP003, there are noticeable performance punishment introduced by double (or triple, if accompanied with TLS) encryption/decryption/integrity check in two ways of transmission.

Although it doesn't make any sense to have layered encryption in countries where the internet is not suffering severe state censorship, in China, it's only possible for us to connect to an oversea Streisand server via V2ray + TLS. Other obfuscation methods are almost invalid.

I hope a separate V2Ray service could be added into the Streisand project, as that will make it useful for Chinese people. I would like open a pull request if necessary.

BTW, V2Ray is nothing but Yet Another Shadowsocks. The protocol is quite similar (see here, sadly no English version). The magic is that it supports a series of layers which make the traffic looks normal. That is an idea different from VPNs.

hadifarnoud commented 4 years ago

dedicated V2Ray would be awesome. I personally don't care that much about performance as long as it works. I use this to bypass internet censorship.