V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
qceytzn
V2EX  ›  Linux

烧脑的问题: firewalld 和 kcptun 的问题

  •  
  •   qceytzn · 2016-12-27 03:24:21 +08:00 · 4969 次点击
    这是一个创建于 2889 天前的主题,其中的信息可能已经有所发展或是发生改变。

    一台 VPS , CentOS 7 ,启用了 firewalld , SS 安装好之后

    17 条回复    2016-12-28 12:32:57 +08:00
    qceytzn
        1
    qceytzn  
    OP
       2016-12-27 03:32:05 +08:00
    一台 VPS , CentOS 7 ,启用了 firewalld , SS 安装好之后

    firewall-cmd --permanent --zone=public --add-port=xxxx/tcp
    firewall-cmd --permanent --zone=public --add-port=xxxx/udp

    SS 就可以正常使用了,然后我再配置 kcptun ,跟没启用防火墙的时候一样的配置,然后

    firewall-cmd --permanent --zone=public --add-port=xxx/tcp
    firewall-cmd --permanent --zone=public --add-port=xxx/udp (这是把 kcptun 的监听端口都打开了)

    然后
    firewall-cmd --permanent --zone=public --add-forward-port=port=xxx:proto=tcp:toport=xxxx
    firewall-cmd --permanent --zone=public --add-forward-port=port=xxx:proto=udp:toport=xxxx

    firewall-cmd --permanent --zone=public --add-forward-port=port=xxxx:proto=tcp:toport=xxx
    firewall-cmd --permanent --zone=public --add-forward-port=port=xxxx:proto=udp:toport=xxx
    (这是在 kcptun 的监听端口和 SS 的端口之后互相转发, tcp 和 udp 都可以)

    但是这样设置之后连接 kcptun 就是不行,如果把 firewalld 关了就 OK 了,打开刷刷的...请问我错在哪里??
    qceytzn
        2
    qceytzn  
    OP
       2016-12-27 04:04:00 +08:00
    上面的一句话:“这是在 kcptun 的监听端口和 SS 的端口之后互相转发”,“之后”应为“之间”
    kohos
        3
    kohos  
       2016-12-27 08:18:53 +08:00
    似乎使用端口转发前要启用 IP 伪装:
    firewall-cmd --zone=public --add-masquerade
    sunnyyj
        4
    sunnyyj  
       2016-12-27 08:35:04 +08:00 via iPhone   ❤️ 1
    把转发关了试试,感觉不应该把 kcptun 的请求转发到 SS , kcptun 本身就是将 xxxx 转到 xxx
    eastlhu
        5
    eastlhu  
       2016-12-27 08:35:49 +08:00 via iPhone
    回去看看我的设置,好像不一样
    Bardon
        6
    Bardon  
       2016-12-27 08:37:16 +08:00
    实际上,你只需要开 kcptun 的 udp 监听端口就可以了啊

    楼主开那么多端口的需求是什么?
    Bardon
        7
    Bardon  
       2016-12-27 08:39:11 +08:00
    kcptun:

    "listen": ":port",
    "target": "127.0.0.1:port1",

    ss:

    "server":"127.0.0.1",
    "server_port":port1,

    所以,你只需要开 udp port 端口就可以了
    P0P
        8
    P0P  
       2016-12-27 08:59:35 +08:00
    你需要先确定你的 default-zone 是 public
    q397064399
        9
    q397064399  
       2016-12-27 10:10:33 +08:00
    vps 裸奔就好了,搞这个有毛线用
    fzinfz
        10
    fzinfz  
       2016-12-27 13:23:56 +08:00
    masquerade 是 NAT 用的,没关系
    iptables -L INPUT 看下
    tcpdump -i any port KCP_PORT 抓包看下
    guoluwei
        11
    guoluwei  
       2016-12-27 15:39:52 +08:00   ❤️ 1
    ss 就开 tcp 就够了 kcptun 就开 udp 就够了 不需要你那一大堆
    firewall-cmd --zone=public --add-port=8399/tcp --permanent
    firewall-cmd --zone=public --add-port=10000/udp --permanent
    我都是这样的

    然后前几天用了 google bbr 已经不需要 kcptun 了
    qceytzn
        12
    qceytzn  
    OP
       2016-12-27 18:49:36 +08:00
    @guoluwei 如果你这样就可以用的话,那我的设置应该也可以用起来了啊,因为我的设置里面包含了你这个的意思了
    qceytzn
        13
    qceytzn  
    OP
       2016-12-28 03:00:04 +08:00
    @guoluwei 我把转发的几条规则都删了, OK 了~~~
    bbr 怎么用?我实验下来的结果是 kcptun 比 finalspeed 好很多, bbr 我没看到简单清爽的使用教程,好像都要自己编译源码?还是内核源码?
    ZRS
        14
    ZRS  
       2016-12-28 03:14:09 +08:00
    @qceytzn bbr 直接升级下内核就行了, 10 分钟搞好
    qceytzn
        15
    qceytzn  
    OP
       2016-12-28 08:33:13 +08:00
    @ZRS 升级命令是啥?给个链接呗
    guoluwei
        16
    guoluwei  
       2016-12-28 09:21:21 +08:00
    yuchenr
        17
    yuchenr  
       2016-12-28 12:32:57 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1101 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 18:23 · PVG 02:23 · LAX 10:23 · JFK 13:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.