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

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

  •  
  •   wangweitung · 1 天前 · 4461 次点击

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

    背景:

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

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

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

    求助 v 友:

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

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

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

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

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

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

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

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

    大家搞的这些软件太复杂了。
    hronro
        73
    hronro  
       54 分钟前 via iPhone
    最近 RouterOS 出了个 sockify 功能,可以在防火墙层面把 TCP 连接接入 SOCKS5 代理,我试了下比较好用。
    565656
        74
    565656  
       10 分钟前
    @MeiJiayun #62 immortawrt 跑 openclash ,这个虚拟机就是个网关了,把设备的网关写成虚拟机的 ip 就走这个了,不写默认是路由器就是正常的路径。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2918 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 14:08 · PVG 22:08 · LAX 06:08 · JFK 09:08
    ♥ Do have faith in what you're doing.