Skip to content

使用经验

wangyu- edited this page Aug 22, 2018 · 43 revisions

UDPspeeder的使用经验

UDPspeeder的几乎所有经验在这里都是适用的。

https://github.com/wangyu-/UDPspeeder/wiki/使用经验

不能正常连通

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

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

也有可能是你的udp被本地运营商屏蔽了,在前面串个udp2raw可以解决。

报错open /dev/net/tun failed

可能是你没有root或cap_net_admin权限,(提示:用非root账号运行tinyfecVPN更安全,具体方法请参考 https://github.com/wangyu-/tinyfecVPN/wiki/run-tinyfecVPN-as-non-root

也可能是你的设备上面没有这个文件。例如对于lede或openwrt,用opkg安装kmod-tun,安装后会自动出现。 你也可以用包管理器安装个openvpn,因为openvpn依赖kmod-tun,这个设备也会自动被包管理器配好。

绝大多数linux发行版上都是默认建好了/dev/net/tun的,一般只会在lede/openwrt等嵌入式发行版上遇到此问题。在我提供的虚拟机里,也是自带/dev/net/tun的。

MTU 问题

--mode 0下编码器会自动把数据包切分到合适的长度,所以你可以完全不用考虑MTU。建议新手就用默认的--mode 0参数不要改。

如果用了--mode 1,编码器就不会对数据包做切分了,所以会引入MTU问题。 建议使用设置--mtu 1250 --tun-mtu 1250

透过tinyfecVPN免改iptables加速网络

https://github.com/wangyu-/tinyfecVPN/wiki/透过tinyfecVPN免改iptables加速网络

重启client或server后不断线(可选)

新版本

较新的版本的tinyfecVPN可以用--persis-tun选项,这样创建出来的tun设备就直接是持久型的,不需要额外使用ip tuntap设置。

旧版本

用下面这个命令,建立一个持久型的tun设备,叫tun100

ip tuntap add tun100 mode tun
ifconfig tun100 up

然后在tinyfecVPN里用--dev-tun tun100使用这个持久型tun设备。

需要ip命令支持tuntap,运行ip --help,如果里面有tuntap字样,就是支持。否则你需要安装完整版的ip命令。

加密

tinyfecVPN是一个极轻量的VPN,比l2tp还轻量,只自带了简单的xor加密。如果你需要AES加密,可以在前面串个udp2raw,这样同时还能获得防重放攻击的能力。

如何测试网络本身的丢包率

两种常用方法:

  1. --disable-fec关掉tinyfecVPN的fec功能,透过tinyfecVPN来ping。(不透过VPN直接ping可能不准确,直接ping是icmp流量,无法反映出UDP的丢包率)

  2. 在两端加上--report 10,看发送/接受报告。

细节在UDPspeeder的wiki已经说过,这里不再重复。

用udp2raw防止tinyfecVPN被限速或断流

udp2raw可以把udp流量伪装成tcp,防止udp被运营商限速或断流。即使发生断流,udp2raw可以检测到这种情况并自动帮你重连。

推荐tinyfecVPN和udp2raw一起使用。连接方式:

tinyfecVPN client---->udp2raw client--------------->udp2raw server---->tinyfecVPN server

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