wangyu- / tinyfecVPN

A VPN Designed for Lossy Links, with Build-in Forward Error Correction(FEC) Support. Improves your Network Quality on a High-latency Lossy Link.
MIT License
2.31k stars 459 forks source link

L2TP不行 #8

Closed squallgai closed 6 years ago

squallgai commented 6 years ago

端口转发都用了。SS这些没问题。但是转发L2TP不行,始终无法连接。。同样的设置。就换了端口。。L2TP始终无法使用。是我哪里设置错了吗?

wangyu- commented 6 years ago

你现在的用法是VPN套VPN?

这种特殊用法必须添加一条路由例外,防止tinyFecVPN的流量被L2TP劫持,见下面这个连接:

https://github.com/wangyu-/UDPspeeder/blob/master/doc/udpspeeder_openvpn.md#note

这个讲的是怎么让OpenVPN不劫持UDPspeeder的流量,VPN套VPN也是一样的道理。

squallgai commented 6 years ago

是这个意思。这个vpn差不多建立一个通道嘛。。SS的端口都可以,我以为1701这个端口也行。添加了例外一条路由还是不行。。直连vps可以。通过这个中转就不行了。好比vps没有开放L2TP一样

wangyu- commented 6 years ago

检查一下l2pt是否bind到了0.0.0.0

如果还不行,清空两端所有iptable再试。

wangyu- commented 6 years ago

还有检查一下l2tp的mtu设置,建议设置到1200以下。

squallgai commented 6 years ago

L2TP刚才用1460的时候客户端直接报错说太短。 message too long len=1473 fec_mtu=1460,ignored,改成1500就好了。而且玩游戏用1400以下也是报错,改成1460以上才可以

squallgai commented 6 years ago

就是连接无响应,应该bind到了0.0.0.0,可能gfw有干扰也不一定。其他软件都可以连接上。包括openvpn..

squallgai commented 6 years ago

对了,用kcptun+udpspeeder的时候L2TP也不行。。SS怎么弄都可以

wangyu- commented 6 years ago

L2TP刚才用1460的时候客户端直接报错说太短。 message too long len=1473 fec_mtu=1460,ignored,改成1500就好了。而且玩游戏用1400以下也是报错,改成1460以上才可以

你用了--mode 1 ?

squallgai commented 6 years ago

是的。。不是mode 1速度快一点吗

wangyu- commented 6 years ago

L2TP刚才用1460的时候客户端直接报错说太短。 message too long len=1473 fec_mtu=1460,ignored,改成1500就好了。而且玩游戏用1400以下也是报错,改成1460以上才可以

你把tinyFecVPN加上了--mode 1然后 mtu 改成了1460和1500?能用就怪了。如果不懂mtu是什么的话,老老实实用默认参数。

wangyu- commented 6 years ago

还有检查一下l2tp的mtu设置,建议设置到1200以下。

我跟你说的是改l2tp里面的mtu,不是改tinyFecVPN的。

squallgai commented 6 years ago

L2TP 的MTU里面改成1200,tinyFecVPN用默认的,L2TP连接还是没有响应,SS能连接

squallgai commented 6 years ago

bind里面L2TP的1701,4500,500,都在0.0.0.0

wangyu- commented 6 years ago

tinyFecVPN两边加上--log-level 5 --log-position

贴出两边tinyFecVPN和L2TP的完整命令、配置和log,贴出两边iptables-save和netstat -nlp的完整输出。

描述一下两边机器的系统,网络连接方式。

==update== 还有两边 ip route的完整输出

squallgai commented 6 years ago

可以了,是我的iptables之前的添加的一个命令没有删除掉。。 ip route del 44.55.66.77 dev tun242 这个添加上去后连接不上,删除掉就可以连接,而且能上了 谢谢大佬了。。麻烦你这么久

wangyu- commented 6 years ago

没事。

如果用mode 1的话,保持tinyFecVPN的默认MTU不变,调整l2tp的MTU到1200以下。确保tinyFecVPN里不报MTU的WARN,就可以了。

squallgai commented 6 years ago

好的。我用ss-tap用mode 1,不改变mtu的话会提示message too long len=1473,是不是ss服务端里面哪里也要设置的

wangyu- commented 6 years ago

好的。我用ss-tap用mode 1,不改变mtu的话会提示message too long len=1473,是不是ss服务端里面哪里也要设置的

这个不是s***服务端控制的,应该是ss-tap控制的。我瞅了一眼ss-tap的设置页面,貌似ss-tap不支持设置mtu,那还是用mode 0吧。 mode 0会自动切分数据,不用操心MTU,只是延迟大一点点。

我用ss-tap用mode 1,不改变mtu的话会提示message too long len=1473。

你把mode 1的--mtu调成1500以后,只是不报错了,实际上配置是错的。

wangyu- commented 6 years ago

可以看一下README.md里面这一节:

如果你是开发者,对于--mode 1可以尝试--tun-mtu,把设备mtu设置成和--mtu相同的值(如果没设置过--mtu就把--tun-mtu设成默认的1250),这样可以使内核对ip包分片(只适用于允许分片的数据包),达到传输巨大的UDP数据包的目的。新手不建议用。

如果用不明白就算了。

squallgai commented 6 years ago

好的,就一个玩游戏的,学下,谢谢大神,我自己再研究研究...