Sign inSign up

esinio/udpspeeder

By esinio

•Updated about 2 years ago

wangyu- udpspeeder

Image
Networking
0

304

esinio/udpspeeder repository overview

⁠Example

udp2raw + udpspeed

  • wireguard listen port: 52820
  • udpspeed listen port: 53821
  • udp2raw listen port: 53822
- server: 52822 -> 52821 -> 52820
#./speederv2_amd64 -s -l 127.0.0.1:52821  -r 127.0.0.1:53820 --mode 0 -f2:4 --timeout 1
#./udp2raw_amd64_hw_aes -s -l 0.0.0.0:52822 -r 127.0.0.1:52821 -a -k "passwd" --raw-mode faketcp --log-level 4

- client: 52820 -> 52821 -> 52822
#./speederv2_amd64 -s -l 127.0.0.1:52820  -r 127.0.0.1:53821 --mode 0 -f2:4 --timeout 1
#./udp2raw_amd64_hw_aes -s -l 0.0.0.0:53821 -r server_ip:52822 -k "passwd" --raw-mode faketcp --log-level 4
⁠Options
UDPspeeder V2
git version: 61b24a3697    build date: Feb  7 2023 09:25:11
repository: https://github.com/wangyu-/UDPspeeder

usage:
    run as client: ./this_program -c -l local_listen_ip:local_port -r server_ip:server_port  [options]
    run as server: ./this_program -s -l server_listen_ip:server_port -r remote_ip:remote_port  [options]

common options, must be same on both sides:
    -k,--key              <string>        key for simple xor encryption. if not set, xor is disabled
main options:
    -f,--fec              x:y             forward error correction, send y redundant packets for every x packets
    --timeout             <number>        how long could a packet be held in queue before doing fec, unit: ms, default: 8ms
    --report              <number>        turn on send/recv report, and set a period for reporting, unit: s
advanced options:
    --mode                <number>        fec-mode,available values: 0,1; mode 0(default) costs less bandwidth,no mtu problem.
                                          mode 1 usually introduces less latency, but you have to care about mtu.
    --mtu                 <number>        mtu. for mode 0, the program will split packet to segment smaller than mtu value.
                                          for mode 1, no packet will be split, the program just check if the mtu is exceed.
                                          default value: 1250. you typically shouldnt change this value.
    -j,--jitter           <number>        simulated jitter. randomly delay first packet for 0~<number> ms, default value: 0.
                                          do not use if you dont know what it means.
    -i,--interval         <number>        scatter each fec group to a interval of <number> ms, to defend burst packet loss.
                                          default value: 0. do not use if you dont know what it means.
    -f,--fec              x1:y1,x2:y2,..  similiar to -f/--fec above,fine-grained fec parameters,may help save bandwidth.
                                          example: "-f 1:3,2:4,10:6,20:10". check repo for details
    --random-drop         <number>        simulate packet loss, unit: 0.01%. default value: 0.
    --disable-obscure     <number>        disable obscure, to save a bit bandwidth and cpu
    --disable-checksum    <number>        disable checksum to save a bit bandwdith and cpu
developer options:
    --fifo                <string>        use a fifo(named pipe) for sending commands to the running program, so that you
                                          can change fec encode parameters dynamically, check readme.md in repository for
                                          supported commands.
    -j ,--jitter          jmin:jmax       similiar to -j above, but create jitter randomly between jmin and jmax
    -i,--interval         imin:imax       similiar to -i above, but scatter randomly between imin and imax
    -q,--queue-len        <number>        fec queue len, only for mode 0, fec will be performed immediately after queue is full.
                                          default value: 200.
    --decode-buf          <number>        size of buffer of fec decoder,unit: packet, default: 2000
    --delay-capacity      <number>        max number of delayed packets, 0 means unlimited, default: 0
    --disable-fec         <number>        completely disable fec, turn the program into a normal udp tunnel
    --sock-buf            <number>        buf size for socket, >=10 and <=10240, unit: kbyte, default: 1024
    --out-addr            ip:port         force all output packets of '-r' end to go through this address, port 0 for random port.
    --out-interface       <string>        force all output packets of '-r' end to go through this interface.
log and help options:
    --log-level           <number>        0: never    1: fatal   2: error   3: warn
                                          4: info (default)      5: debug   6: trace
    --log-position                        enable file name, function name, line number in log
    --disable-color                       disable log color
    -h,--help                             print this help message
⁠Dockerfile
FROM alpine:latest

ARG UDPSPEEDER_VERSION="20230206.0"
ARG UDPSPEEDER_URL="https://github.com/wangyu-/UDPspeeder/releases/download/20230206.0/speederv2_binaries.tar.gz"
ARG UDPSPEEDER_PKG="speederv2_binaries.tar.gz"

RUN wget -O ${UDPSPEEDER_PKG} ${UDPSPEEDER_URL} \
    && tar -xzvf ${UDPSPEEDER_PKG} -C /usr/local/bin \
    && rm ${UDPSPEEDER_PKG}

CMD ["speederv2_amd64"]

Tag summary

Content type

Image

Digest

sha256:df41b553c…

Size

11 MB

Last updated

about 2 years ago

docker pull esinio/udpspeeder