Easy per application transparent proxy built on cgroup.

Overview

cproxy

Continuous integration

cproxy can redirect TCP and UDP traffic made by a program to a proxy, without requiring the program supporting a proxy.

Compared to many existing complicated transparent proxy setup, cproxy usage is as easy as proxychains, but unlike proxychains, it works on any program (including static linked Go programs) and redirects DNS requests.

Note: The proxy used by cproxy should be a transparent proxy port (such as V2Ray's dokodemo-door inbound and shadowsocks ss-redir). A good news is that even if you only have a SOCKS5 or HTTP proxy, there are tools that can convert it to a transparent proxy for you (for example, transocks, ipt2socks and ip2socks-go).

Installation

You can install by downloading the binary from the release page or install with cargo:

cargo install cproxy

Usage

Simple usage: just like proxychains

You can launch a new program with cproxy with:

cproxy --port  --  --arg1 --arg2 ...

All TCP connections and DNS requests will be proxied. In this case, your local transparent proxy should support DNS address overriding to make DNS requests redirection work properly. For an example setup, see wiki. If you don't want to proxy DNS requests, run with

cproxy --port  --no-dns --  --arg1 --arg2 ...

Simple usage: use iptables tproxy

If your system support tproxy, you can use tproxy with --use-tproxy flag:

cproxy --port <destination-local-port> --use-tproxy -- <your-program> --arg1 --arg2 ...
# or for existing process
cproxy --port <destination-local-port> --use-tproxy --pid <existing-process-pid>

With --use-tproxy, there are several differences:

  • All UDP traffic are proxied instead of only DNS UDP traffic to port 53.
  • Your V2Ray or shadowsocks service should have tproxy enabled on the inbound port. For V2Ray, you need "tproxy": "tproxy" as in V2Ray Documentation. For shadowsocks, you need -u as shown in shadowsocks manpage.

An example setup can be found here.

Note that when you are using the tproxy mode, you can override the DNS server address with cproxy --use-tproxy --override-dns .... This is useful when you want to use a different DNS server for a specific application.

Advanced usage: proxy an existing process

With cproxy, you can even proxy an existing process. This is very handy when you want to proxy existing system services such as docker. To do this, just run

cproxy --port  --pid 

The target process will be proxied as long as this cproxy command is running. You can press Ctrl-C to stop proxying.

How does it work?

cproxy creates a unique cgroup for the proxied program, and redirect its traffic with packet rules.

Limitations

  • cproxy requires sudo and root access to modify cgroup.
  • Currently only tested on Linux.

Similar projects

There are some awesome existing work:

  • graftcp: work on most programs, but cannot proxy UDP (such as DNS) requests. graftcp also has performance hit on the underlying program, since it uses ptrace.
  • proxychains: easy to use, but not working on static linked programs (such as Go programs).
  • proxychains-ng: similar to proxychains.
  • cgproxy: cgproxy also uses cgroup to do transparent proxy, and the idea is similar to cproxy's. There are some differences in UX and system requirements:
    • cgproxy requires system cgroup v2 support, while cproxy requires v1.
    • cgproxy requires a background daemon process cgproxyd running, while cproxy does not.
    • cgproxy requires tproxy, which is optional in cproxy.
    • cgproxy can be used to do global proxy, while cproxy does not intended to support global proxy.
Comments
  • Error: iptables exit with 4

    Error: iptables exit with 4

    Error info :

    └─# ./.cargo/bin/cproxy --port 60080 --redirect-dns -- bash
    iptables v1.8.5 (nf_tables):  RULE_APPEND failed (Invalid argument): rule in chain nozomi_tproxy_out_2556086
    Error: iptables -t nat -A nozomi_tproxy_out_2556086 -p tcp -m cgroup --path cproxy-2556086 -j REDIRECT --to-ports 60080 exit with 4
                                                                                                                                                                                      
    ┌──(root💀kali)-[/home/kali]
    └─# iptables -t nat -nvL                                                                                                                                                      1 ⨯
    Chain PREROUTING (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
      465  106K DOCKER     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type LOCAL
    
    Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
    
    Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
        0     0 MASQUERADE  all  --  *      !docker0  172.17.0.0/16        0.0.0.0/0           
    
    Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
     pkts bytes target     prot opt in     out     source               destination         
        0     0 DOCKER     all  --  *      *       0.0.0.0/0           !127.0.0.0/8          ADDRTYPE match dst-type LOCAL
        0     0 nozomi_tproxy_out_2556086  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    
    Chain DOCKER (2 references)
     pkts bytes target     prot opt in     out     source               destination         
        0     0 RETURN     all  --  docker0 *       0.0.0.0/0            0.0.0.0/0           
    
    Chain nozomi_tproxy_out_2556086 (1 references)
     pkts bytes target     prot opt in     out     source               destination         
        0     0 RETURN     udp  --  *      lo      0.0.0.0/0            0.0.0.0/0           
        0     0 RETURN     tcp  --  *      lo      0.0.0.0/0            0.0.0.0/0           
        0     0 REDIRECT   tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            cgroup 2556086 redir ports 60080
                                                                                                                                        
    

    my system info:

    └─# uname -a
    Linux kali 5.9.0-kali1-amd64 #1 SMP Debian 5.9.1-1kali2 (2020-10-29) x86_64 GNU/Linux
    
    └─# ./.cargo/bin/cproxy --version                          
    cproxy 4.1.2
    
    └─# iptables --version   
    iptables v1.8.5 (nf_tables)
    
    
    opened by Green-m 5
  • chore: bump anyhow from 1.0.62 to 1.0.66

    chore: bump anyhow from 1.0.62 to 1.0.66

    Bumps anyhow from 1.0.62 to 1.0.66.

    Release notes

    Sourced from anyhow's releases.

    1.0.66

    • Reduce unhelpful backtrace frames in backtraces captured during a context call (#279)

    1.0.65

    • impl Provider for anyhow::Error

    1.0.64

    • Correctly propagate Backtrace when using #[source] anyhow::Error with thiserror crate (#231)

    1.0.63

    Commits
    • 8de29aa Release 1.0.66
    • 54fc812 Merge pull request #279 from dtolnay/contextbacktrace
    • 131249b Remove 2 frames of noise from 'context' backtraces
    • f2123ab Ui test changes for trybuild 1.0.66
    • 9bd74a1 Restore pre-nightly-2022-10-05 behavior of test_path PhantomData tests
    • 77c4fa4 Update test suite to nightly-2022-10-05
    • 7b171d6 Ignore bool_to_int_with_if clippy lint in test suite
    • 94ae34b Raise minimum tested toolchain to rust 1.56
    • 94f6f4d Remove default package.readme metadata from Cargo.toml
    • 4de2068 Release 1.0.65
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore: bump anyhow from 1.0.62 to 1.0.65

    chore: bump anyhow from 1.0.62 to 1.0.65

    Bumps anyhow from 1.0.62 to 1.0.65.

    Release notes

    Sourced from anyhow's releases.

    1.0.65

    • impl Provider for anyhow::Error

    1.0.64

    • Correctly propagate Backtrace when using #[source] anyhow::Error with thiserror crate (#231)

    1.0.63

    Commits
    • 4de2068 Release 1.0.65
    • 07acdac Merge pull request #271 from dtolnay/provider
    • ee49ec0 Add impl Provider in build.rs probe
    • b7448d3 impl std::any::Provider for anyhow::Error
    • 916e22b Release 1.0.64
    • 480e480 Merge pull request #268 from dtolnay/provide
    • b30f5c5 Include outer backtrace when called as source.provide
    • 4b8df91 GitHub Workflows security hardening
    • 007c69c Merge pull request #267 from dtolnay/demand
    • 1b298fe Rename &mut Demand arguments to 'demand'
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore: bump anyhow from 1.0.62 to 1.0.64

    chore: bump anyhow from 1.0.62 to 1.0.64

    Bumps anyhow from 1.0.62 to 1.0.64.

    Release notes

    Sourced from anyhow's releases.

    1.0.64

    • Correctly propagate Backtrace when using #[source] anyhow::Error with thiserror crate (#231)

    1.0.63

    Commits
    • 916e22b Release 1.0.64
    • 480e480 Merge pull request #268 from dtolnay/provide
    • b30f5c5 Include outer backtrace when called as source.provide
    • 4b8df91 GitHub Workflows security hardening
    • 007c69c Merge pull request #267 from dtolnay/demand
    • 1b298fe Rename &mut Demand arguments to 'demand'
    • 2c8f71b Revert "Disable backtrace test until converted to provider API"
    • 036c5f8 Release 1.0.63
    • 546342c Merge pull request #266 from dtolnay/provider
    • 46d3d2c Use backtrace via generic member access
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore: bump anyhow from 1.0.62 to 1.0.63

    chore: bump anyhow from 1.0.62 to 1.0.63

    Bumps anyhow from 1.0.62 to 1.0.63.

    Release notes

    Sourced from anyhow's releases.

    1.0.63

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore: bump ctrlc from 3.2.2 to 3.2.3

    chore: bump ctrlc from 3.2.2 to 3.2.3

    Bumps ctrlc from 3.2.2 to 3.2.3.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore: bump nix from 0.24.1 to 0.25.0

    chore: bump nix from 0.24.1 to 0.25.0

    Bumps nix from 0.24.1 to 0.25.0.

    Changelog

    Sourced from nix's changelog.

    [0.25.0] - 2022-08-13

    Added

    • Added faccessat (#1780)
    • Added memfd on Android. (#1773)
    • Added ETH_P_ALL to SockProtocol enum (#1768)
    • Added four non-standard Linux SysconfVar variants (#1761)
    • Added const constructors for TimeSpec and TimeVal (#1760)
    • Added chflags. (#1758)
    • Added aio_writev and aio_readv. (#1713)
    • impl From<uid_t> for Uid and From<gid_t> for Gid (#1727)
    • impl From<SockaddrIn> for std::net::SocketAddrV4 and impl From<SockaddrIn6> for std::net::SocketAddrV6. (#1711)
    • Added support for the x86_64-unknown-haiku target. (#1703)
    • Added ptrace::read_user and ptrace::write_user for Linux. (#1697)
    • Added getrusage and helper types UsageWho and Usage (#1747)
    • Added the DontRoute SockOpt (#1752)
    • Added signal::SigSet::from_sigset_t_unchecked(). (#1741)
    • Added the Ipv4OrigDstAddr sockopt and control message. (#1772)
    • Added the Ipv6OrigDstAddr sockopt and control message. (#1772)
    • Added the Ipv4SendSrcAddr control message. (#1776)

    Changed

    • Rewrote the aio module. The new module:
      • Does more type checking at compile time rather than runtime.
      • Gives the caller control over whether and when to Box an aio operation.
      • Changes the type of the priority arguments to i32.
      • Changes the return type of aio_return to usize. (#1713)
    • nix::poll::ppoll: sigmask parameter is now optional. (#1739)
    • Changed gethostname to return an owned OsString.

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore: bump tracing-subscriber from 0.3.14 to 0.3.15

    chore: bump tracing-subscriber from 0.3.14 to 0.3.15

    Bumps tracing-subscriber from 0.3.14 to 0.3.15.

    Release notes

    Sourced from tracing-subscriber's releases.

    tracing-subscriber 0.3.15

    This release fixes a bug where the reload layer would fail to pass through max_level_hint to the underlying layer, potentially breaking filtering.

    Fixed

    • reload: pass through max_level_hint to the inner Layer (#2204)

    Thanks to @​guswynn for contributing to this release!

    #2204: tokio-rs/tracing#2204

    Commits
    • 290eff2 subscriber: prepare to release v0.3.15 (#2237)
    • 398a6ec core: implement PartialEq, Eq for Metadata, FieldSet (#2229)
    • 28a0c99 appender: add a builder for constructing RollingFileAppenders (#2227)
    • 463b699 core: remove misleading dispatcher docs (#2220)
    • 8fbdb1c tracing: allow owned values and fat pointers in Span::record (#2212)
    • 21cdf08 appender: name spawned thread (#2219)
    • 7533872 docs: remove hard coded version link from readme (#2208)
    • 65093b3 chore(ci): update actions/checkout action to v3 (#2213)
    • d7139a5 subscriber: pass through max_level_hint in reload (#2204)
    • 9c4bd43 attributes: prepare to release v0.1.22 (#2203)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore: bump nix from 0.24.1 to 0.24.2

    chore: bump nix from 0.24.1 to 0.24.2

    Bumps nix from 0.24.1 to 0.24.2.

    Changelog

    Sourced from nix's changelog.

    [0.24.2] - 2022-07-17

    Added

    Changed

    Fixed

    • Fixed buffer overflow in nix::sys::socket::recvfrom. (#1763)
    • Enabled SockaddrStorage::{as_link_addr, as_link_addr_mut} for Linux-like operating systems. (#1729)
    • Fixed SockaddrLike::from_raw implementations for VsockAddr and SysControlAddr. (#1736)

    Removed

    Commits
    • f3409ca (cargo-release) version 0.24.2
    • 30010de Fix clippy on nightly
    • bd64fd5 Pin cross to 0.2.1, as 0.2.2 requires Rust 1.58.1
    • 4e36069 Ignore doctests for unexported macros
    • cb8b4c0 Clippy cleanup for latest nightly
    • 9f3dd81 Fix "unused_macro_rules" warnings with the latest nightly compiler.
    • a40a0fb Fix a buffer overflow in sys::socket::recvfrom
    • 0eb5ac7 Mention fix in changelog.
    • 73c29af Fix socket address family check for SysControlAddr::from_raw.
    • 8d4c48a Fix socket address family check for VsockAddr::from_raw.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore: bump tracing-subscriber from 0.3.11 to 0.3.12

    chore: bump tracing-subscriber from 0.3.11 to 0.3.12

    Bumps tracing-subscriber from 0.3.11 to 0.3.12.

    Release notes

    Sourced from tracing-subscriber's releases.

    tracing-subscriber 0.3.12

    This release of tracing-subscriber adds a new Layer::event_enabled method, which allows Layers to filter events after their field values are recorded; a Filter implementation for reload::Layer, to make using reload with per-layer filtering more ergonomic, and additional inherent method downcasting APIs for the Layered type. In addition, it includes dependency updates, and minor fixes for documentation and feature flagging.

    Added

    • layer: Layer::event_enabled method, which can be implemented to filter events based on their field values (#2008)
    • reload: Filter implementation for reload::Layer (#2159)
    • layer: Layered::downcast_ref and Layered::is inherent methods (#2160)

    Changed

    • parking_lot: Updated dependency on parking_lot to 0.13.0 (#2143)
    • Replaced lazy_static dependency with once_cell (#2147)

    Fixed

    • Don't enable tracing-core features by default (#2107)
    • Several documentation link and typo fixes (#2064, #2068, #[2077], #2161, #1088)

    Thanks to @​ben0x539, @​jamesmunns, @​georgemp, @​james7132, @​jswrenn, @​CAD97, and @​guswynn for contributing to this release!

    #2008: tokio-rs/tracing#2008 #2159: tokio-rs/tracing#2159 #2160: tokio-rs/tracing#2160 #2143: tokio-rs/tracing#2143 #2107: tokio-rs/tracing#2107 #2064: tokio-rs/tracing#2064 #2068: tokio-rs/tracing#2068 #2077: tokio-rs/tracing#2077 #2161: tokio-rs/tracing#2161 #1088: tokio-rs/tracing#1088

    Commits
    • d86d2a4 subscriber: prepare to release v0.3.12 (#2187)
    • ebea0e4 tracing: reorganize benchmarks for comparability (#2178)
    • 181bdbe tracing: actually run global_subscriber benchmark
    • 542c34d chore: prepare to release tracing-core v0.1.28 (#2177)
    • af699c9 chore(ci): whoops, wrong commands for no-std tests
    • 2dc1f39 chore(ci): also run CI on pushes to v0.1.x
    • 2c1af52 chore(ci): test workflow embetterments (#2176)
    • 42fc29e subscriber: implement FIlter for reload::Layer (#2159)
    • b007591 opentelemetry: add semconv exception fields (#2135)
    • f7966bd core: remove vendored lazy_static on no-std (#2173)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • chore: bump anyhow from 1.0.61 to 1.0.62

    chore: bump anyhow from 1.0.61 to 1.0.62

    Bumps anyhow from 1.0.61 to 1.0.62.

    Commits
    • b73a04a Release 1.0.62
    • b916fa9 Revert "Work around RA's RUSTC_WRAPPER poisoning all subsequent command-line ...
    • b88a699 Make private module more clearly private
    • 6be2da9 Bump clippy.toml msrv to match rust-version in Cargo.toml
    • a752fd9 Resolve renamed_and_removed_lints warning on logic_bug
    • 180b96c Merge pull request #258 from dtolnay/cargopr
    • b3dcb92 Add link to Cargo RUSTC_WRAPPER PR
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • chore: bump anyhow from 1.0.62 to 1.0.68

    chore: bump anyhow from 1.0.62 to 1.0.68

    Bumps anyhow from 1.0.62 to 1.0.68.

    Release notes

    Sourced from anyhow's releases.

    1.0.67

    • Improve the backtrace captured when context() is used on an Option (#280)

    1.0.66

    • Reduce unhelpful backtrace frames in backtraces captured during a context call (#279)

    1.0.65

    • impl Provider for anyhow::Error

    1.0.64

    • Correctly propagate Backtrace when using #[source] anyhow::Error with thiserror crate (#231)

    1.0.63

    Commits
    • 867763b Release 1.0.68
    • c0a87d0 Opt out -Zrustdoc-scrape-examples on docs.rs
    • 1cc707b Release 1.0.67
    • 613b261 Update build status badge
    • 0f922d7 Disable backtrace CI on Rust 1.50
    • acecd9b Update ui test suite to nightly-2022-12-15
    • 0bac51f Time out workflows after 45 minutes
    • 60e8800 Fix renamed let_underscore_drop lint
    • 8d1c734 Update ui test suite to nightly-2022-11-16
    • 451651b Update ui test suite to nightly-2022-11-11
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • chore: bump ctrlc from 3.2.2 to 3.2.4

    chore: bump ctrlc from 3.2.2 to 3.2.4

    Bumps ctrlc from 3.2.2 to 3.2.4.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • chore: bump nix from 0.24.1 to 0.26.1

    chore: bump nix from 0.24.1 to 0.26.1

    Bumps nix from 0.24.1 to 0.26.1.

    Changelog

    Sourced from nix's changelog.

    [0.26.1] - 2022-11-29

    Fixed

    • Fix UB with sys::socket::sockopt::SockType using SOCK_PACKET. (#1821)

    [0.26.0] - 2022-11-29

    Added

    • Added SockaddrStorage::{as_unix_addr, as_unix_addr_mut} (#1871)
    • Added MntFlags and unmount on all of the BSDs.
    • Added any() and all() to poll::PollFd. (#1877)
    • Add MntFlags and unmount on all of the BSDs. (#1849)
    • Added a Statfs::flags method. (#1849)
    • Added NSFS_MAGIC FsType on Linux and Android. (#1829)
    • Added sched_getcpu on platforms that support it. (#1825)
    • Added sched_getaffinity and sched_setaffinity on FreeBSD. (#1804)
    • Added line_discipline field to Termios on Linux, Android and Haiku (#1805)
    • Expose the memfd module on FreeBSD (memfd was added in FreeBSD 13) (#1808)
    • Added domainname field of UtsName on Android and Linux (#1817)
    • Re-export RLIM_INFINITY from libc (#1831)
    • Added syncfs(2) on Linux (#1833)
    • Added faccessat(2) on illumos (#1841)
    • Added eaccess() on FreeBSD, DragonFly and Linux (glibc and musl). (#1842)
    • Added IP_TOS SO_PRIORITY and IPV6_TCLASS sockopts for Linux (#1853)
    • Added new_unnamed and is_unnamed for UnixAddr on Linux and Android. (#1857)
    • Added SockProtocol::Raw for raw sockets (#1848)
    • added IP_MTU (IpMtu) IPPROTO_IP sockopt on Linux and Android. (#1865)

    Changed

    • The MSRV is now 1.56.1 (#1792)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • panicked error

    panicked error

    $uname -a
    Linux LightgrayBleak-VM 5.4.0-131-generic #147-Ubuntu SMP Fri Oct 14 17:07:22 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
    
    $iptables -V
    iptables v1.8.4 (legacy)
    
    $ls /sys/fs/cgroup/
    blkio  cpuacct      cpuset   freezer  memory   net_cls,net_prio  perf_event  rdma     unified
    cpu    cpu,cpuacct  devices  hugetlb  net_cls  net_prio          pids        systemd
    
    $cproxy --port 59999 --mode tproxy -- curl 1.1.1.1
    <html>
    <head><title>301 Moved Permanently</title></head>
    <body>
    <center><h1>301 Moved Permanently</h1></center>
    <hr><center>cloudflare</center>
    </body>
    </html>
    thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error { kind: RemoveFailed, cause: Some(Os { code: 16, kind: ResourceBusy, message: "Resource busy" }) }', src/guards.rs:41:26
    stack backtrace:
       0:     0x7fb3eb0bfea0 - std::backtrace_rs::backtrace::libunwind::trace::hb16dbf761681cfc0
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5
       1:     0x7fb3eb0bfea0 - std::backtrace_rs::backtrace::trace_unsynchronized::h53bc5f57122de54d
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
       2:     0x7fb3eb0bfea0 - std::sys_common::backtrace::_print_fmt::h7e86959aa36cde43
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/sys_common/backtrace.rs:67:5
       3:     0x7fb3eb0bfea0 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf42958820747a8ac
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/sys_common/backtrace.rs:46:22
       4:     0x7fb3eb0f96ac - core::fmt::write::h6f5ededa5074697e
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/core/src/fmt/mod.rs:1115:17
       5:     0x7fb3eb0bd375 - std::io::Write::write_fmt::hdb84dc6c28fda870
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/io/mod.rs:1665:15
       6:     0x7fb3eb0c21cb - std::sys_common::backtrace::_print::hbb646398d13d0dcb
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/sys_common/backtrace.rs:49:5
       7:     0x7fb3eb0c21cb - std::sys_common::backtrace::print::ha3796c9cf0c5a732
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/sys_common/backtrace.rs:36:9
       8:     0x7fb3eb0c21cb - std::panicking::default_hook::{{closure}}::hb85a09d7e9a16432
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/panicking.rs:208:50
       9:     0x7fb3eb0c1ca1 - std::panicking::default_hook::hdc924e74cb190bbb
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/panicking.rs:225:9
      10:     0x7fb3eb0c2894 - std::panicking::rust_panic_with_hook::hd63b080e78590a80
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/panicking.rs:622:17
      11:     0x7fb3eb0c2377 - std::panicking::begin_panic_handler::{{closure}}::h27bfba1f7e931f90
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/panicking.rs:519:13
      12:     0x7fb3eb0c033c - std::sys_common::backtrace::__rust_end_short_backtrace::h2cc025f6c95b1f82
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/sys_common/backtrace.rs:141:18
      13:     0x7fb3eb0c22d9 - rust_begin_unwind
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/panicking.rs:515:5
      14:     0x7fb3eaf32081 - core::panicking::panic_fmt::h9f5a85773697c5f5
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/core/src/panicking.rs:92:14
      15:     0x7fb3eaf32173 - core::result::unwrap_failed::h43465fb8e3273283
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/core/src/result.rs:1599:5
      16:     0x7fb3eaf33c3a - <cproxy::guards::CGroupGuard as core::ops::drop::Drop>::drop::he0f5772e67446932
      17:     0x7fb3eaf723dd - core::ptr::drop_in_place<cproxy::guards::TProxyGuard>::h5bc32170f22a3d77
      18:     0x7fb3eaf75398 - cproxy::main::h7becfa773d4442f6
      19:     0x7fb3eaf77e53 - std::sys_common::backtrace::__rust_begin_short_backtrace::h51261908630a884f
      20:     0x7fb3eaf65f9d - std::rt::lang_start::{{closure}}::h670ee57be18ae9fa
      21:     0x7fb3eb0c2cf0 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h5edb75ac3af12064
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/core/src/ops/function.rs:259:13
      22:     0x7fb3eb0c2cf0 - std::panicking::try::do_call::h4398f4e6da05592f
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/panicking.rs:401:40
      23:     0x7fb3eb0c2cf0 - std::panicking::try::h3fe03463ab3f9a9d
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/panicking.rs:365:19
      24:     0x7fb3eb0c2cf0 - std::panic::catch_unwind::h3f31a496b3e5f0e5
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/panic.rs:434:14
      25:     0x7fb3eb0c2cf0 - std::rt::lang_start_internal::{{closure}}::h24e3f631c8bb6bd5
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/rt.rs:45:48
      26:     0x7fb3eb0c2cf0 - std::panicking::try::do_call::h9268f45ee0925288
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/panicking.rs:401:40
      27:     0x7fb3eb0c2cf0 - std::panicking::try::he93fcdbaacc3daf7
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/panicking.rs:365:19
      28:     0x7fb3eb0c2cf0 - std::panic::catch_unwind::hca9f2323bf3773b4
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/panic.rs:434:14
      29:     0x7fb3eb0c2cf0 - std::rt::lang_start_internal::hfee0032b3594c35b
                                   at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/rt.rs:45:20
      30:     0x7fb3eaf75872 - main
    
    
    opened by ggggle 0
  • curl wget 无法正常支持

    curl wget 无法正常支持

    curl wget 无法正常支持

    $ curl -x 127.0.0.1:8888 ip.sb
    91.200.242.210
    $ sudo ./cproxy --port 8888  -- curl ip.sb
    Bad Request
    $ sudo ./cproxy --port 8888  -- wget google.com
    --2022-10-14 15:56:45--  http://google.com/
    Resolving google.com (google.com)... 142.250.204.142, 2404:6800:4005:80e::200e
    Connecting to google.com (google.com)|142.250.204.142|:80... connected.
    HTTP request sent, awaiting response... 400 Bad Request
    2022-10-14 15:56:45 ERROR 400: Bad Request.
    
    opened by jingslunt 0
  • chore: bump tracing-subscriber from 0.3.14 to 0.3.16

    chore: bump tracing-subscriber from 0.3.14 to 0.3.16

    Bumps tracing-subscriber from 0.3.14 to 0.3.16.

    Release notes

    Sourced from tracing-subscriber's releases.

    tracing-subscriber 0.3.16

    This release of tracing-subscriber fixes a regression introduced in [v0.3.15][subscriber-0.3.15] where Option::None's Layer implementation would set the max level hint to OFF. In addition, it adds several new APIs, including the Filter::event_enabled method for filtering events based on fields values, and the ability to log internal errors that occur when writing a log line.

    This release also replaces the dependency on the unmaintained [ansi-term] crate with the [nu-ansi-term] crate, resolving an informational security advisory ([RUSTSEC-2021-0139]) for [ansi-term]'s maintainance status. This increases the minimum supported Rust version (MSRV) to Rust 1.50+, although the crate should still compile for the previous MSRV of Rust 1.49+ when the ansi feature is not enabled.

    Fixed

    • layer: Option::None's Layer impl always setting the max_level_hint to LevelFilter::OFF (#2321)
    • Compilation with -Z minimal versions (#2246)
    • env-filter: Clarify that disabled level warnings are emitted by tracing-subscriber (#2285)

    Added

    • fmt: Log internal errors to stderr if writing a log line fails (#2102)
    • fmt: FmtLayer::log_internal_errors and FmtSubscriber::log_internal_errors methods for configuring whether internal writer errors are printed to stderr (#2102)
    • fmt: #[must_use] attributes on builders to warn if a Subscriber is configured but not set as the default subscriber (#2239)
    • filter: Filter::event_enabled method for filtering an event based on its fields (#2245, #2251)
    • filter: Targets::default_level accessor (#2242)

    Changed

    • ansi: Replaced dependency on unmaintained ansi-term crate with nu-ansi-term ((#2287, fixes informational advisory [RUSTSEC-2021-0139])
    • tracing-core: updated to [0.1.30][core-0.1.30]
    • Minimum Supported Rust Version (MSRV) increased to Rust 1.50+ (when the ansi) feature flag is enabled (#2287)

    Documented

    • fmt: Correct inaccuracies in fmt::init documentation (#2224)
    • filter: Fix incorrect doc link in filter::Not combinator (#2249)

    Thanks to new contributors @​cgbur, @​DesmondWillowbrook, @​RalfJung, and @​poliorcetics, as well as returning contributors @​CAD97, @​connec, @​jswrenn,

    ... (truncated)

    Commits
    • b28c935 subscriber: prepare to release v0.3.16 (#2342)
    • ecd7e06 chore(ci): remove requirement for removed job
    • a42e963 subscriber: replace unmaintained ansi_term with nu-ansi-term (#2287)
    • a4fc92c subscriber: revert "impl LookupSpan for Box\<LS> and Arc\<LS> (#2247)"
    • 8e35927 tracing: prepare to release v0.1.37 (#2341)
    • 64b221d attributes: prepare to release v0.1.23 (#2340)
    • 92cb2f0 attributes: fix handling of inner attributes (#2307)
    • 8b01ea9 core: prepare to release v0.1.30 (#2339)
    • d7372d7 tracing: add reqwest-tracing to related crates in README (#2331)
    • 257f86f opentelemetry: fix metrics docs using value. instead of histogram. (#2326)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
Releases(v4.1.6.post1)
Owner
Xiangru Lian
Clover Day's!
Xiangru Lian
Proxy sentry request to a sentry server using a tunnel/proxy endpoint

Sentry Tunnel This is a proxy that forwards tunneled sentry requests to the real sentry server. The implementation is based on the explanation provide

Paul FLORENCE 14 Dec 20, 2022
UDP proxy with Proxy Protocol and mmproxy support

udppp UDP proxy with Proxy Protocol and mmproxy support. Features Async Support Proxy Protocol V2 SOCKET preserve client IP addresses in L7 proxies(mm

b23r0 10 Dec 18, 2022
Lightweight proxy that allows redirect HTTP(S) traffic through a proxy.

Proxyswarm Proxyswarm is a lightweight proxy that allows redirect HTTP(S) traffic through a proxy. WARNING: This app isn't recomended for download lar

Jorge Alejandro Jimenez Luna 4 Apr 16, 2022
Web3-proxy: a fast caching and load balancing proxy for web3 (Ethereum or similar) JsonRPC servers.

web3-proxy Web3-proxy is a fast caching and load balancing proxy for web3 (Ethereum or similar) JsonRPC servers. Signed transactions (eth_sendRawTrans

null 55 Jan 8, 2023
A TCP proxy using HTTP - Reach SSH behind a Nginx reverse proxy

?? TCP over HTTP ?? The Questions ?? What does it do? You can proxy TCP traffic over HTTP. A basic setup would be: [Your TCP target] <--TCP-- [Exit No

Julian 185 Dec 15, 2022
A crate for parsing HTTP rate limit headers as per the IETF draft

rate-limits A crate for parsing HTTP rate limit headers as per the IETF draft. Inofficial implementations like the Github rate limit headers are also

Matthias 3 Jul 9, 2022
Multiplex server for rust-analyzer, allows multiple LSP clients (editor windows) to share a single rust-analyzer instance per cargo workspace

ra-multiplex   Multiplex server for rust-analyzer, allows multiple LSP clients (editor windows) to share a single rust-analyzer instance per cargo wor

max 95 Dec 29, 2022
The true next-gen L7 minecraft proxy and load balancer. Built in Rust.

Lure The true next-gen L7 minecraft proxy and load balancer. Built in Rust, Tokio and Valence. Why? Rust is a powerful programming language and a grea

Sammwy 67 Apr 16, 2023
An end-to-end encrypted, anonymous IP-hiding, decentralized, audio/video/file sharing/offline messaging multi-device platform built for both communications and application security and performance.

An end-to-end encrypted, anonymous IP-hiding, decentralized, audio/video/file sharing/offline messaging multi-device platform built for both communications and application security and performance.

null 2 Apr 27, 2022
An easy-to-use tunnel to localhost built in Rust. An alternative to ngrok and frp.

rslocal English | 中文 What is rslocal? Rslocal is like ngrok built in Rust, it builds a tunnel to localhost. Project status support http support tcp su

saltbo 220 Jan 7, 2023
server security proxy write by Rust

server-security-proxy server security proxy write by Rust how to use config toml file

baoyachi. Aka Rust Hairy crabs 3 May 24, 2021
A tcp over http2 + tls proxy

mtunnel A tcp over http2 + tls proxy. Usage 1. get certificates, by following steps. 2. make your config client config: { "local_addr": "127.0.0.1

cssivision 9 Sep 5, 2022
A versatile and efficient proxy framework with nice features suitable for various use cases.

A versatile and efficient proxy framework with nice features suitable for various use cases.

null 1.7k Jan 9, 2023
Hudsucker is a MITM HTTP/S proxy written in Rust.

hudsucker Hudsucker is a MITM HTTP/S proxy written in Rust. Features Modify HTTP/S requests Modify HTTP/S responses Modify websocket messages Usage Fo

null 86 Dec 25, 2022
Simple and fast layer 4 proxy in Rust

Fourth 这一波在第四层。 English Fourth是一个Rust实现的Layer 4代理,用于监听指定端口TCP流量,并根据规则转发到指定目标。 功能 监听指定端口代理到本地或远端指定端口 监听指定端口,通过TLS ClientHello消息中的SNI进行分流 安装方法 为了确保获得您架构

Rui Li 17 Nov 8, 2022
Drop-in proxy for Discord gateway connections and sessions allowing for zero downtime deploys

gateway-proxy This is a very hacky project, so it might stop working if Discord changes their API core. This is unlikely, but keep that in mind while

Jens Reidel 39 Nov 26, 2022
Minecraft proxy

mc-proxy This is a fully functional proxy for online and offline-mode Minecraft servers. It is based on an optimized, custom-made packet parser for Mi

null 21 Oct 7, 2022
A remote shell, TCP tunnel and HTTP proxy for Replit.

Autobahn A remote shell, TCP tunnel and HTTP proxy for Replit. Hybrid SSH/HTTP server for Replit. Based on leon332157/replish. Autobahn runs a WebSock

Patrick Winters 12 Sep 24, 2022
Hybrid Traffic Mesh Proxy

Hybrid Traffic Mesh Proxy L7 proxy on kubernetes dependencies: routeagent: refresh proxy routes fetched with k8s sdk register routes curl -v --unix-s

Goku 1 Feb 11, 2022