Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
ferock
0.43D
V2EX  ›  Linux

折腾了好几天,阿里云服务器转发 upd,很难实现

  •  
  •   ferock ·
    ferocknew · Oct 2, 2015 · 22344 views
    This topic created in 4062 days ago, the information mentioned may be changed or developed.

    其实目的是为了转发 anyConnet , tcp 转发有很多办法, haproxy 或者 socat 都行。
    但是 udp 就是不行。现象就是, anyConnet 连上了,但是访问 twitter 或者 m.facebook.com 就会停在那里。

    也用微林的服务,效果很好,想实现和微林端口转发一样的功能,现在就卡在 udp 转发上了。
    尝试了 iptables 转发,似乎不行,发现阿里云的 iptables 没什么作用,开启以后,只设置了 22 ,和 80 ,结果其他端口依然可以有出入的流量。

    不知道大家有没有在阿里云上成功的方法。

    38 replies  •  2016-12-03 00:54:33 +08:00
    47jm9ozp
    47jm9ozp
    Oct 2, 2015
    1
    udp ……

    转发 udp 也可以用 socat ,搜一下就有例子

    $ sudo socat UDP4-RECVFROM:161,fork UDP4-SENDTO:localhost:10161
    ferock
    ferock
    OP
    Oct 2, 2015 via Android
    2
    发帖之前已经试过了,可以转发 dns 53 端口,但是 anyconnet 还是不行。很神奇
    66CCFF
    66CCFF
    Oct 2, 2015
    3
    @ferock anyconnect ……不是 TCP 么= =
    yexm0
    yexm0
    Oct 2, 2015 via Android
    4
    anyconnect 可以 block udp 连接来让它单纯走 tcp 的吧。。。。
    chinawrj
    chinawrj
    Oct 2, 2015 via Android
    5
    搞个 vpn 就行了啊。。。
    gzlock
    gzlock
    Oct 2, 2015 via Android
    6
    docker hub 上有一个 Tommylau 的用户制作了一个 ocserv 镜像,看启动命令可以支持 UDP 转发,楼主可以去翻翻 Dockerfile
    但是我用来玩 steam 的 robocraft ,一开局就掉线,不知道是否 UDP 有问题
    ferock
    ferock
    OP
    Oct 2, 2015
    7
    @gzlock 我搜一下, anyconnet 好像不只是 tcp 的,有 dns 解析走 udp 的,否则 dns 还是本地。会被污染
    gzlock
    gzlock
    Oct 2, 2015 via Android
    8
    @ferock 其实 Tommylau 也在 V2EX ,但似乎很久不上了,@他也没回应
    然后我把 docker 架在香港服务器上,理论 UDP 没文体的话,应该是可以畅玩游戏的。
    但事实就是 robo craft 一开局,游戏里就会显示已经断线(一开局就黑屏,过一会返回大厅)
    玩游戏的环境: Mac ,用 anyconnect 的 Mac 客户端
    ferock
    ferock
    OP
    Oct 2, 2015
    9
    没找到,这是什么东西
    aalska
    aalska
    Oct 2, 2015
    10
    注释 ocserv 配置文件夹里的 UDP-PORT...

    全走 tcp
    ferock
    ferock
    OP
    Oct 2, 2015
    11
    现在就超级好奇,微林是怎么实现 tcp + udp 的转发的,用下来效果真的很好, socat + 阿里云就是不行
    ylqhust
    ylqhust
    Oct 2, 2015
    12
    找文档看看
    ferock
    ferock
    OP
    Oct 2, 2015
    13
    @aalska 这个我试试
    czb
    czb
    Oct 2, 2015 via Android
    14
    很多本地运营商对 UDP 发包限制很严格的,先看看是不是 ISP 的问题
    shutongxinq
    shutongxinq
    Oct 2, 2015
    15
    tcp over tcp 真的好吗? vpn 很少用 tcp 是有原因的,效率低得多啊。
    ferock
    ferock
    OP
    Oct 2, 2015
    16
    @aalska 测试可行,很赞!
    ferock
    ferock
    OP
    Oct 2, 2015
    17
    @czb 我认为可能你说的是对的
    aalska
    aalska
    Oct 2, 2015
    18
    @ferock 运营商对很多 UDP 连接有控制的
    yexm0
    yexm0
    Oct 2, 2015 via Android
    19
    @shutongxinq 你应该要考虑运营商的影响。
    dreamtrail
    dreamtrail
    Oct 2, 2015
    20
    那就转发 openvpn 算了
    ferock
    ferock
    OP
    Oct 2, 2015 via iPhone
    21
    试过了, ios 8.4 可以, ios 9 不可以, socat !

    但是微林可以。
    这是为什么啊!
    shutongxinq
    shutongxinq
    Oct 2, 2015
    22
    @yexm0 感谢告知。
    dreamtrail
    dreamtrail
    Oct 2, 2015❤️1
    23
    阿里云用 iptables 做 udp 转发,我测试过是可以用的
    facat
    facat
    Oct 2, 2015 via Android
    24
    为什么不自己写一个转发的程序?如果有编程基础的话不难吧?
    ferock
    ferock
    OP
    Oct 2, 2015 via Android
    25
    @dreamtrail 求具体的配置,我配置完以后测试防火墙没有拦截其他的端口
    XiaoxiaoPu
    XiaoxiaoPu
    Oct 2, 2015 via Android
    26
    @ferock ip forward 打开了吗? sudo iptables-save 看一下现有的防火墙
    bazingaterry
    bazingaterry
    Oct 2, 2015
    27
    iptables 就可以完成 udp 转发
    lins05
    lins05
    Oct 2, 2015
    28
    ```
    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
    ```
    jiongjionger
    jiongjionger
    Oct 2, 2015
    29
    UDP 转发需要看 ISP 和机房的脸色,出于防御 DDOS 和安全以及和谐的考虑,多多少少都有限制。
    alect
    alect
    Oct 4, 2015
    30
    假设阿里云为 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
    ferock
    ferock
    OP
    Oct 4, 2015
    31
    @alect 根据你这个我再试试
    ferock
    ferock
    OP
    Oct 4, 2015
    32
    @alect tcp 和 udp 能设置成一个端口么?比如 443
    alect
    alect
    Oct 4, 2015
    33
    @ferock 可以啊, udp 和 tcp 是独立的,可以同时设置为 443
    dingzi
    dingzi
    Dec 24, 2015
    34
    @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
    yoshikiliu
    yoshikiliu
    Apr 1, 2016
    35
    我也遇到同样的问题,请问现在你是怎么解决的?
    ferock
    ferock
    OP
    Apr 1, 2016
    36
    @yoshikiliu 是阿里云么?如果是, iptables 规则正确就可以做到
    yoshikiliu
    yoshikiliu
    Apr 1, 2016
    37
    @ferock 不是 其他的 输入了不行
    FurN1
    FurN1
    Dec 3, 2016 via iPad
    38
    @gzlock 我也在玩 robocraft 哈哈哈
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1857 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 15:19 · PVG 23:19 · LAX 07:19 · JFK 10:19
    ♥ Do have faith in what you're doing.