diff --git a/README.md b/README.md index 95c5dc7..41a5d86 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,7 @@ Assume your server ip is 44.55.66.77, you have a service listening on udp port 7 ./speederv2 -c -l0.0.0.0:3333 -r44.55.66.77:4096 -f20:10 -k "passwd" ``` -Now connecting to UDP port 3333 at the client side is equivalent to connecting to port 7777 at the server side, and the connection is boosted by UDPspeeder. +Now connecting to UDP port 3333 at the client side is equivalent to connecting to port 7777 at the server side, and the connection has been boosted by UDPspeeder. ##### Note @@ -86,52 +86,52 @@ Now connecting to UDP port 3333 at the client side is equivalent to connecting t `-k` enables simple XOR encryption -To run stably, pay attention to MTU. You can also try `--mode 0`,there will be no MTU problem in this mode. - # Advanced Topic ### Full Options ``` UDPspeeder V2 -git version:8e7a8aed92 build date:Oct 25 2017 02:00:54 +git version: 6f55b8a2fc build date: Nov 19 2017 06:11:23 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] + 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 option,must be same on both sides: - -k,--key key for simple xor encryption. if not set,xor is disabled +common options, must be same on both sides: + -k,--key 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 how long could a packet be held in queue before doing fec,unit: ms,default :8ms - --mode fec-mode,available values: 0,1 ; 0 cost less bandwidth,1 cost less latency(default) - --report turn on send/recv report,and set a period for reporting,unit:s + -f,--fec x:y forward error correction, send y redundant packets for every x packets + --timeout how long could a packet be held in queue before doing fec, unit: ms, default: 8ms + --report turn on send/recv report, and set a period for reporting, unit: s advanced options: - --mtu 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 - -j,--jitter simulated jitter.randomly delay first packet for 0~ ms,default value:0. + --mode 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 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. + -q,--queue-len fec queue len, only for mode 0, fec will be performed immediately after queue is full. + default value: 200. + -j,--jitter simulated jitter. randomly delay first packet for 0~ ms, default value: 0. do not use if you dont know what it means. - -i,--interval scatter each fec group to a interval of ms,to protect burst packet loss. - default value:0.do not use if you dont know what it means. - --random-drop simulate packet loss ,unit:0.01%. default value: 0 - --disable-obscure disable obscure,to save a bit bandwidth and cpu + -i,--interval scatter each fec group to a interval of ms, to protect burst packet loss. + default value: 0. do not use if you dont know what it means. + --random-drop simulate packet loss, unit: 0.01%. default value: 0. + --disable-obscure disable obscure, to save a bit bandwidth and cpu. developer options: - --fifo 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 + --fifo 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 max fec queue len,only for mode 0 - --decode-buf size of buffer of fec decoder,unit:packet,default:2000 - --fix-latency try to stabilize latency,only for mode 0 + -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 + --decode-buf size of buffer of fec decoder,u nit: packet, default: 2000 + --fix-latency try to stabilize latency, only for mode 0 --delay-capacity max number of delayed packets - --disable-fec completely disable fec,turn the program into a normal udp tunnel - --sock-buf buf size for socket,>=10 and <=10240,unit:kbyte,default:1024 + --disable-fec completely disable fec, turn the program into a normal udp tunnel + --sock-buf buf size for socket, >=10 and <=10240, unit: kbyte, default: 1024 log and help options: - --log-level 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 + --log-level 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 diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 31fd433..340a5ce 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -94,49 +94,53 @@ https://github.com/wangyu-/UDPspeeder/releases ### 命令选项 ``` UDPspeeder V2 -git version:8e7a8aed92 build date:Oct 25 2017 02:00:54 +git version: 6f55b8a2fc build date: Nov 19 2017 06:11:23 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] + 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 option,must be same on both sides: - -k,--key key for simple xor encryption. if not set,xor is disabled +common options, must be same on both sides: + -k,--key 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 how long could a packet be held in queue before doing fec,unit: ms,default :8ms - --mode fec-mode,available values: 0,1 ; 0 cost less bandwidth,1 cost less latency(default) - --report turn on send/recv report,and set a period for reporting,unit:s + -f,--fec x:y forward error correction, send y redundant packets for every x packets + --timeout how long could a packet be held in queue before doing fec, unit: ms, default: 8ms + --report turn on send/recv report, and set a period for reporting, unit: s advanced options: - --mtu 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 - -j,--jitter simulated jitter.randomly delay first packet for 0~ ms,default value:0. + --mode 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 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. + -q,--queue-len fec queue len, only for mode 0, fec will be performed immediately after queue is full. + default value: 200. + -j,--jitter simulated jitter. randomly delay first packet for 0~ ms, default value: 0. do not use if you dont know what it means. - -i,--interval scatter each fec group to a interval of ms,to protect burst packet loss. - default value:0.do not use if you dont know what it means. - --random-drop simulate packet loss ,unit:0.01%. default value: 0 - --disable-obscure disable obscure,to save a bit bandwidth and cpu + -i,--interval scatter each fec group to a interval of ms, to protect burst packet loss. + default value: 0. do not use if you dont know what it means. + --random-drop simulate packet loss, unit: 0.01%. default value: 0. + --disable-obscure disable obscure, to save a bit bandwidth and cpu. developer options: - --fifo 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 + --fifo 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 max fec queue len,only for mode 0 - --decode-buf size of buffer of fec decoder,unit:packet,default:2000 - --fix-latency try to stabilize latency,only for mode 0 + -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 + --decode-buf size of buffer of fec decoder,u nit: packet, default: 2000 + --fix-latency try to stabilize latency, only for mode 0 --delay-capacity max number of delayed packets - --disable-fec completely disable fec,turn the program into a normal udp tunnel - --sock-buf buf size for socket,>=10 and <=10240,unit:kbyte,default:1024 + --disable-fec completely disable fec, turn the program into a normal udp tunnel + --sock-buf buf size for socket, >=10 and <=10240, unit: kbyte, default: 1024 log and help options: - --log-level 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 + --log-level 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 + + ``` ### 包发送选项,两端设置可以不同。 只影响本地包发送。 ##### `-f` 选项 @@ -236,7 +240,9 @@ run at client side: 如果只需要加速UDP,不需要加速TCP,可以把kcptun换成其他的任意端口转发方式,比如ncat/socat/ssh tunnel/iptables/[tinyPortMapper](https://github.com/wangyu-/tinyPortMapper/releases)。 -另外,如果没有kcptun只有BBR/锐速的话,也可以把kcptun换成ncat/socat/ssh tunnel/iptables/[tinyPortMapper](https://github.com/wangyu-/tinyPortMapper/releases)。这样,TCP流量由锐速/BBR加速,UDP由UDPspeeder加速。 +如果你没有kcptun只有BBR/锐速的话,也可以把kcptun换成ncat/socat/ssh tunnel/iptables/[tinyPortMapper](https://github.com/wangyu-/tinyPortMapper/releases)。这样,TCP流量由锐速/BBR加速,UDP由UDPspeeder加速。 + +另外,即使你不想使用$\*\*\*的TCP功能,你也必须把$\*\*\*的TCP端口转发过来,否则无法使用UDP功能,这是socks5协议的工作方式决定的。($\*\*\*-redir方式不受此限制) #### UDPspeeder + openvpn + $*** 混合方案,也适用于其他VPN 也是我正在用的方案。优点是可以随时在vpn和$\*\*\*方案间快速切换。 @@ -257,12 +263,23 @@ run at client side: https://github.com/wangyu-/UDPspeeder/wiki/win10系统UDPspeeder-OpenVPN的完整设置 +#### UDPspeeder+OpenVPN运行在linux上,透明加速linux本机的网络 + +https://github.com/wangyu-/tinyFecVPN/wiki/tinyFecVPN运行在linux上,透明加速linux本机的网络 + + +#### UDPspeeder+OpenVPN运行在虚拟机中,加速windows和局域网内其他主机的网络 + +https://github.com/wangyu-/tinyFecVPN/wiki/tinyFecVPN运行在虚拟机中,加速windows和局域网内其他主机的网络 + + + #### 用树莓派做路由器,搭建透明代理,加速游戏主机的网络 https://github.com/wangyu-/UDPspeeder/wiki/用树莓派做路由器,搭建透明代理,加速游戏主机的网络 - # 编译教程 暂时先参考udp2raw的这篇教程,几乎一样的过程。 https://github.com/wangyu-/udp2raw-tunnel/blob/master/doc/build_guide.zh-cn.md +