V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
samondlee
V2EX  ›  宽带症候群

预防因暴露 WEB 服务封宽带的方案之一

  •  
  •   samondlee · 2019-11-29 20:34:44 +08:00 · 7492 次点击
    这是一个创建于 1853 天前的主题,其中的信息可能已经有所发展或是发生改变。

    综述:还是 VPS FRP

    起因:最近看了好多因 WEB 服务封家宽的帖子,虽然没有在上海深圳,但鉴于 LZ 目前所处地区开公网要向省级公司走流程,并且师傅说明了 开了公网就是要被监控的,且最近刚入了 PT 坑流量有些大,还是很担心的。

    常见问题:

    1.为什么有 VPS 还用 FRP 架在本地:——数据还是放在自己这里放心

    2.速度怎么样:——虽然不如直连的好,但总体控制在 160ms 以下;需要走 IPV4 HTTP 上下传的时候再打开映射即可; IPV4 非 HTTP 端口映射仍然保留不受影响(如 PT、Teamspeak3 Server );且 IPV6 映射没有删除,可选移动、电信 IPV6 出口。

    3.优点:——去掉了域名+端口这个累赘

    4.缺点——看不到访客 IP,凑合用吧,谁有方法可以贴出来。

    方法:

    本地通过 NGINX 反代统一为一个端口(如 8889 ),用 FRPC TCP 映射出去(如本地 8889 远程 8889 );

    再到远程 VPS NGINX 新建一个 VHOST 把所有的域名都输入进去,该 VHOST 反代本 VPS 上的 FRPS 非 80 端口的 TCP 端口(如 127.0.0.1:8889 )。

    通过域名访问相应 web 服务,这样以后如果再增加服务的话,只需要在两端的 NGINX 增加绑定相应域名即可。

    暂时没有考虑 HTTPS,第一个不会,第二个还用不到。

    网络结构图 111.jpg.jpeg

    参考 NGINX 配置

    server
    {
        listen 80;
        listen [::]:80;
        server_name 域名 1  域名 2 域名 3 域名 4 域名 5 域名 6;
           location / {
            proxy_set_header HOST $host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
            proxy_pass http://127.0.0.1:VHOST 端口 /;
        }
    	access_log off;
    }
    
    29 条回复    2019-12-18 17:51:21 +08:00
    111111111111
        1
    111111111111  
       2019-11-29 20:52:44 +08:00 via Android
    Vps 的 nginx 获取访客 ip,并写入请求头
    本地的 Ngin 别修改这个请求头,后端服务就获得访客 IP 了
    e8AsCM
        2
    e8AsCM  
       2019-11-29 20:54:05 +08:00 via Android
    这样挺安全,不过如果有复制文件等大带宽需求的话,VPS 那边的费用就有点高了。目前我是开了两三个 SSH 端口用于管理,和一个代理端口用于连回家里内网,没有开跑着网页的端口,不知道安不安全……
    samondlee
        3
    samondlee  
    OP
       2019-11-29 20:58:24 +08:00
    @111111111111 emmm 就是本地的 nginx 把这行去掉吗 proxy_set_header X-Real-IP $remote_addr;


    @e8AsCM 嗯 非 HTTP 的 TCP 映射都留着比如 SSH\RDP
    laoyur
        4
    laoyur  
       2019-11-29 21:42:54 +08:00
    方案二:
    主动要求改成内网 IP,然后在外面通过 zerotier 访问内网。
    samondlee
        5
    samondlee  
    OP
       2019-11-29 22:00:28 +08:00
    @laoyur 2333 内网挂不了 PT 啦 而且写个博客啥的有人看 让别人装 zerotier 也不大方便
    zlkent
        6
    zlkent  
       2019-11-29 22:07:19 +08:00   ❤️ 2
    一个 VPN 回来就完事了,何必整这么麻烦?
    txydhr
        7
    txydhr  
       2019-11-29 23:08:46 +08:00
    海外 vps 有访问速度问题,国内 vps 有流量费用问题。目前流量大的话(比如要备份照片视频这种),除了 web 直连,只能用 vpn。现在群晖全套 app 都是基于 web,除非群晖针对国内情况整个换协议。
    AoTmmy
        8
    AoTmmy  
       2019-11-30 01:40:58 +08:00 via Android
    @samondlee PT 必须公网 ip ?内网也可以吧,而且有 vps 了直接吧博客挂上不更省事🙃
    zhucegeqiu
        9
    zhucegeqiu  
       2019-11-30 06:52:14 +08:00 via iPhone
    国内云服务器要么带宽小,要么流量贵
    我家 30M 上传带宽,基本不可能用 frp 达到同样的体验
    tia
        10
    tia  
       2019-11-30 10:04:31 +08:00
    @AoTmmy #8 内网没上传
    stille
        11
    stille  
       2019-11-30 10:08:06 +08:00 via iPhone
    之前测试过阿里云 30m 穿透家里 200 下 30 上,群晖差不多能跑满,就是流量太贵用不起,后来换了腾讯云 5m 的 vps,穿透 web 端够用了,大文件传输临时开 webdav 端口,现在还没太好的方案用 drive 和 moments 同步文件和照片
    WEBUG
        12
    WEBUG  
       2019-11-30 11:19:35 +08:00 via Android
    想问下,家里开酸酸乳之类的,frp 去连接,在国外用来回国,会被封吗,通过 frp 连接的东西能看出链接协议吗
    terax
        13
    terax  
       2019-11-30 11:48:17 +08:00 via iPhone
    https 的话可以用 lets encrypt,只需要在 vps 的 nginx 配一下就好了,用 certbot 很方便的
    NSAgold
        14
    NSAgold  
       2019-11-30 12:43:55 +08:00 via Android
    160ms 的话为啥不选择上 CF 嘞
    设置仅允许 CF 回源,其他 IP 访问 http 端口直接丢弃
    cdlnls
        15
    cdlnls  
       2019-11-30 13:47:22 +08:00
    就没有用 ssh 隧道的嘛
    lalalakakaka
        16
    lalalakakaka  
       2019-11-30 14:34:05 +08:00
    学习了~话说这个示意图画的挺不错的。请教下是用什么软件画的呢?
    e8AsCM
        17
    e8AsCM  
       2019-11-30 17:33:44 +08:00 via Android
    @txydhr 针对群晖 App 的话直接挂全局代理连回家里内网就行了
    SuzutsukiKaede
        18
    SuzutsukiKaede  
       2019-11-30 18:37:25 +08:00
    我也用的这个方案,握手。
    justs0o
        19
    justs0o  
       2019-11-30 20:38:41 +08:00
    @NSAgold 回源能逃过分光镜像 DPI ?
    samondlee
        20
    samondlee  
    OP
       2019-12-01 01:13:09 +08:00
    @WEBUG FRPC 本地并没有开 tcp 端口,所以不影响
    @terax 带来带去的头晕了 233
    @NSAgold CF 针对国内 IP 源端口只允许 443 80,国内家宽默认是封了的
    @lalalakakaka 亿图图示
    @SuzutsukiKaede 哈哈你这个 ID 有点儿像之前玩战地 1 碰到的人
    millionart
        21
    millionart  
       2019-12-01 05:51:51 +08:00 via iPhone
    路由绑定域名给 nas 内网地址,直连 80 433 端口,反代其他端口给 frp
    NSAgold
        22
    NSAgold  
       2019-12-01 09:37:56 +08:00 via Android
    @samondlee
    HTTP/HTTPS traffic within China data centers for domains that have the China Network enabled
    这句话应该理解为中国的数据中心只开放了 80/443 端口吧?
    英语不是很好只能大致看懂意思 TAT
    samondlee
        23
    samondlee  
    OP
       2019-12-01 19:05:29 +08:00 via Android
    @NSAgold 是的,8080 等其他端口不可用
    NSAgold
        24
    NSAgold  
       2019-12-01 19:43:23 +08:00 via Android
    @samondlee 但是 cf 免费版又没有中国节点可用...
    mxT52CRuqR6o5
        25
    mxT52CRuqR6o5  
       2019-12-02 10:22:34 +08:00 via Android
    @samondlee cf 国内源可以用其他端口的,亲测
    wmphone
        26
    wmphone  
       2019-12-03 20:39:44 +08:00 via iPhone
    套路云双程 CN2 他不香
    hgg12580
        27
    hgg12580  
       2019-12-18 09:17:51 +08:00
    @samondlee 这个图用什么软件画的
    samondlee
        28
    samondlee  
    OP
       2019-12-18 17:02:21 +08:00
    @mxT52CRuqR6o5 emmm 我试了说不支持中国大陆 IP
    @wmphone 自己玩不商业有点儿贵
    @hgg12580 上面回复有写亿图图示
    mxT52CRuqR6o5
        29
    mxT52CRuqR6o5  
       2019-12-18 17:51:21 +08:00 via Android
    @samondlee 我都说了亲测,上海电信的家宽
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3001 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 13:56 · PVG 21:56 · LAX 05:56 · JFK 08:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.