基于 FRP 和 WireGuard 远程办公解决方案 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
uncat
V2EX    分享创造

基于 FRP 和 WireGuard 远程办公解决方案

  •  
  •   uncat
    jinmiaoluo 2021-12-25 10:27:55 +08:00 9729 次点击
    这是一个创建于 1393 天前的主题,其中的信息可能已经有所发展或是发生改变。

    实现内网虚拟化环境的公网可达. 实现了基本的添加和删除人员权限的逻辑.

    适用对象:

    • 团队在公司内网有一台虚拟化服务器, 公司成员远程办公, 需要能公网访问这些在内网虚拟化下的自建服务, 比如内网的 GitLab 或 Jira 或 Confluence.
    • 自己有一台工作站, 希望通过 vscode 的 remote 功能, SSH 回家中的工作站, 实现开发环境性能跃升.

    https://github.com/jinmiaoluo/wireguard-helper

    第 1 条附言    2021-12-27 11:40:05 +08:00

    我的家庭网络拓扑

    第 2 条附言    2021-12-27 11:45:52 +08:00

    优势:

    • 用户本地环境只要能访问互联网, 就可以访问到 192.168.188.0/24 和 192.168.121.0/24 下的所有主机.
    • 网络安全性由 WireGuard 来保证. 一人一证书, 权限细粒度可以控制到人为单位.
    • 用户本地环境通过维护路由来实现转发, 不会影响本地的翻墙服务.
    第 3 条附言    2024-01-28 22:41:03 +08:00

    旧方案已废弃。请参考新方案:WireGuard:远程办公网络

    新方案与旧方案的区别:

    新方案不再依赖 FRP,完全基于 WireGuard 来实现同样的效果。 相比于旧方案(有 FRP),新方案(无 FRP 的纯 WireGuard 方案)彻底发挥了协议本身的无状态的优势。公网服务器抗 DoS 能力更强,被探测到的机率更低。有更好的安全性。

    32 条回复    2024-01-28 23:12:45 +08:00
    Ganing
        1
    Ganing  
       2021-12-25 15:20:50 +08:00
    没看懂 frp 的意义
    cweijan
        2
    cweijan  
       2021-12-25 15:27:59 +08:00
    1. FRP 是端口转发, 不是内网穿透
    2. 内网穿透是指通过 UDP 的方式, 让两台机器直接通信, 不走中转服务器, wireguard 天生就支持, 和 ftp 一点关系都没有
    3. 如果你运行 FRP 的服务端有公网 IP, 那用不用 wireguard 没有区别.
    uncat
        3
    uncat  
    OP
       2021-12-25 18:11:53 +08:00 via iPhone
    @Ganing 私有虚拟化,无公网 IP ,需公网访问。
    uncat
        4
    uncat  
    OP
       2021-12-25 18:14:17 +08:00 via iPhone
    @cweijan 私有虚拟化,无公网 IP ,需公网访问。NAT 网关和权限管理,类似 OpenVPN 。
    xsen
        5
    xsen  
       2021-12-25 20:15:32 +08:00   2
    tailscale

    若有自建后台需求,tailscale + headscale
    patrickyoung
        6
    patrickyoung  
       2021-12-25 20:25:45 +08:00 via iPhone   1
    Zerotier 一步到位
    ciaoly
        7
    ciaoly  
       2021-12-25 22:45:40 +08:00 via Android
    我觉得用个 mesh VPN 挺不错的
    tinc 或者 zerotier
    uncat
        8
    uncat  
    OP
       2021-12-25 23:12:23 +08:00
    @xsen headscale 不错.
    uncat
        9
    uncat  
    OP
       2021-12-25 23:12:34 +08:00
    @patrickyoung 准备试试, 谢谢.
    uncat
        10
    uncat  
    OP
       2021-12-25 23:12:46 +08:00
    @ciaoly tinc 抽空试试.
    cweijan
        11
    cweijan  
       2021-12-26 00:54:43 +08:00
    @uncat 我明白你的使用场景, 只是说你的文章有些术语描述的不对.
    uncat
        12
    uncat  
    OP
       2021-12-26 09:14:42 +08:00
    @cweijan updated.
    miyunda
        13
    miyunda  
       2021-12-26 12:52:45 +08:00
    有公网 IP 的话就一个 ocserv
    hawei
        14
    hawei  
       2021-12-26 19:28:25 +08:00 via iPhone
    @patrickyoung 同 zeortie 一把梭
    uncat
        15
    uncat  
    OP
       2021-12-26 23:16:05 +08:00
    @miyunda 不是很了解 ocserv. 请问 ocserv 客户端可以只指针对某一个网络段(比如 192.168.1.0/24)进行路由吗?
    JustSong
        16
    JustSong  
       2021-12-27 02:03:50 +08:00 via Android
    刚刚试了一下,zerotier 也太香了吧
    tobylee
        17
    tobylee  
       2021-12-27 10:02:01 +08:00
    如果有一台具有公网 IP 的 VPS ,那就 Wireguard 或 OpenVPN ,都可以完美实现。反代请求到内网服务器就行了,如果没有具有公网 IP 的 VPS ,那就用 Zerotier 吧,但是要忍受极慢的网速。
    uncat
        18
    uncat  
    OP
       2021-12-27 10:37:05 +08:00
    @tobylee 不是只访问一台或几台, 是要做内网整个网络段的公网可达. Zerotier 我来试试.
    joesonw
        19
    joesonw  
       2021-12-27 11:27:49 +08:00 via iPhone
    公网服务器也装 wireguard 不就好了?要 frp 干嘛,又不是 OpenVPN 。
    uncat
        20
    uncat  
    OP
       2021-12-27 11:34:29 +08:00
    @joesonw 不是只访问一台或几台, 是要做 WireGuard 服务端所在内网整个网络段的公网可达.
    uncat
        21
    uncat  
    OP
       2021-12-27 11:36:16 +08:00
    @joesonw 小公司的自建虚拟化在电信 NAT 设备后, 无公网 IP, 因此需要 FRP.
    junmoxiao
        22
    junmoxiao  
       2021-12-29 11:31:44 +08:00
    nebula 不香嘛
    uncat
        23
    uncat  
    OP
       2021-12-29 13:56:22 +08:00
    @junmoxiao 没用过,我了解一下。
    squirrelBdg
        24
    squirrelBdg  
       2021-12-29 16:48:33 +08:00
    我用的是 nps 很省心 但是也有一些 bug
    uncat
        25
    uncat  
    OP
       2021-12-29 17:11:03 +08:00
    @squirrelBdg nps 也很棒
    SimonOne
        26
    SimonOne  
       2021-12-30 12:35:59 +08:00
    这图用哪个工具画的?
    uncat
        27
    uncat  
    OP
       2021-12-30 13:31:37 +08:00
    sacuba
        28
    sacuba  
       2022-03-30 13:58:00 +08:00
    偶然间搜到了这样一个主题,可能楼主已经知道了。
    wireguard 利用 iptables 以及 allowdips 是可以实现你想要的效果的,不用 frp 。
    sacuba
        29
    sacuba  
       2022-03-30 13:58:51 +08:00   1
    https://zhuanlan.zhihu.com/p/447375895 随手搜了下,可以看看这个博主的帖子
    uncat
        30
    uncat  
    OP
       2024-01-28 22:45:50 +08:00
    @sacuba 哈哈哈,我现在才明白你想跟我表达的意思。
    sacuba
        31
    sacuba  
       2024-01-28 22:57:58 +08:00
    @uncat #30 手动狗头一个。 不过看到你的文章,虽然我没试,但是我感觉你的 key 都是可用的,建议隐藏一下
    uncat
        32
    uncat  
    OP
       2024-01-28 23:12:45 +08:00
    @sacuba

    > 感觉你的 key 都是可用的,建议隐藏一下

    有意为之。key 相关的公网(内网)服务器是临时资源,验证完文章的正确性后就回收了。保持 key 的可用,可以让文章的读者更顺利的复现。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1670 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 16:18 PVG 00:18 LAX 09:18 JFK 12:18
    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