V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
uncat
V2EX  ›  分享创造

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

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

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

    适用对象:

    • 团队在公司内网有一台虚拟化服务器, 公司成员远程办公, 需要能公网访问这些在内网虚拟化下的自建服务, 比如内网的 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 条附言  ·  301 天前

    旧方案已废弃。请参考新方案: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
       301 天前
    @sacuba 哈哈哈,我现在才明白你想跟我表达的意思。
    sacuba
        31
    sacuba  
       301 天前
    @uncat #30 手动狗头一个。 不过看到你的文章,虽然我没试,但是我感觉你的 key 都是可用的,建议隐藏一下
    uncat
        32
    uncat  
    OP
       301 天前
    @sacuba

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

    有意为之。key 相关的公网(内网)服务器是临时资源,验证完文章的正确性后就回收了。保持 key 的可用,可以让文章的读者更顺利的复现。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3358 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 12:39 · PVG 20:39 · LAX 04:39 · JFK 07:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.