Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/yuyuzha0/deadbeef-proxy
an http proxy
https://github.com/yuyuzha0/deadbeef-proxy
ipv6 java netty proxy shadowsocks vertx
Last synced: 4 days ago
JSON representation
an http proxy
- Host: GitHub
- URL: https://github.com/yuyuzha0/deadbeef-proxy
- Owner: YuyuZha0
- License: apache-2.0
- Created: 2022-10-15T14:18:37.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2022-10-31T04:00:48.000Z (about 2 years ago)
- Last Synced: 2024-11-01T02:23:32.331Z (about 2 months ago)
- Topics: ipv6, java, netty, proxy, shadowsocks, vertx
- Language: Java
- Homepage:
- Size: 241 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# deadbeef-proxy
```text
________ _______ ________ ________ ________ _______ _______ ________
|\ ___ \|\ ___ \ |\ __ \|\ ___ \|\ __ \|\ ___ \ |\ ___ \ |\ _____\
\ \ \_|\ \ \ __/|\ \ \|\ \ \ \_|\ \ \ \|\ /\ \ __/|\ \ __/|\ \ \__/
\ \ \ \\ \ \ \_|/_\ \ __ \ \ \ \\ \ \ __ \ \ \_|/_\ \ \_|/_\ \ __\
\ \ \_\\ \ \ \_|\ \ \ \ \ \ \ \_\\ \ \ \|\ \ \ \_|\ \ \ \_|\ \ \ \_|
\ \_______\ \_______\ \__\ \__\ \_______\ \_______\ \_______\ \_______\ \__\
\|_______|\|_______|\|__|\|__|\|_______|\|_______|\|_______|\|_______|\|__|
```Vertx http proxy, for some reason I can't talk much.
### System Requirements
`java(jdk/jre) >= 8`
**If you want to compile the project yourself, you may need `maven`(version of `3.6.3` is preferred)**
Compile the source codes with the following command:```bash
mvn clean package -DwithNativeDependency=true
```The project contains some platform dependent components, it is recommended for you to compile the code on you device to
gain better performance.Or if you are not so familiar with Java, just use the released jar, there should not be significant difference.
### Usage
#### Local
Start a deamon process listening on a port with the following command:
For java8:```bash
java -jar deadbeef-client/target/deadbeef-client-${version}[-${os.detected.classifier}].jar --config client-config.yaml
```Java9 or later:
```bash
java --add-opens java.base/jdk.internal.misc=ALL-UNNAMED -Dio.netty.tryReflectionSetAccessible=true -jar deadbeef-client/target/deadbeef-client-${version}[-${os.detected.classifier}].jar --config client-config.yaml
```*No doubt that you could custom as many JVM options as you like*
Here is the `client-config.yaml` example:
```yaml
httpPort: 14483 # the http port of remote server
httpsPort: 14484 # the https port of remote server
remoteServer: example.com # the remote server address, ipv6 address is supported if your machine has access to ipv6 network
localPort: 14482 # this is the local port that you could configure your browser proxy to
secretId: a-secret-id
secretKey: a-secret-key
# options below are optional
preferNativeTransport: true
addressResolver: [ 8.8.8.8, 114.114.114.114 ] # custom dns hosts, you may just keep it empty
```#### Remote
Start a deamon process on your remote machine to handle requests from you local proxy server.
**Note: `deadbeef-server` handles HTTP/HTTPS on different ports, configure your firewall properly**
You may start with the following command:
```bash
#!/bin/bash
nohup java --add-opens java.base/jdk.internal.misc=ALL-UNNAMED -Dio.netty.tryReflectionSetAccessible=true -jar deadbeef-server/target/deadbeef-server-${version}[-${os.detected.classifier}].jar -c server-config.yaml > run.log 2>&1 & echo $! > pid.file
```Here is what `server-config.yaml` should be like:
```yaml
httpPort: 14483
httpsPort: 14484
auth: # authentication key pairs, one secretId might have multiple secretKeys
- { secretKey: one-secret-key, secretId: one-secret-id }
- { secretKey: another-secret-key, secretId: another-secret-id }
preferNativeTransport: true
addressResolver: [ 8.8.8.8, 114.114.114.114 ]
```