NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
18.32k stars 14.29k forks source link

Package request: Proxies to Bypass Censorship #287770

Open Aleksanaa opened 9 months ago

Aleksanaa commented 9 months ago

Proxies to Bypass Censorship

This often represents proxy software with traffic encryption and obfuscation features, which are employed to bypass network restrictions and safeguard privacy. Unlike typical proxy/VPN services, software of this kind strives to disguise the traffic it proxies as normal traffic, aiming to evade detection by various packet inspection technologies.

Note: Although some packages have been added, related modules may still be missing.

Core (Protocol Implementation)

Clients:

Servers:


If you have similar projects that should be added to this table, feel free to comment below.

Add a :+1: reaction to issues you find important.

Guanran928 commented 9 months ago

List of packages that are already in nixpkgs, please update the summary:

Existing packages I found that's not in nixpkgs:

Also https://github.com/noql-net/debs seems to contain a lot of proxy clients

Guanran928 commented 9 months ago

@Aleksanaa I wrote a module for clash-meta , consider reviewing? https://github.com/NixOS/nixpkgs/pull/287966

peigongdsd commented 8 months ago

Well REALLY hope if there's a naiveproxy. I tried to write the nix package but it was too complicated...

oluceps commented 8 months ago

Well REALLY hope if there's a naiveproxy. I tried to write the nix package but it was too complicated...

@peigongdsd

nix build github:KiruyaMomochi/nix#naiveproxy

CC @KiruyaMomochi, would you kindly consider contributing this package to nixpkgs? We would greatly appreciate it if you were willing to do so.

KiruyaMomochi commented 8 months ago

I have considered adding naiveproxy for a long time, but I haven't figured out how to do it properly.

My implementation is basically a copy-paste of chromium/common.nix. While it works for my own purpose, it may not suitable to be contributed directly to nixpkgs.

To add it to nixpkgs, I'm not sure if I should depend on chromium packages, or create a fully independent implementation.

peigongdsd commented 8 months ago

I have considered adding naiveproxy for a long time, but I haven't figured out how to do it properly.

My implementation is basically a copy-paste of chromium/common.nix. While it works for my own purpose, it may not suitable to be contributed directly to nixpkgs.

To add it to nixpkgs, I'm not sure if I should depend on chromium packages, or create a fully independent implementation.

Well, then things start to make sense despite the complexity of this derivation file. I once tried to translate kazgrad's original build script but it was burning out my sanity. Maybe we shoud just import and override chromium.nix a bit?

khankul commented 3 months ago

hysteria2 is in nixpkgs already. I suggest adding it to the OP for completeness' sake.

kwaa commented 2 months ago

I packaged naiveproxy-bin and it is now available at NUR.

nix run github:sn0wm1x/ur#naiveproxy-bin

I could also contribute it to Nixpkgs, but I'm not sure that's a good idea.

Cryolitia commented 2 months ago

I packaged naiveproxy-bin and it is now available at NUR.

Could you please try to package it from source. Generally speaking, we don't accept packaging release binary for open source software.

kwaa commented 2 months ago

Could you please try to package it from source.

I'll give it a try, but it's a bit difficult. I want to avoid using chromium packages.

kwaa commented 2 months ago

I'll give it a try, but it's a bit difficult. I want to avoid using chromium packages.

Hmm... building naiveproxy is very complex and requires a specific version of clang (chromium-browser-clang, llvmorg-19-init-10646-g084e2b53-57).

oluceps commented 2 months ago

I'll give it a try, but it's a bit difficult. I want to avoid using chromium packages.

Hmm... building naiveproxy is very complex and requires a specific version of clang (chromium-browser-clang, llvmorg-19-init-10646-g084e2b53-57).

Maybe you could take a look at KiruyaMomochi/nix and find some help. That's indeed super complex.