1 jasontse 2015-03-29 09:58:29 +08:00 via iPad 理论上是 PPTP 的 GRE 封装比 UDP 快 |
![]() | 2 liuchen9586 OP @jasontse 是的,但是我测试了十几个用户,都说OpenVPN的UDP封装比PPTP的速度快得多,玩游戏也是OpenVPN UDP性能更优秀。 所以我感觉,按照实际上来比较好。 |
![]() | 3 hadoop 2015-03-29 10:09:25 +08:00 感谢lz,改天试试。 |
![]() | 4 pwinner 2015-03-29 10:54:29 +08:00 via Android pptp怎么优化至今还没搞定,自己的Linode跑pptp能看网页但是速度奇慢,只有不到0.5Mbps,楼主方案是一个很不错的解决办法啊。(用Debian残念的看着你 |
![]() | 5 liuchen9586 OP @pwinner 命令都是差不多的(认真 命令可以翻译成不同版本的。 |
![]() | 6 pwinner 2015-03-29 10:59:58 +08:00 via Android @liuchen9586 这个我也知道啦:p 顺便我发现国内中转好像也没什么优势嘛,自己的杭州阿里云ping我的日本linode丢包,延迟还不如自己家。。。 |
![]() | 7 hjc4869 2015-03-29 11:08:14 +08:00 感谢楼主。已收藏,等我搞到靠谱的我朝服务器后试试。 |
![]() | 8 laincat 2015-03-29 11:24:26 +08:00 好文,留个记号以后用。 |
![]() | 9 liuchen9586 OP |
10 zk8802 2015-03-29 12:11:50 +08:00 祝贺楼主成功完成了配置! |
![]() | 12 datou 2015-03-29 12:33:31 +08:00 玩东南亚csgo匹配的话,办个移动宽带比啥都强 0loss,70ms左右的延迟 |
13 guojing 2015-03-29 12:53:45 +08:00 @liuchen9586 对linux不是太熟悉,可能理解错。看你配置的步骤感觉有重复:步骤2,5重复,步骤3,4重复。能说明一下吗?谢谢 |
![]() | 14 liuchen9586 OP ![]() @guojing iptables 和ip rule要配合工作的,缺少一样都跑不起来。 2和5真没重复,一个是NAT翻译,改变source IP的,一个是规定路由表,没routing table数据包是不知道怎么走的。 |
![]() | 15 Yien 2015-03-29 13:52:22 +08:00 感谢楼主分享! |
![]() | 16 treo 2015-03-29 14:04:32 +08:00 为啥要这么折腾,server端多开几个shadowvpn,让客户端直接运行shadowvpn不就行了 需要墙内服务器中转的,就由墙内服务器直接转发udp包到墙外server端 |
![]() | 17 liuchen9586 OP @treo 那你是没玩过高级策略路由特性。粗暴的端口转发方式,稍微高级点的路由特性都不支持,比如多重转接。 |
![]() | 18 welsmann 2015-03-29 18:00:52 +08:00 先收藏+感谢,得空来试试 |
![]() | 19 XiaoxiaoPu 2015-03-29 18:56:15 +08:00 步骤 3 和 4 确实重复了,只要 4 就够了。iptables 的 mark 和 ip rule 配合适合用来做不同端口走不同路由。 |
![]() | 20 liuchen9586 OP @XiaoxiaoPu 嗯,不过既然能用而且能起到控制路由走向,就木有问题啦。 (其实我想说我这个CentOS 6.x,3和4步骤缺一不可……不知道为啥) |
![]() | 21 XiaoxiaoPu 2015-03-29 21:09:37 +08:00 @liuchen9586 我自己的没用 iptables 的 mark,一点问题也没有(archlinux 大法好) |
![]() | 22 rainy3636 2015-03-29 21:31:25 +08:00 转发不该是这个吗? iptables -t nat -A POSTROUTING -s [你的openvpn源地址段] -j SNAT --to-source [你的ShadowVPN interface IP] 没有-t nat的话 debian 下提示iptables: No chain/target/match by that name. |
![]() | 23 Leafove 2015-03-29 21:38:47 +08:00 @rainy3636 @liuchen9586 而且非ovz下应该是iptables -t nat -A POSTROUTING -s [源地址段] -o tunX (你的ShadowVPN interface) -j MASQUERADE |
![]() | 24 Leafove 2015-03-29 21:39:47 +08:00 @liuchen9586 特别感谢,周五还在发帖询问相关方案 |
![]() | 25 rainy3636 2015-03-29 21:51:05 +08:00 |
![]() | 26 liuchen9586 OP |
27 Sagiri 2015-03-29 22:53:01 +08:00 收藏 感谢分享 |
![]() | 28 free1 2015-03-29 23:01:11 +08:00 via iPhone 感谢分享,标记一下~ |
![]() | 29 phoenixlzx 2015-03-29 23:09:52 +08:00 via Android 我一直是 chnroutes + ip rule,国内节点正好当BGP加速解决跨运营商访问慢 |
30 hzqim 2015-03-29 23:59:16 +08:00 感觉比 shadowsocks 麻烦一些,请问 openvpn 比 shadowsocks 胜在哪里? |
![]() | 31 nlzy 2015-03-30 01:19:48 +08:00 感谢分享,不过这好麻烦,,,我打CSGO匹配用奇游80ping,已经很满足了=A= |
![]() | 32 yy1984 2015-03-30 09:02:37 +08:00 我感觉不需要openvpn,只要shadowvpn一个就足够了。 我目前就是用shadowvpn+ipset+dnsmasq-full+gfwlist智能翻墙,唯一的麻烦在于shadowvpn与MWAN3多拨不兼容。 |
![]() | 33 liuchen9586 OP @yy1984 我这个不是翻墙的……我这个是策略路由,而且并不是在家用路由器上面做的QAQ |
34 lhuiwu6 2015-03-30 09:39:04 +08:00 犀利的楼主。有时间再瞧瞧。 |
![]() | 35 yy1984 2015-03-30 10:34:07 +08:00 @liuchen9586 智能翻墙就是用策略路由实现的,也是iptables设置mask,然后ip rule分流。 家用路由器上的openwrt也是linux,本质上跟你的方法没区别。 所以我觉得openvpn或shadowvpn有点多余,留一个就行 |
![]() | 36 liuchen9586 OP @yy1984 我服务器是放在公网的,根本不是家用路由器啊 给人玩东南亚游戏加速用的 |
37 loca1h0st 2015-04-06 17:34:20 +08:00 @liuchen9586 我按照你的教程确实已经配置成功了,非常感谢。 但现在有一个想法,拉入chnroutes在整个网络拓扑内。 我尝试在国内的跳板机上配置根据目的地地址的ip rule策略,达到国内的流量走国内的跳板机的目的。 但是现在配置完成之后国内的地址就无法访问了,我估计是因为iptables把我openvpn的地址转成shadowvpn的了? 想问问楼主你对这个问题有没有什么好的看法? |
![]() | 38 liuchen9586 OP @loca1h0st chnroute给的下一跳地址是eth0?如果不是那就没法访问的。 表要打入对应编号的路由表内,不然也不行 |
39 loca1h0st 2015-04-06 22:37:39 +08:00 via iPad @liuchen9586 我是写的openvpn的网卡as0t1,如果写eth0不会因为nat的原因数据包无法转发么? |
40 loca1h0st 2015-04-06 22:44:07 +08:00 via iPad @liuchen9586 你好,我刚刚尝试了如下操作。 添加自定义路由表china 然后设置ip route add default dev eth0 table china ip rule from openvpn to chnroutes table china 然后测试访问国内的网站发现Chrome的提示是因防火墙或代理错误无法访问。 这个是不是因为走国内的线路并没有对数据包进行NAT抓换造成的? |
![]() | 41 liuchen9586 OP @loca1h0st chnroute下一跳写物理网卡出接口。 |
42 loca1h0st 2015-04-07 08:33:33 +08:00 @liuchen9586 物理网卡是eth0... |
![]() | 43 liuchen9586 OP @loca1h0st 知道,Chnroute下一跳写eth0,default gw写ShadowVPN的interface |
44 loca1h0st 2015-04-07 09:56:58 +08:00 |
![]() | 45 liuchen9586 OP @loca1h0st ip rule抓的流量是让它强制使用这个路由表,真正控制数据包走向还是靠路由表里面的路由条目。 default gw就是你写的这个。 chnroute下一跳写eth0就是指明它直接走物理网卡。 然后补上一条NAT语句: iptables -t nat -A POSTROUTING -s [你的openvpn源地址段] -j SNAT --to-source [你的eth0 IP] NAT Translation只有在数据包到达接口的时候才会触发。 |
46 kacong 2015-04-07 11:36:56 +08:00 终极解决方案之一,只要出国网络还通,就有希望ok,谢谢。 |
47 loca1h0st 2015-04-07 19:49:43 +08:00 @liuchen9586 刚刚测试了下还是不行。。 默认情况: ip route add default dev tun0 table vpn ip rule add from openvpn table vpn iptables -t nat -A POSTROUTING -s [你的openvpn源地址段] -j SNAT --to-source [你的tun0 IP] chnroutes ip route add default dev eth0 table china ip rule add from openvpn to chnroutes table china iptables -t nat -A POSTROUTING -s [你的openvpn源地址段] -j SNAT --to-source [你的eth0 IP] ip route flush cache 访问国内的网站还是出现网络防火墙或代理错误 |
48 loca1h0st 2015-04-07 19:58:20 +08:00 @liuchen9586 按如上的配置完成之后本地访问的同时对网卡进行抓包。 出现的是10.7.0.2(shadowvpn的interface ip)发出的arp报文,报文内容为ARP, Request who-has a.b.c.d tell 10.7.0.2, length 28 |
![]() | 49 liuchen9586 OP @loca1h0st chnroute的路由条目放到vpn路由表内 |
50 loca1h0st 2015-04-07 21:56:01 +08:00 @liuchen9586 已经解决了,非常谢谢指导。 记录下解决方案,也许会对别人有帮助 1.把两条SNAT的命令修改成如下: iptables -t nat -A POSTROUTING -s [你的openvpn源地址段] -o tun[x] -j SNAT --to-source [你的tun0 IP] iptables -t nat -A POSTROUTING -s [你的openvpn源地址段] -o eth[x] -j SNAT --to-source [你的eth0 IP] 然后再抓包发现还是有ARP报文,但是IP地址从10.7.0.2变成了eth0的IP地址。 这里是感到奇怪的一点,明明有子网掩码的计算了,不应该出现ARP,应该就去找网关地址了。 2.然后修改自定义路由表的默认网关信息。 由ip route add default dev eth0 table china修改为: ip route add default via [gw_ip] dev eth0 table china ip route flush cache之后达到目标。。。 |
![]() | 51 KCheshireCat 2015-04-27 10:55:26 +08:00 ![]() 其实还有个隧道选项 走UDP的静态l2tpV3,比较新的内核直接就支持。 然后3.18内核开始还有个foo over udp的新静态隧道。 UDP的好处是可以穿ISP的NAT。 |
![]() | 52 1nt 2015-05-22 11:45:58 +08:00 |
![]() | 53 liuchen9586 &nbp; OP ![]() @1nt 我用的是Ustack,30Mbps能跑到28Mbps,还可以 |
![]() | 54 g552656 2015-06-08 16:10:55 +08:00 @liuchen9586 愿意有偿咨询几个问题,可否给个联系方式? |
![]() | 55 liuchen9586 OP @g552656 其实我对linux不太熟悉 你可以发邮件到我ID@google邮箱 |
![]() | 56 NickLiulol 2015-07-03 00:04:33 +08:00 @liuchen9586 太感谢了,AZURE北京+日本某机房成功配置,但是北京机房ping还是丢包,所以买了个softlayer香港的机房试试 |
![]() | 57 NickLiulol 2015-07-03 23:41:39 +08:00 ![]() IP是pmang黑色沙漠游戏服务器,国内是ping不通的,现在是武汉电信+香港CN2+日本ConoHa,原本ConoHa机房是丢包之王不用看,其他的KDDI/NTT/IIJ机房半夜不丢包稳定下来也70左右。 另外我不知道为什么用OPENVPN会莫名其妙200+ms,以为是干扰,但是XOR PATCH也没有用,就索性改了PPTP+shadowvpn的组合,把MTU改成1396,之后就成功了。 多谢楼主,简直是完美解决我玩日服的难题。 |
![]() | 58 liuchen9586 OP @NickLiulol 我现在都已经淘汰了这种双重NAT的方案了……直接在内网跑个BGP路由,添加删除服务器更方便,而且还能自动愈合自动切换 |
![]() | 59 NickLiulol 2015-07-04 01:25:16 +08:00 via iPhone @liuchen9586 这应该就很接近/就是很多网游加速器的做法了吧, |
![]() | 60 liuchen9586 OP @NickLiulol 这个嘛,就不知道了 因为BGP方便,没双重NAT那么死板,加一台服务器/一个网段只要一条命令就够了 |
61 zixia 2015-07-20 21:28:32 +08:00 @NickLiulol 我最近一直在找 XOR PATCH ,可不可以帮忙推荐一些资料? |
![]() | 62 NickLiulol 2015-07-21 01:08:39 +08:00 @zixia 这个PATCH只支持2.3.6 https://github.com/clayface/openvpn_xorpatch 架设可以参考 http://www.lowendtalk.com/discussion/21539/tutorial-build-your-ultimate-scrambled-vpn 客户端也需要PATCHED过的版本,可以自己编译也可以下别人编译好的。https://scramblevpn.wordpress.com/2013/09/28/build-patched-windows-openvpn-client/ |
63 macdovell 2015-08-25 17:54:13 +08:00 你好,我想请问下,除了 shadowvpn ,中间的桥接过程还有别的替代方案吗? |
![]() | 64 liuchen9586 OP @macdovell openvpn-statickey l2tpv3 都行 |
65 macdovell 2015-08-26 01:13:23 +08:00 @liuchen9586 楼主你好,我照着你的方案配置了一下,但是最后一步的 SNAT 中始终没有包,请问这有可能是哪里的问题呢 |
![]() | 66 liuchen9586 OP @macdovell 没包可能是你 snat 网卡 IP 写错了 |
67 macdovell 2015-08-26 10:39:37 +08:00 @liuchen9586 嗯, ip 没错,包都走到了 MASQUERADE 去了,是之前加的规则,我删除后, SNAT 中有包,但还是没网络,准备下班了去抓包看 |
68 ultimate010 2015-09-11 23:49:17 +08:00 按照你的方法 work 了,请教有没有方法让目的地是国内的 ip ,直接在国内 server 上转发,不跑去香港。 |
![]() | 69 liuchen9586 OP ![]() @ultimate010 chnroute |
70 ultimate010 2015-09-12 12:17:53 +08:00 @liuchen9586 在国内的 vpn 服务器上设置 chnroute ?我的目的是客户端不需要任何设置,国内流量从国内 vpn 服务器走,国外从国外服务器走,有好的实现吗?话说我用 shadowvpn ,因为基于 udp ,阿里云到香港跑满了才 400k ,而 tcp 的直接 http 测试,可以达到 7mb ,中转了一路不如直接连 tcp 快。 |
71 lc19920108 2017-06-08 22:21:47 +08:00 楼主你好,请问可以一台国内服务器同时中转多个国外服务器么,像现在的各种加速器一样 |
![]() | 72 liuchen9586 OP @lc19920108 自己写路由表,根据源地址来走不同策略表或者根据目标地址走不同隧道。 |
![]() | 73 Damaidaner 2018-04-04 15:22:54 +08:00 收藏感谢!! |