其实目的是为了转发 anyConnet , tcp 转发有很多办法, haproxy 或者 socat 都行。
但是 udp 就是不行。现象就是, anyConnet 连上了,但是访问 twitter 或者 m.facebook.com 就会停在那里。
也用微林的服务,效果很好,想实现和微林端口转发一样的功能,现在就卡在 udp 转发上了。
尝试了 iptables 转发,似乎不行,发现阿里云的 iptables 没什么作用,开启以后,只设置了 22 ,和 80 ,结果其他端口依然可以有出入的流量。
不知道大家有没有在阿里云上成功的方法。
|  |      147jm9ozp      2015-10-02 10:33:22 +08:00 udp …… 转发 udp 也可以用 socat ,搜一下就有例子 $ sudo socat UDP4-RECVFROM:161,fork UDP4-SENDTO:localhost:10161 | 
|  |      2ferock OP PRO 发帖之前已经试过了,可以转发 dns 53 端口,但是 anyconnet 还是不行。很神奇 | 
|  |      4yexm0      2015-10-02 11:57:58 +08:00 via Android anyconnect 可以 block udp 连接来让它单纯走 tcp 的吧。。。。 | 
|      5chinawrj      2015-10-02 12:05:54 +08:00 via Android 搞个 vpn 就行了啊。。。 | 
|  |      6gzlock      2015-10-02 13:23:10 +08:00 via Android docker hub 上有一个 Tommylau 的用户制作了一个 ocserv 镜像,看启动命令可以支持 UDP 转发,楼主可以去翻翻 Dockerfile 但是我用来玩 steam 的 robocraft ,一开局就掉线,不知道是否 UDP 有问题 | 
|  |      7ferock OP PRO @gzlock 我搜一下, anyconnet 好像不只是 tcp 的,有 dns 解析走 udp 的,否则 dns 还是本地。会被污染 | 
|  |      8gzlock      2015-10-02 13:35:22 +08:00 via Android @ferock 其实 Tommylau 也在 V2EX ,但似乎很久不上了,@他也没回应 然后我把 docker 架在香港服务器上,理论 UDP 没文体的话,应该是可以畅玩游戏的。 但事实就是 robo craft 一开局,游戏里就会显示已经断线(一开局就黑屏,过一会返回大厅) 玩游戏的环境: Mac ,用 anyconnect 的 Mac 客户端 | 
|  |      9ferock OP PRO 没找到,这是什么东西 | 
|  |      10aalska      2015-10-02 13:42:53 +08:00 注释 ocserv 配置文件夹里的 UDP-PORT... 全走 tcp | 
|  |      11ferock OP PRO 现在就超级好奇,微林是怎么实现 tcp + udp 的转发的,用下来效果真的很好, socat + 阿里云就是不行 | 
|      12ylqhust      2015-10-02 13:50:18 +08:00 找文档看看 | 
|  |      14czb      2015-10-02 14:00:26 +08:00 via Android 很多本地运营商对 UDP 发包限制很严格的,先看看是不是 ISP 的问题 | 
|      15shutongxinq      2015-10-02 14:02:54 +08:00 tcp over tcp 真的好吗? vpn 很少用 tcp 是有原因的,效率低得多啊。 | 
|  |      19yexm0      2015-10-02 14:30:25 +08:00 via Android @shutongxinq 你应该要考虑运营商的影响。 | 
|      20dreamtrail      2015-10-02 14:54:43 +08:00 那就转发 openvpn 算了 | 
|  |      21ferock OP PRO 试过了, ios 8.4 可以, ios 9 不可以, socat ! 但是微林可以。 这是为什么啊! | 
|      22shutongxinq      2015-10-02 15:31:53 +08:00 @yexm0 感谢告知。 | 
|      23dreamtrail      2015-10-02 16:38:43 +08:00  1 阿里云用 iptables 做 udp 转发,我测试过是可以用的 | 
|      24facat      2015-10-02 16:56:57 +08:00 via Android 为什么不自己写一个转发的程序?如果有编程基础的话不难吧? | 
|  |      25ferock OP PRO @dreamtrail 求具体的配置,我配置完以后测试防火墙没有拦截其他的端口 | 
|  |      26XiaoxiaoPu      2015-10-02 17:48:44 +08:00 via Android @ferock ip forward 打开了吗? sudo iptables-save 看一下现有的防火墙 | 
|      27bazingaterry      2015-10-02 17:55:03 +08:00 iptables 就可以完成 udp 转发 | 
|  |      28lins05      2015-10-02 18:35:53 +08:00 ``` server_ip=YOUR-SERVR-IP iptables -t nat -A PREROUTING -p udp --dport 443 -j DNAT --to-destination $server_ip:443 iptables -t nat -A POSTROUTING -p udp -d $server_ip --dport 443 -j MASQUERADE service iptables-persistent save ``` | 
|      29jiongjionger      2015-10-02 19:45:20 +08:00 UDP 转发需要看 ISP 和机房的脸色,出于防御 DDOS 和安全以及和谐的考虑,多多少少都有限制。 | 
|  |      30alect      2015-10-04 00:01:12 +08:00 假设阿里云为 8.8.8.8 境外那台为 4.4.4.4 假设阿里云 TCP 端口为 4443 , UDP 端口为 4000 ,境外服务器 tcp443 , udp8000 我按照这个可以正常转发 Anyconnect 也是用的阿里云 iptables -t nat -A PREROUTING -p tcp --dport 4443 -j DNAT --to-destination 4.4.4.4:443 iptables -t nat -A PREROUTING -p udp --dport 4000 -j DNAT --to-destination 4.4.4.4:8000 iptables -t nat -A POSTROUTING -p tcp -d 4.4.4.4--dport 443 -j SNAT --to-source 8.8.8.8 iptables -t nat -A POSTROUTING -p udp -d 4.4.4.4--dport 8000 -j SNAT --to-source 8.8.8.8 | 
|  |      34dingzi      2015-12-24 19:30:02 +08:00 @alect 我就是按照你的设置了 但是没有成功 iptables -t nat -A PREROUTING -p tcp --dport 1000 -j DNAT --to-destination 153.92.41.**:1000 iptables -t nat -A PREROUTING -p udp --dport 1000 -j DNAT --to-destination 153.92.41.**:1000 iptables -t nat -A POSTROUTING -p tcp -d 153.92.41.** --dport 1000 -j SNAT --to-source 47.89.24.** iptables -t nat -A POSTROUTING -p udp -d 153.92.41.** --dport 1000 -j SNAT --to-source | 
|      35yoshikiliu      2016-04-01 11:35:53 +08:00 我也遇到同样的问题,请问现在你是怎么解决的? | 
|  |      36ferock OP PRO @yoshikiliu 是阿里云么?如果是, iptables 规则正确就可以做到 | 
|      37yoshikiliu      2016-04-01 19:05:54 +08:00 @ferock 不是 其他的 输入了不行 |