A network tool for improved privacy and security
- http
- socks5
Local-Peer | Client-Server | Shadowsocks | VMess | Trojan |
---|---|---|---|---|
tcp |
tcp |
✔ | ✔ | |
tcp |
tls |
✔ | ||
tcp |
ws |
✔ | ✔ | |
tcp |
wss |
|||
udp |
udp |
✔ | ||
udp |
tcp |
✔ | ||
udp |
tls |
✔ | ||
udp |
ws |
✔ | ||
udp |
wss |
Shadowsocks | VMess | |
---|---|---|
aes-128-gcm | C S |
C S |
aes-256-gcm | C S |
|
chacha20-poly1305 | C S |
C S |
2022-blake3-aes-128-gcm | C S |
|
2022-blake3-aes-256-gcm | C S |
C
for client S
for server
put config.json file into the unpacked folder before running server
{
"servers": [
{
"cipher": "aes-128-gcm",
"password": "foobar",
"host": "example.com",
"port": "443",
"protocol": "shadowsocks",
"packetEncoding": "None",
"transport": [
"TCP",
"UDP"
],
"user": [
{
"name": "John Doe",
"password": "foobar"
}
],
"ssl": {
"certificateFile": "/path/to/certificate.crt",
"keyFile": "/path/to/private.key",
"keyPassword": "",
"serverName": ""
},
"ws": {
"header": {
"Host": "example.com"
},
"path": "/ws"
}
}
]
}
protocol
: "shadowsocks" | "vmess" | "trojan"
cipher
: see Ciphers
transport
: see Transport
packetEncoding
: "None" | "Packet"
user
: (OPTIONAL for shadowsocks) support multiple users with Shadowsocks 2022 Extensible Identity Headers
ssl
: (OPTIONAL) SSL specific configurations
certificateFile
: certificate file
keyFile
: private key file for encryption
keyPassword
: password of the private key file
serverName
: the Server Name Indication field in the SSL handshake. If left blank, it will be set toserver.host
verifyHostname
: whether to verify SSL hostname, default istrue
ws
: (OPTIONAL) WebSocket specific configurations
header
: the header to be sent in HTTP request, should be key-value pairs in clear-text string format
path
: the HTTP path for the websocket request
mvn clean package
Java 21+
server
urban-spork-server/target/urban-spork-server.zip
client
urban-spork-client-gui/target/urban-spork-client-gui.zip