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.28k stars 457 forks source link

lede 配置路由后访问任何网页都被拒绝 #25

Closed WouldChar closed 6 years ago

WouldChar commented 6 years ago

首先感谢作者无私的付出和贡献! 运行环境:lede固件路由器,ip地址为192.168.1.1,lede路由器从上级路由器获取ip为192.168.2.194,上级路由ip为192.168.2.1

iptables 按照wiki清空方法清空后保存,然后重启路由器

运行命令:(参照wiki上lede虚拟机的教程) ip tuntap add tun100 mode tun

(一开始运行就提示tuntap未知目标的错误,后来才知道要安装ip-full,自己适配的lede固件编译时只集成了ip,这坑了我几天。。。)

ifconfig tun100 up echo 1 >/proc/sys/net/ipv4/ip_forward nohup ./udp2raw_mips24kc_be -c -l0.0.0.0:4000 -r44.55.66.77:8855 -a -k "passwd" --raw-mode faketcp --keep-rule >/dev/null 2>&1 & nohup ./tinyvpn_mips24kc_be -c -r127.0.0.1:4000 -f20:10 -k "passwd" --sub-net 10.22.22.0 --tun-dev tun100 --keep-reconnect --report 10 >/dev/null 2>&1 &

配置路由

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o tun100 -j MASQUERADE ip route add 44.55.66.77/32 via 192.168.2.1 dev eth0 ip route add 0.0.0.0/1 via 10.22.22.1 dev tun100 ip route add 128.0.0.0/1 via 10.22.22.1 dev tun100

ifconfig输出: br-lan Link encap:Ethernet HWaddr DC:FE:18:4A:0B:7D
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fd15:a372:529d:4::1/62 Scope:Global inet6 addr: fd25:12e4:e91c::1/60 Scope:Global inet6 addr: fe80::defe:18ff:fe4a:b7d/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:4564 errors:0 dropped:0 overruns:0 frame:0 TX packets:5551 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:525694 (513.3 KiB) TX bytes:4248087 (4.0 MiB)

eth0 Link encap:Ethernet HWaddr DC:FE:18:4A:0B:7E
inet addr:192.168.2.194 Bcast:192.168.2.255 Mask:255.255.255.0 inet6 addr: fe80::defe:18ff:fe4a:b7e/64 Scope:Link inet6 addr: fd15:a372:529d::fd2/128 Scope:Global inet6 addr: fd15:a372:529d::defe:18ff:fe4a:b7e/64 Scope:Global UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:36960 errors:0 dropped:0 overruns:0 frame:0 TX packets:19493 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:13019086 (12.4 MiB) TX bytes:3831108 (3.6 MiB) Interrupt:4

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:47554 errors:0 dropped:0 overruns:0 frame:0 TX packets:47554 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:9695478 (9.2 MiB) TX bytes:9695478 (9.2 MiB)

tun100 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.22.22.2 P-t-P:10.22.22.1 Mask:255.255.255.255 inet6 addr: fe80::9af7:ba81:a27f:a516/64 Scope:Link UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:3382 errors:0 dropped:0 overruns:0 frame:0 TX packets:2601 errors:0 dropped:2 overruns:0 carrier:0 collisions:0 txqueuelen:500 RX bytes:3846649 (3.6 MiB) TX bytes:328262 (320.5 KiB)

ip route: 0.0.0.0/1 via 10.22.22.1 dev tun100 default via 192.168.2.1 dev eth0 proto static src 192.168.2.194 10.22.22.1 dev tun100 proto kernel scope link src 10.22.22.2 44.55.66.77 via 192.168.2.1 dev eth0 128.0.0.0/1 via 10.22.22.1 dev tun100 192.168.1.0/24 dev br-lan proto kernel scope link src 192.168.1.1 192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.194 192.168.2.1 dev eth0 proto static scope link src 192.168.2.194

问题描述: 按照上述方法配置完ip route后(经过测试,具体在ip route add 0.0.0.0/1 via 10.22.22.1 dev tun100之后出现问题),路由器ping 服务器ip和10.22.22.1均有回应,但是本地windows访问任何网页都被拒绝,路由器ping国内网站也没回应,挂$$ R(用tinyvpn加速)后,只能访问国外网站而不能访问国内的。怀疑lede路由器正确的路由配置跟虚拟机上lede的不一样,试过自己改了一番,但是都行不通,由于本人不怎么懂路由配置,请求作者大大指教!

wangyu- commented 6 years ago

iptables 按照wiki清空方法清空后保存,然后重启路由器

不清楚你说的保存是用什么方法。

lede路由器重启之后,会重新生成一堆规则,一般重启后之前做的清空就无效了。

另外,路由器上面的规则很多都是有用的,不建议清空。而lede虚拟机上可以随便清空。

怀疑lede路由器正确的路由配置跟虚拟机上lede的不一样,试过自己改了一番,但是都行不通,由于本人不怎么懂路由配置

这个必须具体情况具体分析。需要你了解相关知识,参考wiki上的配置,自己做相应修改。

WouldChar commented 6 years ago

执行清空命令后用iptables-save,然后发现路由器不能上网了。。。之后就重启了路由器。 既然这样,那我就先自己多折腾些吧。不过如果不配置路由的话,udp2raw+tinyvpn+$$ R的方案玩游戏和看视频还是比较稳的,就是不知道为什么ping tinyvpn的ip延迟要比ping服务器ip的延迟要高10-20ms,有时候甚至高上40-50ms。感谢大佬的回复~~

wangyu- commented 6 years ago

默认参数会引入0\~8毫秒的延迟,一个来回加起来就是0\~16毫秒。

想要降低延迟可以参考:

https://github.com/wangyu-/UDPspeeder/wiki/推荐设置

大于16ms的延迟基本上是网络本身的问题,不是udp2raw+tinyvpn引入的。

WouldChar commented 6 years ago

使用--mode 0 -f2:4 -q1 后延迟稳定正常了。 感谢大佬指导!

WouldChar commented 6 years ago

幸运地找到了一种折中的方法解决了上述问题。再补充一下。 之前不能访问网页的问题,确认是iptables的问题,由于本人刚接触这方面不久,多次折腾后还是没搞出正确的防火墙配置。不过无意中发现L2TP设置的防火墙是和wan接口一样的,于是便想到将tun100的配置成wan的,但是不会用命令行配置,只能用luci界面配置了,方法如下: 先用命令行运行: ip tuntap add tun100 mode tun ifconfig tun100 up 之后在用luci界面操作: 新建接口,名称随意,协议选择不配置,包括接口选择tun100,提交后在防火墙设置里分配为wan,然后保存即可。 之后运行client,配置路由都按wiki里lede虚拟机的方法。以后重启路由器也不用重新配置iptables。 本人实测在lede路由器上可行,在这分享一下,供不会配置iptables的朋友参考。 感觉用命令行完成上述操作应该更简单快捷,大佬能不能指教一下?