分享一个使用 iptables 中转 Xray 的教程方法 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vasaeru
V2EX    宽带症候群

分享一个使用 iptables 中转 Xray 的教程方法

  •  
  •   vasaeru 2024-08-12 07:04:55 +08:00 3000 次点击
    这是一个创建于 454 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本教程适用于 Ubuntu20 系统,其他系统也可以尝试。

    因为 Xray 只使用 TCP 进行代理(虽然它支持 fullcone 的 UPD ),所以我们只需要转发 TCP 流量即可。
    代理服务器记得打开所有 TCP 端口,否则 UDP 可能会失效。

    1.开启转发功能
    echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf
    sysctl -p

    2.打开 iptables NAT
    sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    3.开放指定端口
    iptables -A INPUT -p tcp --dport 中转服务器端口 -j ACCEPT
    iptables -A OUTPUT -p tcp --sport 中转服务器端口 -j ACCEPT

    iptables -A FORWARD -o eth0 -d 目标服务器 IP -p tcp --dport 目标服务器端口 -j ACCEPT
    iptables -A FORWARD -i eth0 -s 目标服务器 IP -p tcp --sport 目标服务器端口 -j ACCEPT

    4.获取中转服务器本地 IP (中转服务器 eth0 的局域网 IP ,不是公网 IP )
    ifconfig

    5.转发到指定服务器
    iptables -t nat -A PREROUTING -d 中转服务器本地 IP -p tcp --dport 中转服务器端口 -j DNAT --to-destination 目标服务器 IP:目标服务器端口
    iptables -t nat -A POSTROUTING -s 目标服务器 IP -p tcp --dport 目标服务器端口 -j SNAT --to-source 中转服务器本地 IP:中转服务器端口

    举个例子
    我想通过端口号 10000 中转服务器 IP 为 113.108.81.189 ,端口号为 443 (通常默认)的代理服务器
    通过 ifconfig 查询到 eth0 本地 IP 为 172.13.0.26
    iptables -A INPUT -p tcp --dport 10000 -j ACCEPT
    iptables -A OUTPUT -p tcp --sport 10000 -j ACCEPT
    iptables -A FORWARD -o eth0 -d 113.108.81.189 -p tcp --dport 443 -j ACCEPT
    iptables -A FORWARD -i eth0 -s 113.108.81.189 -p tcp --sport 443 -j ACCEPT
    iptables -t nat -A PREROUTING -d 172.13.0.26 -p tcp --dport 10000 -j DNAT --to-destination 113.108.81.189:443
    iptables -t nat -A POSTROUTING -s 113.108.81.189 -p tcp --dport 443 -j SNAT --to-source 172.13.0.26:10000

    保存下 iptables 的规则
    iptables-save

    可以通过以下代码查看规则是否添加成功
    iptables -L -n --line-number

    最后的最后:记得在安全组打开需要的端口,如果需要开启 fullcone 转发可以参考这篇教程: https://www.186086.xyz/Linux/Ubuntu%2020%20%E5%90%AF%E7%94%A8%20iptables%20fullconenat
    第 1 条附言    2024-08-12 14:32:57 +08:00
    补充下使用方法,把 xray 节点中最上面的地址和端口,改为中转服务器的公网 ip 和刚刚配置的端口就可以了,其他不用改变
    16 条回复    2024-08-15 22:00:46 +08:00
    selca
        1
    selca  
       2024-08-12 08:57:03 +08:00
    这不是官方文档吗?
    povsister
        2
    povsister  
       2024-08-12 09:12:56 +08:00 via iPhone
    这不是端口转发配置吗,没看出和 xray 有啥关系
    b1u2g3
        3
    b1u2g3  
       2024-08-12 10:30:59 +08:00
    学艺不精,估计没看过文档
    herozzm
        4
    herozzm  
       2024-08-12 10:38:11 +08:00
    参看官方文档:透明代理
    Altairvelvet
        5
    Altairvelvet  
       2024-08-12 11:21:59 +08:00
    你都用 iptables 转发了,配置个 CSF 不是更方便?
    Redhut
    &nbs;   6
    Redhut  
       2024-08-12 12:16:39 +08:00
    xray 任意门不是挺好用的嘛
    beddo
        7
    beddo  
       2024-08-12 12:23:23 +08:00
    楼主方便留个联系方式吗?有问题探讨哈。
    vasaeru
        8
    vasaeru  
    OP
       2024-08-12 13:52:21 +08:00 via Android
    就是一个单纯 nat 中转的教程 因为搜半天没有详细的教程就发出来了 至于官方文档我确实没有看过
    vasaeru
        9
    vasaeru  
    OP
       2024-08-12 14:54:27 +08:00 via Android
    @selca 和官方文档不一样吧,官方文档里还需要中转服务器安装 xray ,单纯使用 iptables 三分钟就配置好了也不需要安装额外的东西
    peasant
        10
    peasant  
       2024-08-12 15:33:47 +08:00
    @vasaeru #9 很明显你看的和 4 楼说的不是同一个东西
    slowman
        11
    slowman  
       2024-08-12 15:57:21 +08:00
    人还是比 AI 强
    试了几个 AI, 要么忘记 iptables-save, 要么多余地用 systemd 自己实现 iptables restore, 要么开机自动编辑 sysctl.conf 加入转发, 而且普遍不知道用 PREROUTING+POSTROUTING
    但是 AI 排版普遍比 op 要强, 楼主没有使用 markdown
    vasaeru
        12
    vasaeru  
    OP
       2024-08-12 17:07:14 +08:00 via Android
    @peasant 他说的是哪个
    xqzr
        13
    xqzr  
       2024-08-12 17:09:12 +08:00
    有 SNAT 不需要 MASQUERADE 了吧
    Ipsum
        14
    Ipsum  
       2024-08-12 17:14:07 +08:00 via Android
    这不是基操???
    sadan9
        15
    sadan9  
       2024-08-15 09:24:15 +08:00
    iptables-save 不是只导出规则么?至少应该覆盖默认规则配置文件吧。还是我记错了。
    vasaeru
        16
    vasaeru  
    OP
       2024-08-15 22:00:46 +08:00
    @sadan9 iptables-save 是让系统重启以后读取保存的规则
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     910 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 18:42 PVG 02:42 LAX 10:42 JFK 13:42
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86