Giter Club home page Giter Club logo

udpspeeder's Introduction

UDPspeeder

A Tunnel which Improves your Network Quality on a High-latency Lossy Link by using Forward Error Correction.

When used alone, UDPspeeder improves only UDP connection. Nevertheless, if you used UDPspeeder + any UDP-based VPN together, you can improve any traffic(include TCP/UDP/ICMP), currently OpenVPN/L2TP/ShadowVPN are confirmed to be supported。

or

image_vpn

Assume your local network to your server is lossy. Just establish a VPN connection to your server with UDPspeeder + any UDP-based VPN, access your server via this VPN connection, then your connection quality will be significantly improved. With well-tuned parameters , you can easily reduce IP or UDP/ICMP packet-loss-rate to less than 0.01% . Besides reducing packet-loss-rate, UDPspeeder can also significantly improve your TCP latency and TCP single-thread download speed.

UDPspeeder Wiki

简体中文

Efficacy

tested on a link with 100ms latency and 10% packet loss at both direction

Ping Packet Loss

SCP Copy Speed

Supported Platforms

Linux host (including desktop Linux,Android phone/tablet, OpenWRT router, or Raspberry PI).

For Windows and MacOS You can run UDPspeeder inside this 7.5mb virtual machine image.

How does it work

UDPspeeder uses FEC(Forward Error Correction) to reduce packet loss rate, at the cost of addtional bandwidth. The algorithm for FEC is called Reed-Solomon.

image0

Reed-Solomon

In coding theory, the Reed–Solomon code belongs to the class of non-binary cyclic error-correcting codes. The Reed–Solomon code is based on univariate polynomials over finite fields.

It is able to detect and correct multiple symbol errors. By adding t check symbols to the data, a Reed–Solomon code can detect any combination of up to t erroneous symbols, or correct up to ⌊t/2⌋ symbols. As an erasure code, it can correct up to t known erasures, or it can detect and correct combinations of errors and erasures. Reed–Solomon codes are also suitable as multiple-burst bit-error correcting codes, since a sequence of b + 1 consecutive bit errors can affect at most two symbols of size b. The choice of t is up to the designer of the code, and may be selected within wide limits.

Check wikipedia for more info, https://en.wikipedia.org/wiki/Reed–Solomon_error_correction

Getting Started

Installing

Download binary release from https://github.com/wangyu-/UDPspeeder/releases

Running (improves UDP traffic only)

Assume your server ip is 44.55.66.77, you have a service listening on udp port 7777.

# Run at server side:
./speederv2 -s -l0.0.0.0:4096 -r 127.0.0.1:7777  -f20:10 -k "passwd"

# Run at client side
./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 has been boosted by UDPspeeder.

Note

-f20:10 means sending 10 redundant packets for every 20 original packets.

-k enables simple XOR encryption

Improves all traffic with OpenVPN + UDPspeeder

See UDPspeeder + openvpn config guide.

Advanced Topic

Full Options

UDPspeeder V2
git version: 3e248b414c    build date: Aug  5 2018 21:59:52
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.
    -q,--queue-len        <number>        fec queue len, only for mode 0, fec will be performed immediately after queue is full.
                                          default value: 200. 
    -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 protect 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.
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
    --decode-buf          <number>        size of buffer of fec decoder,u nit: packet, default: 2000
    --fix-latency         <number>        try to stabilize latency, only for mode 0
    --delay-capacity      <number>        max number of delayed packets
    --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
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

--fifo option

Use a fifo(named pipe) for sending commands to the running program. For example --fifo fifo.file, you can use following commands to change parameters dynamically:

echo fec 19:9 > fifo.file
echo mtu 1100 > fifo.file
echo timeout 5 > fifo.file
echo queue-len 100 > fifo.file
echo mode 0 > fifo.file

wiki

Check wiki for more info:

https://github.com/wangyu-/UDPspeeder/wiki

Related repo

You can also try tinyfecVPN, a lightweight high-performance VPN with UDPspeeder's function built-in, repo:

https://github.com/wangyu-/tinyfecVPN

You can use udp2raw with UDPspeeder together to get better speed on some ISP with UDP QoS(UDP throttling), repo:

https://github.com/wangyu-/udp2raw-tunnel

udpspeeder's People

Contributors

bg6cq avatar carmot avatar harukama avatar heart4lor avatar llorx avatar wangyu- avatar wwbfred avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

udpspeeder's Issues

这是什么错误?

先是在 client 端看到这个
[2017-10-29 19:49:52][WARN]recv failed -1 ,udp_fd9,errno:Connection refused

client 配置

./speederv2_arm -c -l0.0.0.0:9998 -r 1.1.1.1:8080 -k "right-rae-guano-team-sill" -f30:10 --mtu 1600

Server端发生:

[2017-10-29 11:51:21][ERROR]recv_from error,this shouldnt happen at client

server

speederv2 -s -l0.0.0.0:8080 -r 127.0.0.1:6553 -k right-rae-guano-team-sill -f20:10 --mtu 1550

请问老毛子Padavan固件怎么使用speeder?

打开路由器地址后,点击搭建WEB环境-upd2pro-UDPspeeder 打开开关
如图
qq 20171021023128
这个我会设置。
但是配置文件中 (请手动配置【外部网络 - 端口转发 - 启用手动端口映射】来开启WAN访问)这个不会设置,请教如何设置,需要设置端口转发吗?
如图
qq 20171021022435

recv_from error,this shouldnt happen at client

最新版的v2服务端出现此问题,特别是流量比较大的时候。之前版本没仔细测试过所以不清楚。出现这个问题之后服务端就退出了,客户端貌似是好的。

不支持域名吗?

好像这里的r选项不支持域名吗?

Run at client side

./speederv2 -c -l 0.0.0.0:3333 -r 44.55.66.77:4096 -f20:10 -k "passwd"

请问下已经设置好的情况下怎么和s*配合用?

./speederv2_amd64 -s -l0.0.0.0:4652 -r0.0.0.0:8800 -f20:10 -k "password" &
`服务器配置,8800是ss的端口

./speederv2_x86 -c -l0.0.0.0:3333 -r11.22.33.44:4652 -f20:10 -k "password" &
客户端配置

ss的设置,ip是虚拟机的ip,客户端的服务是跑在虚拟机里面

服务器端我已经配置好了监听ss的端口,但是客户端这边直接把加速的端口当成原来的ss端口用则连不上。请问这该怎么办呢?

[2017-09-02 15:38:26][WARN]send returned -1 ,errno:Network is unreachable

[2017-09-02 15:38:26][WARN]send returned -1 ,errno:Network is unreachable

在Client端不斷接收此訊息.

Server端上沒有,

在client端运行:
./speeder_arm -l0.0.0.0:1701 -r 47.x.x.x:139 -c -d3 -k "12345"

在server端运行:
./speeder_amd64 -l0.0.0.0:139 -r 127.0.0.1:1701 -s -d3 -k "12345"

可以看出來, 我是希望用在Xl2tp上的. 單純使用xl2tp vpn 時, 可以連通.
但加上speeder後, VPN撥號有撥上, 但無法連通.

确实不知道怎么让openvpn通过虚拟机中的speeder连接上

#服务端已经架设speeder+openvpn+ssr,所有服务以及自启都设置好了。
客服端已经设置好虚拟机speeder自启了,ssr和openvpn也准备就绪。现在唯一就是不知道怎么设置openvpn连接虚拟机中的speeder。
是否是打openvpn-Settings-Proxy-Manual Configguration中选择HTTP Proxy或者SOCKS Proxy 然后设置虚拟机ip桥接地址?还有就是地址是那一个(下面是配图)?如果不是这样设置请问怎么设置,已经搞了几个通宵了。请帮助一下,谢谢。在线等
qq 20171014064615
qq 20171014064949
qq 20171014065807
qq 20171014064743

在pfsense路由器怎么用

我目前在国外用vps建openvpn,然后国内用pfsense接入vpn,pfsense里搭建的局域网,目前通过vpn nat到我本地局域网内各类web服务器,目前问题是有时丢包比较高20左右,随之延迟也高300多,另外openvpn我从本地局域网下载测速很慢,只有几兆。所以要找个解决方案,有聊天联系方式吗,这里写太多了。

加速方式

你好, @wangyu-

我最近一直是使用$$-libev来代理游戏的(绝地PUBG),但是我不知道OpenVPN用来代理游戏是不是更加适合,更加好!

我知道你用的OpenVPN来加速的游戏,但要配置OpenVPN可比安装使用繁琐,就来问你一下。

多谢。

用UDPspeeder + openvpn,server->client都是0

我有一个vps是腾讯云的CentOS7.2,电脑是windows10,之前搭建过openvpn,能连通。
现在就是不太理解服务端需要干什么(非常扎心),git clone过去make的时候报错。
UDPspeeder + openvpn的话我是不是得通过openvpn-->虚拟机里跑UDPspeeder-->我自己的服务器-->游戏服务器?
200Mbs的带宽不想白白浪费,流量也不是很贵……

关于tcpspeed的问题

tcpspeed(fs)自带端口sock5端口1083。目前用sstap sock5 连接fs socks5端口,直接加速游戏。但是实际使用情况是经常断线,人物瞬移(丢包),我想用这个多倍发包或者冗余来解决这个问题

加速方案的选择

首先感谢作者给我们提供了一个新的加速选择。然后,想请教一下开发者。

我的理解是,kcptun用于处理tcp数据,并转为udp,因此对原生的udp数据无效。

udpspeeder则是用于加速、处理udp数据的,因此对原生的tcp数据无效。

这里我有个疑问,主要是关于udpspeeder和kcptun的用途的。

我想加速香港的vps,用来玩游戏,低延迟是最重要的,通过额外的加速方案,进一步降低延迟,防止丢包,加强网络波动的抗性。

比如我用openvpn作为第一层,用来提供游戏加速的隧道

那么问题是,在低延迟应用中,udpspeeder能完全或者部分替代kcptun吗?

比如,有如下3种加速方案:

1、openvpn(tcp模式)+kcptun+udp2raw

2、openvpn(udp模式)+udpspeeder+udp2raw

3、openvpn(tcp模式)+kcptun+udpspeeder+udp2raw

第一种方案因为最底层还是tcp,即使转为udp,我感觉还是无法避免底层发起的3次握手等多余的请求(不确定)。

第二种感觉是最符合逻辑的,没有udp2tcp、或者tcp2udp的转换,但udpspeeder目前没有fec和快速重传这些kcptun上已经实现的功能,感觉还是有所欠缺,但不知道这些功能对游戏意义有多大。

第三种,感觉有多此一举的感觉(不确定)。

所以想请教一下开发者,我该作何选择呢?kcptun和udpspeeder对游戏的加速效果区别大吗?如果能加入fec、快速重传,udpspeeder是否就可以完全替代kcptun了呢?

实际应用

今天早上没有更新v2时,我搭建环境玩游戏(守望先锋),方式如下:

$$ client 1--'TCP'---> $$ Server
$$ client 2--'UDP'---> udpspeeder cient ---'UDP'---> udpspeeder Server ---'UDP'---> $$ Server

延迟有点高(180ms),游戏卡顿。

晚上我重新搭建搭建了环境,并加入了udp2raw-tunnel,也使用的udpspeederv2

但现在效果没有早上的那个效果好,更卡顿了。

我觉得实际应用并没有缓解网络状况啊。
或者我有什么设置错误?

Mac OSX 下无法编译:'sys/epoll.h' file not found

echo "const char * const gitversion = \"0a44043884a3f27b3c37e677d6eaf4e27d115f02\";" > git_version.h
rm -f speederv2
g++   -o speederv2          -I. main.cpp log.cpp common.cpp lib/fec.c lib/rs.c packet.cpp delay_manager.cpp fd_manager.cpp connection.cpp fec_manager.cpp -std=c++11   -Wall -Wextra -Wno-unused-variable -Wno-unused-parameter -Wno-missing-field-initializers -ggdb -lrt -ggdb -static -O3
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
In file included from main.cpp:1:
./common.h:20:10: fatal error: 'sys/epoll.h' file not found
#include <sys/epoll.h>
         ^~~~~~~~~~~~~
1 error generated.
In file included from log.cpp:1:
./common.h:20:10: fatal error: 'sys/epoll.h' file not found
#include <sys/epoll.h>
         ^~~~~~~~~~~~~
1 error generated.
In file included from common.cpp:8:
./common.h:20:10: fatal error: 'sys/epoll.h' file not found
#include <sys/epoll.h>
         ^~~~~~~~~~~~~
1 error generated.
lib/fec.c:343:5: warning: 'register' storage class specifier is deprecated and incompatible with C++1z [-Wdeprecated-register]
    USE_GF_MULC ;
    ^
lib/fec.c:198:21: note: expanded from macro 'USE_GF_MULC'
#define USE_GF_MULC register gf * __gf_mulc_
                    ^
lib/fec.c:344:5: warning: 'register' storage class specifier is deprecated and incompatible with C++1z [-Wdeprecated-register]
    register gf *dst = dst1, *src = src1 ;
    ^~~~~~~~~
lib/fec.c:344:5: warning: 'register' storage class specifier is deprecated and incompatible with C++1z [-Wdeprecated-register]
    register gf *dst = dst1, *src = src1 ;
    ^~~~~~~~~
3 warnings generated.
In file included from packet.cpp:9:
./common.h:20:10: fatal error: 'sys/epoll.h' file not found
#include <sys/epoll.h>
         ^~~~~~~~~~~~~
1 error generated.
In file included from delay_manager.cpp:7:
In file included from ./delay_manager.h:11:
./common.h:20:10: fatal error: 'sys/epoll.h' file not found
#include <sys/epoll.h>
         ^~~~~~~~~~~~~
1 error generated.
In file included from fd_manager.cpp:9:
In file included from ./fd_manager.h:11:
./common.h:20:10: fatal error: 'sys/epoll.h' file not found
#include <sys/epoll.h>
         ^~~~~~~~~~~~~
1 error generated.
In file included from connection.cpp:8:
In file included from ./connection.h:14:
./common.h:20:10: fatal error: 'sys/epoll.h' file not found
#include <sys/epoll.h>
         ^~~~~~~~~~~~~
1 error generated.
In file included from fec_manager.cpp:8:
In file included from ./fec_manager.h:11:
./common.h:20:10: fatal error: 'sys/epoll.h' file not found
#include <sys/epoll.h>
         ^~~~~~~~~~~~~
1 error generated.
make: *** [all] Error 1

直接在 git 目录里 make 就会有这错误。我想可能跟 epoll 方式有关, BSD系列不使用这个方式,所以可能有冲突。

多倍发包和fec的实际区别是什么?

以10秒发送10个原始数据包为例,假设线路丢包率20%。
个人理解:2倍发包就是10原始包+10备份包=20个包,远端实际收到16个包。
如果不幸这16个包收到的是前8个原始包+前8个备份包,那么数据实际收到是损坏的,丢失的2个包会触发软件快速重传之类的机制吗?目测好像没这功能
fec和多倍发包的真正区别是什么?目前主要依赖udpspeeder双倍发包玩游戏和kcptun并联工作,掉线次数确实减少了,也试过4倍发包效果没啥区别,并不令人满意。

Openvpn Config Doesn't Work

Tried your latest v2 speeder and your openvpn setup on my free AWS ubuntu, windows openvpn client cannot connect to the server even without the speeder tunnel. I guess the conf files need some modification? Thank you for your hard work.

请问一下,这个支持端口段吗?

在server端运行:
./speeder_amd64 -l0.0.0.0:8855 -r127.0.0.1:7777 -s -d2 -k "passwd"

请问这个可以修改为端口段吗?
用户很多的话,会出什么问题吗?
嗯。。。。。。酸酸乳加速
可以和锐速,bbr之类的共存吗?
锐速加速tcp
UDPspeeder加速UDP
感觉好完美呢

进一步是疑问
请看下面的组建
客户端--国内中转服务器--香港服务器
如果这样组建网络的话
udpspeed应该怎么操作呢

能麻烦作者说下UDPspeeder + openvpn + s****方案的大体步骤吗?多谢

Server环境:GoogleCloud-Ubuntu 14.4
本地:树莓派+Win10
目的:吃鸡~~
试过做主的另一个项目udp2raw配合kcptun,感觉在大流量上面有不少提升,因为看到作者说UDPspeeder + openvpn + ss方案对跨服游戏很有帮助,想试试,不过没搞明白具体是怎么连,这个openvpn是起什么作用的

Tune FEC redundancy automatically

Can we tune FEC redundancy automatically?
Based on the link statistics e.g. packet loss, rtt ...
UDPspeeder measures the link statistics, and dynamically select the best FEC ratio.
For those people whose network environment is quite unstable, the packet loss rate changes a lot.

如果使用后不丢包,但是延迟抖动较大,应该怎么调优

平时延迟良好,偶尔出现大延迟的抖动,应该如何调优呢,下面选项是否有用?应该选择什么值呢?

-i 选项

指定一个时间窗口,长度为n毫秒。同一个fec分组的数据在发送时候会被均匀分散到这n毫秒中。可以对抗突发性的丢包。默认值是0,因为这个功能需要用到时钟,在某些虚拟机里时钟不稳定,可能会导致个别包出现非常大的延迟,所以默认关掉了。这个功能很有用,默认参数效果不理想时可以尝试打开。这个选项的跟通信原理上常说的交错fec 交织fec的原理是差不多的。

udpspeeder+openvpn的问题

openvpn会不会被屏蔽啊?虽然我用来游戏,但有文章说openvpn已经被识别了,被封就麻烦了,我换服务器的ip要花钱

还有就是我现在准备用openvpn,免得装kcptun,但是装了openvpn就没有必要开启了吧?

直连OpenVPN正常,通过UDPSpeeder连接提示握手失败

环境:
OpenVPN客户端-Windows 10 1709 x64
UDPSpeeder客户端-Windows 10 1709 x64 Ubuntu子系统
UDPSpeeder,OpenVPN服务端-树莓派 Raspbian

未能排查的问题:
在不使用 UDPSpeeder 的情况下,OpenVPN 可以正常连接上
通过 UDPSpeeder 连接的话,UDPSpeeder 客户端显示收到了 OpenVPN 客户端发送过来的数据包:
inked _20171023131916_li

UDPSpeeder 服务端那边也显示收到了 UDPSpeeder 客户端发送过来的数据包:
inked _20171023132110_li

但是OpenVPN连接显示握手失败:
_20171023132308

OpenVPN客户端配置文件如下(不包含证书部分):
client
dev tun
proto udp
sndbuf 0
rcvbuf 0
remote 127.0.0.1 3333
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
auth SHA512
cipher AES-256-CBC
comp-lzo
setenv opt block-outside-dns
key-direction 1
verb 3
mssfix 1200
fragment 1200

OpenVPN服务端配置文件如下:
port 1194
proto udp
dev tun
sndbuf 0
rcvbuf 0
ca ca.crt
cert server.crt
key server.key
dh dh.pem
auth SHA512
tls-auth ta.key 0
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 168.126.63.1"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
cipher AES-256-CBC
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
verb 3
crl-verify crl.pem
mssfix 1200
fragment 1200

尝试过在启动UDPSpeeder命令中添加"--mode 0 --mtu 1200"参数,但错误依旧
从目前来看,UDP的隧道似乎是打通了,但是OpenVPN未能成功连接,问题应该是出在了认证这个阶段.
具体问题还需要进一步排查.

UDPspeeder + VPN 单线下载速度还是比不过 SOCKS 代理

添加 FEC 反而比 v1 影响最大速度,为了稳定性值得吗?v1双发包对除非是极烂线路来说延迟稳定性已经没问题。

UDPSPEEDER + VPN 单线下载速度是不是硬伤?我的测试顶多 200K,而用 kcp 就可以 3M/s,而 kcp 无法代理 UDP 啊。

V1 看 youtube 可以 5M/s,而 FEC 版就降到 kcp 一样速度,都有得失啊。

**r+kcptun+udpspeeder+udp2raw如何调优

个人用的是比较渣的线路,平时看看油管,之前试了另一个项目用ssr+kcptun+udp2raw效果还行,比原来不套udp2raw要好些,看来抗QOS是有效果的。后面想说udpspeeder还能加速就试了一下,在kcptun和udp2raw中间串了udpspeeder,但是效果却不好,貌似有拖后腿嫌疑。又试了一个办法,把kcptun拿掉了,用udpspeeder直接加速ssr,不过效果也不行,跟有没有串kcptun差别不大。是我打开的方式不对?如果是ssr+kcptun+udpspeeder+udp2raw串联顺序应该是怎样才合理?udpspeeder的参数怎么设才是合理的?

如何加速**r游戏模式下的UDP数据

如何加速ssr游戏模式下的UDP数据

本地ss-redir默认端口3333

VPS ssr服务监听接口2333

是本地SSR-(2333)-UDPspeederC(本地2333)服务器(23333)--------VPS(23333)本地2333---SSR服务端
是这样么

还有我在本地LEDE上跑 提示

Segmentation fault

错误

开机无法自动运行

开机无法自动运行,包括使用 nohup 和 screen 命令启动。只有通过 SSH 启动后,通过 exit 退出才能后台运行。

同一网段下树莓派+win10 OpenVPN客户端可连通但无法正常访问网页

首先感谢作者提供工具!
OpenVPN客户端直连VPS的OpenVPN服务端,可正常连接&访问网页。
使用同一网段下的树莓派运行UDPSPEEDER,win10 OpenVPN客户端通过树莓派的IP可正常连接到服务端,但无法访问网页,请问作者是需要额外在树莓派上使用iptables规则将流量转发到win10吗?
望指点,感谢~

延迟增加一倍这样正确嘛?

./speeder_amd64 -l0.0.0.0:8855 -r127.0.0.1:17952 -s -d0 -k "passwd" &
./speeder_arm -l0.0.0.0:17952 -r 44.55.66.77:8855 -c -d0 -k "passwd" &
按上面命令配置的 延迟增加一倍 如何能调低延迟呢?

直连openVPN成功,通过UDPspeeder失败

openVPN server.conf

client-cert-not-required
client-to-client
persist-key
persist-tun
username-as-common-name
auth-user-pass-verify /etc/openvpn/checkpsw.sh via-env
ca /etc/openvpn/ca.crt
cert /etc/openvpn/openvpn-server.crt
key /etc/openvpn/openvpn-server.key
tls-auth /etc/openvpn/ta.key 0
dh /etc/openvpn/dh2048.pem
dev tun1
port 1195
proto udp
ifconfig-pool-persist /var/log/openvpn/ipp.txt
keepalive 10 120
script-security 3
server 172.16.3.0 255.255.255.0
status /var/log/openvpn/openvpn-status-private.log
topology subnet
comp-lzo yes
verb 3
mute 20
push dhcp-option DNS 172.16.3.1
client-config-dir /etc/openvpn/ccd
fragment 1200
mssfix 1200
sndbuf 2000000
rcvbuf 2000000
txqueuelen 4000

openvpn client.conf

auth-user-pass pw.txt
client
dev tun
proto udp
#remote 45.77.88.99 1195
remote 127.0.0.1 3333
resolv-retry infinite
nobind
persist-key
persist-tun
#cipher none
key-direction 1
<ca>
</ca>
<tls-auth>
</tls-auth>
ns-cert-type server
comp-lzo
verb 1
mute 20
fragment 1200
mssfix 1200
sndbuf 2000000
rcvbuf 2000000
txqueuelen 4000

run on openvpn server side

./speederv2_amd64 -s -l0.0.0.0:7777 -r 127.0.0.1:1195 -f20:10 --mode 0 --mtu 1200 -k "password"

run on openvpn client side

./speederv2_amd64 -c -l0.0.0.0:3333 -r 45.77.88.99:7777 -f20:10 --mode 0 --mtu 1200 -k "password"

如果直连openVPN服务器一切正常,如果通过speederv2 的127.0.0.1:3333 连接,则提示

10月 24 16:57:24 debian9 ovpn-client[20151]: library versions: OpenSSL 1.0.2l 25 May 2017, LZO 2.08
10月 24 16:57:24 debian9 ovpn-client[20152]: TCP/UDP: Preserving recently used remote address: [AF_INET]127.0.0.1:3333
10月 24 16:57:24 debian9 ovpn-client[20152]: UDP link local: (not bound)
10月 24 16:57:24 debian9 ovpn-client[20152]: UDP link remote: [AF_INET]127.0.0.1:3333
10月 24 16:58:24 debian9 ovpn-client[20152]: TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
10月 24 16:58:24 debian9 ovpn-client[20152]: TLS Error: TLS handshake failed`

我的openVPN配置了用户名密码认证,不过应该跟这没关系吧

可否将代码缩进自动排版?

您好!

目前的代码的缩进比较散,可否执行以下命令自动排版?

indent *.cpp -nbad -bap -nbc -bbo -hnl -br -brs -c33 -cd33 -ncdb -ce -ci4 -cli0 -d0 -di1 -nfc1 -i8 -ip0 -l160 -lp -npcs -nprs -npsl -sai -saf -saw -ncs -nsc -sob -nfca -cp33 -ss -ts8

谢谢

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.