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

使用 Linux 作为透明网关的最佳实践?

  •  
  •   wangweitung · 21 天前 · 6863 次点击

    使用 linux 作为透明网关的最佳实践?

    背景:

    1. 最开始用 openwrt (网络编译、自编译都试过)。但是经常崩溃。

    最近状态,根据 v 友推荐,已经抛弃了 openwrt ,主要用了以下两种。

    1. 根据 v 友推荐,尝试了 alpine+shellcrash ,比较好用。
    2. 又看到了 sbshell,又根据教程尝试了 debian+sbshell ,但是这个方式会导致 synology 上部署的外网服务没法用,找了半天也没找到原因。

    求助 v 友:

    适合小白一键设置 linux ( ubuntu/debian/alpine )作为透明网关的是不是就以上两种方式了。有没有其他推荐的方式,最好附教程,谢谢了~

    89 条回复    2025-11-12 18:14:46 +08:00
    KagurazakaNyaa
        1
    KagurazakaNyaa  
       21 天前   ❤️ 2
    透明网关指的是?
    是工作为网关方式的透明代理吗?
    如果是这样,可以试试 dae ,基于 ebpf 的透明代理,可以用 docker 运行,把配置文件用 git 管理并挂载即可
    wangweitung
        2
    wangweitung  
    OP
       21 天前
    @KagurazakaNyaa #1

    是的,是工作为网关方式的透明代理。

    感谢,我试试这个新方式。
    defunct9
        3
    defunct9  
       21 天前   ❤️ 24
    唉,一堆人胡乱叫。什么是透明网关,网关就是网关,透明啥?!还有旁路由。估计网络工程师听见这个就闹心
    Aixiaoa
        4
    Aixiaoa  
       21 天前
    @defunct9 哈哈哈 是这样的,但是都叫的约定成俗了也没办法了。就像那些多音字,走的人多了就真成了路了
    stinkytofux
        5
    stinkytofux  
       21 天前
    不会是我推荐的吧, 我经常安利 ShellCrash.
    stinkytofux
        6
    stinkytofux  
       21 天前
    外网服务用不了是因为端口转发的问题, 你把网关改掉了之后, 就没办法通过路由器端口转发了. 这是一个缺陷.
    Aixiaoa
        7
    Aixiaoa  
       21 天前   ❤️ 2
    如果你的路由支持静态路由和 dns 切换的话 可以试试 debian 装 clash 开启 dns 应答
    在路由上加一条静态理由 192.18.0.0 到 debian 的 ip 把 dns 设置成 dns clash 开启 fakeip
    这样你访问墙外的请求会被解析成 192.18.0.0 的 ip 路由会转发到 debian 上 clash 处理这些流量
    如果你访问墙内的话 就会正常解析 不会被转发到 debian 上 流量直接走路由就出去了
    然后可以加一个检测 clash 挂了就把 dns 切回正常的 dns
    基本能满足你的需求了
    test0x01
        8
    test0x01  
       21 天前 via Android
    不管用哪一个 只要硬件体质不差 驱动完整稳定 配置好之后基本上都可以稳定运行 一两年不管他都没啥
    Aixiaoa
        9
    Aixiaoa  
       21 天前
    我之前折腾的是 ospf 分流
    我的路由是 ros 我直接开了一个 debian 虚机 跑 clash 和 ospf 把国外的 ip 全部宣告给 ros 让 ros 把所有访问国外的请求都转发给 debian 的 ip 走 clash 处理
    但是有莫名其妙的问题一直没太搞明白 我 clash 运行在 docker 的 debian 上配了 iptables 规则 经常有莫名其妙的小问题
    Ipsum
        10
    Ipsum  
       21 天前
    @defunct9 他叫单臂路由我还觉得行。
    wuruxu
        11
    wuruxu  
       21 天前
    我觉得 linux 不如 openwrt 稳定,可以修改下编译配置
    zzerd
        12
    zzerd  
       21 天前
    搞清理原理就行,首先是 dns 分流这个不管你怎么搞反正把要经过代理网关的域名全解析成一个私有 ip ,然后在主路由设置静态路由跑到代理网关上就行,最后把一些 app 的 ip 段也跳到代理网关上(这个主要就是 telegram)
    intoext
        13
    intoext  
       21 天前
    @defunct9 就是。网关就是网关。透明是个什么意思? 看得见还是看不见。 计算机专业里的透明,似乎有完全相反的两重意思。
    m1nm13
        14
    m1nm13  
       21 天前   ❤️ 1
    > 最开始用 openwrt (网络编译、自编译都试过)。但是经常崩溃。
    最有可能就是你的内存小了, 256M 的电子垃圾之类的跑 clash meta 确实会崩. 或者你的硬件其他地方有问题
    laminux29
        15
    laminux29  
       21 天前   ❤️ 5
    从问题来看,这事的本质是,你即不懂网络,也不懂 Linux ,更不懂 OpenWRT 。你这情况,适合你的方案,是去淘宝购买成品的路由器硬件,并且包技术与售后的那种。

    另外,对于软路由来说,OpenWRT 已经是功能 + 可用性 + 稳定性 + 性价比的最优解。
    Ipsum
        16
    Ipsum  
       21 天前
    @Aixiaoa #9 你完全可以试试开 fakeip 然后用 dns 分流。
    yeh
        17
    yeh  
       21 天前   ❤️ 1
    armbian + adguard + mosdns/smartdns + mihomo

    100 块的网心云就行了
    Aixiaoa
        18
    Aixiaoa  
       21 天前
    @Ipsum #16 嗯 我 7 楼说的就是这个方法
    joh
        19
    joh  
       20 天前 via Android
    我用 alpine+sing-box ,设置很简单也不会像 OpenWrt 存在一些小问题。
    290601953
        20
    290601953  
       20 天前
    surge 保平安
    humbass
        21
    humbass  
       20 天前
    所谓的透明网关其实就是 iptables ➕ 一些规则呗
    EchoWhale
        22
    EchoWhale  
       20 天前 via iPhone   ❤️ 5
    @defunct9 他们混淆了网关和透明代理
    cyp0633
        23
    cyp0633  
       20 天前
    我的建议是自己配,不要迷信一键脚本,有太多考虑不到的事情了
    netdisco
        24
    netdisco  
       20 天前 via Android
    建议 appletv + surge ,轻松搞定旁路由和远程回家等需求,爱折腾继续去广告,免 VIP 。
    Tink
        25
    Tink  
    PRO
       20 天前   ❤️ 1
    最无脑的是 debian 跑 dae
    zed1018
        26
    zed1018  
       20 天前
    @defunct9 旁路由真的不能忍。就跟鲁棒性一样。硬凑。
    sumika
        27
    sumika  
       20 天前
    piaorenyong
        28
    piaorenyong  
       20 天前
    这个问题 clash 的时候问题好像就存在了。入站流量和出站流量路径不一致,导致出站流量直接舍弃了。之前的 issue 上提供办法是防火墙端口转发。
    frankilla
        29
    frankilla  
       20 天前 via iPhone
    什么 openwrt 经常崩溃,推荐 immortalwrt 用的这些年就没见过崩溃是啥样。🤣
    arfaWong
        30
    arfaWong  
       20 天前
    mihomo tproxy
    Aixiaoa
        31
    Aixiaoa  
       20 天前   ❤️ 3
    突然想起来一个项目 或许你对这个可能感兴趣
    Landscape 是一个基于 Web UI 的工具,可以轻松将您喜爱的 Linux 发行版配置为路由器
    https://github.com/ThisSeanZhang/landscape

    taikobo
        32
    taikobo  
       20 天前
    楼上有些说的很对
    不懂还要搞事, 没遇到问题不是工具好是你运气好
    要么好好学习要么花钱找人帮你解决问题
    KinCasey
        33
    KinCasey  
       20 天前 via iPhone
    Debian 基本上能实现, 但是要自己写相关的配置和规则,调试比较繁琐, 个人体验下来还是很不错的
    cense
        34
    cense  
       20 天前
    刚从 openwrt openclash 换成 linux mihomo
    后者更简单
    flynaj
        35
    flynaj  
       20 天前 via Android   ❤️ 1
    openwrt,不需要自己编译,只要安装软件包就行,你自己编译反而弄巧成拙。也可以考考虑国内分支 immortawrt.
    WizardLeo
        36
    WizardLeo  
       20 天前
    一般而言,一个被全球无数用户使用的系统在自己环境下经常崩溃,应该优先找崩溃的原因而不是换掉系统。
    godall
        37
    godall  
       20 天前 via Android
    楼主我也经常遇到您的问题,不一定是路由器崩溃,反正就是不能爬墙了,只能重启爬墙软件。后来我在 pve 下安装了一个 openwrt 的容器,单臂路由模式,安装爬墙软件设为透明网关。这样你的客户端网关地址设置容器地址就可以用了。后来我又优化了一下,在主路由上基于 ipset(新版是 nft)加 dnsmasq 实现 ip 策略路由:根据域名访问正常域名直接出去,爬墙域名先路由到 lxc 容器代理后出去,这样对客户端完全透明了,而且容器很稳定
    HrOice
        38
    HrOice  
       20 天前
    我跑的 docker 的 openwrt ,挺稳的
    0x42
        39
    0x42  
       20 天前 via Android
    单臂路由: 在没有三层交换机的时候,在一个接口上配置逻辑接口实现不同 vlan 间通信的技术吧..
    thereone
        40
    thereone  
       20 天前
    没见过会动不动就崩溃的不知道你跑了什么服务,单纯就跑一个 clash 是不可能动不动就崩溃的,一个存活到现在还被部分企业采用了的系统是不可能动不动就崩溃。
    多想想是不是自己乱搞搞崩溃了,openwrt 在 linux 系里面算是非常简单了。
    walkbox
        41
    walkbox  
       20 天前
    @flynaj 请教一下 如果安装官方的 op 系统,安装软件包是直接在后台搜索,之前也操作过这种的,那时候很多包有很多依赖,装完这个还得装那个个,还不会自动,不能用的时候,得自己分析,缺少什么,结果就是用不起来,不知现在是什么样一个情况,适合小白操作了么
    wnpllrzodiac
        42
    wnpllrzodiac  
       20 天前 via Android
    gayhub 有个项目,适合你。用着非常舒适,透明代理
    NikoXu
        43
    NikoXu  
       20 天前
    直接用 iptables 转发到 redsocks , redsocks 套个 socks5
    scung
        44
    scung  
       20 天前
    @defunct9 确实,第一次看到旁路由这个词被硬控了好久
    ko20
        45
    ko20  
       20 天前
    immortalwrt + passwall 稳定的很,建议原版 openwrt 或者 immortalwrt 。https://firmware-selector.immortalwrt.org/
    skywalker1014
        46
    skywalker1014  
       20 天前
    @KagurazakaNyaa 有 docker 库 github 吗
    dog82
        48
    dog82  
       20 天前
    谁能用人话解释一下 透明网关
    heiher
        49
    heiher  
       20 天前
    少打两个字吧,透明代理网关,部署了透明代理的网关
    NASK
        50
    NASK  
       20 天前
    可以试试 Debian+xtls 代理,透明代理可以参考文档 https://xtls.github.io/document/level-2/transparent_proxy/transparent_proxy.html
    非常好用.我以前也喜欢用 openwrt 软路由,但是处理不好依赖,用起来会有一些奇奇怪怪的问题,现在都改用成 debian 系统了.xtls 的配置写好,放到 macOS 上也能用,macOS 上我用的小火箭->sock5->xtls 代理.
    另外,手搓配置文件的话不要尝试 sing-box 内核,配置文件字段经常变动,很烦人.
    0x5c0f
        51
    0x5c0f  
       20 天前
    说人话就是可以在终端使用的订阅器么, 这个还得看 mihomo 虚空终端
    wengych
        52
    wengych  
       20 天前
    openwrt+nikki
    LucasChang
        53
    LucasChang  
       20 天前
    @ko20 #45 正在使用 R4s 跑 immortalwrt+passwall ,稳定性没遇到问题,就是 passwall 加载太慢了,太太太慢了
    Andrue
        54
    Andrue  
       20 天前
    OpenWrt 现在的状态已经非常成熟,不稳定往往在于用户的错误操作,以及使用了第三方打包固件
    建议缺乏相关经验还是先从如何选择一个合适的盒子并配置一个合适的 OpenWrt 系统开始
    尽量使用自行打包编译的固件,不要使用包含太多无关功能的版本
    比如我只使用三个附加组件,除了众所周知的插件以外还有一个虚拟组网服务,一个晶晨宝盒
    rick13
        55
    rick13  
       20 天前
    dae 可以试试
    ko20
        56
    ko20  
       20 天前
    @LucasChang #53 我有两个 immortalwrt ,一个是今年刚买的 N150 ,快的一批。比我那个 intel n3150 快得多,当然 n3150 的速度也能接受。有可能是你这个 arm 架构 r4s 的芯片慢
    R29kTA
        57
    R29kTA  
       20 天前
    我的方案是光猫桥接+nixos networkd 做网桥 pppd 拨号上网+dae 。配置好一次,想装什么都可以
    R29kTA
        58
    R29kTA  
       20 天前
    @R29kTA 硬件什么都不需要虚拟化
    565656
        59
    565656  
       20 天前   ❤️ 1
    @walkbox #41 不要装官方的, 装 immortawrt ,什么源都给你设置好了不用折腾,
    565656
        60
    565656  
       20 天前
    直接装 immortawrt 就行了 我放在 vmware 里都稳得不行
    yyysuo
        61
    yyysuo  
       20 天前
    还是推荐我的大全套吧,就是楼上有些朋友提到的 fakeip 分流法。
    https://github.com/IrineSistiana/mosdns/discussions/837
    MeiJiayun
        62
    MeiJiayun  
       20 天前 via iPhone
    @565656 vmware 安装,然后宿主机使用 clash 等软件指定代理走虚拟机吗
    gearfox
        63
    gearfox  
       20 天前
    一直用,没碰见过 immortawrt 崩溃
    huangmingyou
        64
    huangmingyou  
       20 天前
    @defunct9 作为一个网络工程师,看到透明网关我的第一反应是我 tm 的落伍了?
    yanxu4780
        65
    yanxu4780  
       20 天前
    感觉 openwrt 挺好用呀。我没遇到崩溃情况。
    MutuMutu
        66
    MutuMutu  
       20 天前
    @defunct9 旁路网关+透明代理,lz 能把 openwrt 搞到经常崩溃,弄混了也很正常吧
    walkbox
        67
    walkbox  
       20 天前
    @565656 谢谢
    thereone
        68
    thereone  
       20 天前
    @defunct9 #3 旁路由没啥网络中一堆旁挂使用的,防火墙旁挂还有 IDS/IPS 旁挂。VPN 路由器旁挂不作为出口仅用来打通分支设备通过静态或者动态路由打通,这个 VPN 路由器就可以说是旁路由了。
    透明网关倒是没有听过,防火墙透明模式倒是有但是是二层透传的和普遍说的透明网关没有关系。
    julyclyde
        69
    julyclyde  
       20 天前
    @defunct9 iptables -j TPROXY
    Miwangyu
        70
    Miwangyu  
       20 天前
    其实最简单的就是 mac mini,直接 surge 接管,直接管控路由就行了
    SenLief
        71
    SenLief  
       19 天前 via iPhone
    @yyysuo 这种方式最大的问题就是对于 ip 链接的无能为力,比如 tg 。
    datocp
        72
    datocp  
       19 天前 via Android
    崩溃正常。。。
    有些软件特别会吃 cpu+内存。

    像我用的 youku y1s 128MB 内存,使用 stunnel+softether 最后一次看到运行了 655 天。应该是被家里人关闸断电了。

    大家搞的这些软件太复杂了。
    hronro
        73
    hronro  
       19 天前 via iPhone
    最近 RouterOS 出了个 sockify 功能,可以在防火墙层面把 TCP 连接接入 SOCKS5 代理,我试了下比较好用。
    565656
        74
    565656  
       19 天前
    @MeiJiayun #62 immortawrt 跑 openclash ,这个虚拟机就是个网关了,把设备的网关写成虚拟机的 ip 就走这个了,不写默认是路由器就是正常的路径。
    WorkTimer
        75
    WorkTimer  
       19 天前
    debian + iptables
    flynaj
        76
    flynaj  
       19 天前 via Android   ❤️ 1
    @walkbox 依赖会自动安装,建议使用国内版本的 immortawrt ,就是在 op 原版基础上添加了一些软件包,网络唤醒安装 luci-i18n-wol-zh-cn 而不是只安装 wol,luci-i18n-smartdns-zh-cn luci-i18n-samba4-zh-cn,luci-i18n-lxc-zh-cn 你先搜 zh-cn 看看有没有你要的。
    liyafe1997
        77
    liyafe1997  
       19 天前
    @m1nm13 开 SWAP 能跑吧?
    walkbox
        78
    walkbox  
       19 天前
    @flynaj 好的 谢谢
    yyysuo
        79
    yyysuo  
       19 天前
    @SenLief tg 、奈飞 ip 、国外 dns ,这种基本上不会变的,写到 nft 里面就行了。
    m1nm13
        80
    m1nm13  
       19 天前
    @liyafe1997 也不能, 你的内存 256, 你的 FLASH 撑死了就 128,甚至可能是 32M 的, 这有什么 SWAP 的空间...

    你要是台 X86,那肯定不会只有 256M 内存,又不是 20 年前的古董..
    istek999
        81
    istek999  
       19 天前
    我在小主机上跑了 routeros 虚拟机,debian 虚拟机,然后跑的 mihomo ,搞了一个配置文件,跑一个 tproxy 就 OK 。然后需要翻墙的设备,我从 ros 设置一下 optionset 就 OK ,很方便。
    SenLief
        82
    SenLief  
       19 天前 via iPhone
    @yyysuo 这种方式不是很好用,主路由还要有分流的功能才行,不少主路由都是硬路由来着。或者直接换 routeros 才行。
    yyysuo
        83
    yyysuo  
       19 天前
    @SenLief 只要主路由支持静态路由或者能进行 nft 操作就可以的,体验极佳。
    Ipsum
        84
    Ipsum  
       19 天前 via Android
    @hronro 多包了一层,感觉只有特定条件下才有用。
    cz5424
        85
    cz5424  
       19 天前
    这种纯软件转发的方式很费 cpu 性能,包括说用 iptables ,用垃圾硬件( cpu 主频都很低,跟不上)一般稳定性有很多问题。大部分路由器的转发都是硬件 nat 。如果要实现分流加代理,目前没折腾出一个好的方案。猜测可能从 dns 入手,需要分流的给透明网关地址,如果不需要分流走默认网关。
    Allegorie
        86
    Allegorie  
       18 天前
    @Aixiaoa 拿来稳定运行两天了,还没崩过,感觉用作主路由很好用,分流很强大
    czhh
        87
    czhh  
       18 天前
    debian 加 mihomo 内核作为透明网关 高效稳定使用 3 年+了 没出过啥问题
    wangweitung
        88
    wangweitung  
    OP
       18 天前 via Android
    @czhh 具体怎么部署的……
    Morgan2
        89
    Morgan2  
       18 天前
    openwrt 不会用
    debian cli 需要什么装什么,有问题看日志,查文档
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2727 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:18 · PVG 20:18 · LAX 04:18 · JFK 07:18
    ♥ Do have faith in what you're doing.