KCPTUN-SERVER(1)

πŸ“¦
this version Β· 8 versions
, in ubuntu noble, ubuntu questing

πŸ’– NAME πŸ’–

kcptun-server β€” a Simple UDP Tunnel Based On KCP, bestie. fr fr, that's the whole vibe.


✨ DESCRIPTION ✨

okay so. picture this: you want a tunnel. a lil UDP tunnel. and it runs on KCP. that's her. that's the girl. πŸ’…

πŸŽ€ NAME:

kcptun β€” but make it the server (with SMUX). yes queen, SMUX is coming along for the ride.

🌸 USAGE:

kcptun-server [global options] command [command options] [arguments...]

that's it. that's the shape of it. globals first, then the command, then that command's own options, then any arguments you're handing over. 🫢

πŸ¦‹ VERSION:

SELFBUILD

not me building myself πŸ’€

πŸ‘‘ COMMANDS:

  • help, h β€” shows you a list of commands, or help for one specific command. the classic "help me help you" moment. πŸ’–

πŸ’… GLOBAL OPTIONS:

these are the levers, bestie. every single one. no skipping, we're doing all of them. ✨

  • --listen value, -l value β€” the address your kcp server listens on (default: ":29900")
  • --target value, -t value β€” the target server address, or a path/to/unix_socket if you're feeling unix-y (default: "127.0.0.1:12948")
  • --key value β€” the pre-shared secret between client and server (default: "it's a secrect") [$KCPTUN_KEY]
ngl the default key is literally spelled "it's a secrect". iconic typo behavior, and we are keeping it exactly as-is. change it though, please, for your own sake πŸ™ˆ
  • --crypt value β€” pick your cipher. the menu is: aes, aes-128, aes-192, salsa20, blowfish, twofish, cast5, 3des, tea, xtea, xor, sm4, none (default: "aes")
  • --mode value β€” the profiles, bestie: fast3, fast2, fast, normal, manual (default: "fast")
  • --mtu value β€” sets the maximum transmission unit for UDP packets (default: 1350)
  • --sndwnd value β€” sets the send window size, in number of packets (default: 1024)
  • --rcvwnd value β€” sets the receive window size, in number of packets (default: 1024)
  • --datashard value, --ds value β€” sets the reed-solomon erasure coding datashard (default: 10)
  • --parityshard value, --ps value β€” sets the reed-solomon erasure coding parityshard (default: 3)
  • --dscp value β€” sets DSCP, 6 bits of it (default: 0)
  • --nocomp β€” disables compression. just… turns it off. no comp. periodt.
  • --sockbuf value β€” per-socket buffer, in bytes (default: 4194304)
  • --smuxver value β€” specify the smux version, available: 1, 2 (default: 1)
  • --smuxbuf value β€” the overall de-mux buffer, in bytes (default: 4194304)
  • --streambuf value β€” per stream receive buffer, in bytes, smux v2+ (default: 2097152)
  • --keepalive value β€” seconds between heartbeats πŸ’“ (default: 10)
  • --snmplog value β€” collect snmp to a file, aware of timeformat in golang, like: ./snmp-20060102.log
  • --snmpperiod value β€” snmp collect period, in seconds (default: 60)
  • --pprof β€” start the profiling server on :6060
  • --log value β€” specify a log file to output to; by default it goes to stderr
  • --quiet β€” to suppress the 'stream open/close' messages. shhh. 🀫
  • --tcp β€” to emulate a TCP connection (linux)
  • -c value β€” config from a json file, which will override the command from shell. yeah, the file wins. lowkey dramatic but that's the rules.
  • --help, -h β€” show help
  • --version, -v β€” print the version

heads up bestie: -c value overriding your shell command is not a suggestion, it's a fact. json said what it said. πŸ’…

okay that's genuinely the whole page. go tunnel something. slay. πŸŒˆπŸ‘‘


signing off, my love πŸ’œ β€” this was kcptun-server, version 20210922+ds-1build1, from August 2023. take care of her, she's iconic. πŸŽ€πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from