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