Skip to content

发Issue前请看

wangyu- edited this page Jun 28, 2018 · 114 revisions

这篇文章(Issue指南)适用于udp2raw、UDPspeeder和tinyfecVPN。

对于任何ISSUE

欢迎有一定技术基础和动手能力的人交流、讨论、提问;不欢迎伸手党和特别小白的小白。

ISSUE中不允讨论翻墙。

ISSUE不限于提问 bug反馈,也可以是教程 经验分享 效果反馈等类型的ISSUE。

在ISSUE中说明你已阅读本Issue指南。

可能导致ISSUE被忽略的行为

  1. 发ISSUE者在当前ISSUE中(或其他的issue中多次)表现出了严重的基础知识匮乏,提出的问题过于小白。

  2. 发ISSUE者缺乏自我解决问题的意识,不读README.md,自己不动手、不思考,而是一有问题就抛给别人,在当前ISSUE中(或其他的issue中多次)表现出了明显的伸手党特征。

  3. 发ISSUE者过于粗心,(在当前的issue或其他的issue中)多次犯严重的低级错误。

  4. 发ISSUE者缺乏沟通意识,不肯认真描述问题;或者除了抛出问题外,不能/不肯主动提供对解决问题有帮助的信息。

对于1、2,如果情节过于严重,可能会被永久Ban掉提问的权利。

其他不受欢迎的行为

  1. 在别人帮助解决了问题之后半路消失,不提供任何反馈。

  2. 在ISSUE被解决之后,删掉了ISSUE中的内容,使其他遇到类似问题的人无从参考。(如果你的文字/图片中不小心夹带了敏感信息,可以处理掉敏感部分;但是只要你发的内容被人回复了,就禁止完全删掉。否则可能会被永久Ban掉提问的权利)

  3. 为相关/相似的问题反复开新ISSUE,占用ISSUE的版面,影响他人查阅(相关的问题应在回复在同一ISSUE内,不要开新ISSUE刷屏。原则上一天内的ISSUE不应超过2个,一周内不应超过5个,一个月内不应超过10个;反馈bug不受此限制) (这里不欢迎国内论坛上常见的灌水/刷发帖量/刷人气等行为)

具体类型的ISSUE

1. 软件不能正常连通,寻求帮助解决类的Issue

发Issue前先做自我排查

常见情况

绝大多数的不能连通情况,都是因为配置了不规范的iptables造成的。不能正常连通,请清空两端的iptables后重试。清空后记得用iptable-save检查,确保确实是清空了的。清空前请先备份。清空iptables的方法

还有一部分情况是因为你要访问的服务没有bind在0.0.0.0,请用netstat -nlp检查服务器的bind情况。

还有一个情况是,虚拟机的网卡不是桥接模式;或者没有手动指定桥接到的网卡,而是选择了“自动指定桥接到的网卡”,造成虚拟机桥接到了错误的网卡。

其他

排除网路本身的问题,比如用ssh测试本地到服务器的tcp连接是否正常、使用nc/ncat+-u选项测试本地到服务器的udp的连接是否正常(是否可以双向发送数据)。

仔细阅读README.md,避免低级错误。

反面行为:

“这个iptables我用了好几年,绝对不会有问题;所以不用清空” (已经发生好几次了,最后还是iptables的问题)

“这个环境kcptun能用,可是UDPspeeder用不了,绝对不是环境的问题” (同上)

因为不读README.md产生低级错误。比如README.md里面已经明确说了udp2raw只能转发udp,然而还是有人问“为什么我配好了udp2raw却无法转发ssh”。

在ISSUE中有效描述自己的环境、命令和遇到的问题

详细描述自己的client和server都是什么机器,普通电脑、VPS、docker、虚拟机或是树莓派、openwrt路由器。

描述自己的client和server的网络情况,电信/网通/移动还是公司内网;如果是VPS的话,说明服务商、机房、套餐等信息。

在软件两端加上--log-level 5和--log-position,贴出client和server端的完整命令和log;说明软件的版本。如果用了openvpn之类的需要配置文件的软件,贴出完整配置文件。

贴出client和server端的ip route ifconfig iptables-save netstat -nlp ip rule的完整输出。

说明自己针对问题做过哪些排查。

提示

根据具体问题,可以省略一些帮助不大的信息。如果你不知道什么信息是有帮助的,那就尽量都提供。

反面行为:

“我全都是按照教程做的,可是就是不好使”, 然而就是不提供任何有价值的信息。

2. 性能/效果类Issue

性能/效果类Issue:在软件可以连通的情况下,遇到的其他问题;比如连接速度、CPU占用、流量耗费等问题。

对于任何此类ISSUE,必须贴出软件的完整参数/命令、描述自己的环境和测试方法,否则视为无效。

对于可以量化的问题,必须贴出具体的数据,比如"CPU占用很高"、"CPU占用比某某软件高"、"速度很慢"、"速度比直连还慢" 等没有具体数据支持的描述是无效的。

对于连接速度类的Issue有具体的注意事项,请看下文。

3. 连接速度类的ISSUE

发ISSUE前请注意

关注CPU占用

如果速度不符合预期,先检查CPU占用率。如果CPU占用率接近100%,调整参数后重新测试。对于udp2raw,降低加密等级可以节省CPU;对于UDPspeeder/tinyFecVPN降低FEC分组大小可以节省CPU(分组大小等于-f x:y中的x+y)。

不接受以YouTube速度作为依据的ISSUE

YouTube速度可以贴出作为参考,但是不可以作为依据。请用专业的测速网站测速,或者下载大文件/scp大文件,或者用iperf3

原因:

  1. YouTube的速度显示只是估计量,本身就不是准确值。YouTube实际上并不会以显示的速度发送数据。

  2. 默认设置下chrome可能走TCP也可能走QUIC,很多人都搞不清楚连接到底是走了哪个协议

  3. YouTube服务器自带BBR协议。如果你用的是VPN方式,你的TCP连接能从youtube上部署的BBR收益(而不可以从VPS上部署的BBR受益);但是如果你用的是$***方式,TCP连接就不能从YouTube上部署的BBR收益(却可以从VPS上部署的BBR收益)。 也会造成困惑。

不接受iper3 3.2版本以下的UDP测试数据

3.2版以下的UDP测试有BUG,结果几乎不可用;TCP不受影响。

3.2版及以上版本问题才修复。如果参数设置不当,仍然可能有问题;所以贴出iperf3结果的同时必须贴出iperf3的参数。

在ISSUE中有效描述自己的环境、命令

描述自己的测速方法、VPS服务商和套餐信息、本地网络的ISP和带宽、本地网络到VPS的丢包信息。

准确描述udp2raw/UDPspeeder/tinyFecVPN等软件的连接方式,贴出相关软件的参数和命令。

4. 要求实现某个功能的Issue

先用feature request标签搜索一下是否有人提过类似的需求,避免重复issue。

不要发支持windows/mac一类的feature request,这个已经有计划了,以后会支持。(如果你急着用,可以用虚拟机运行。更好的办法是买一个树莓派或者能刷OpenWRT的路由器,把UDPspeeder等运行在路由器上,这样只需要一次配置就可以支持 windows/mac/android/ios/游戏主机 等的全部平台)

ipv6支持也有计划,所以也不要发ipv6支持类的issue了。

5. 提问类ISSUE

不要提README.md中已经明确说明了的问题。比如“这个软件支持Mac吗”。

Clone this wiki locally