起因:最近看了好多因 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,第一个不会,第二个还用不到。
网络结构图
参考 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;
}
1
111111111111 2019-11-29 20:52:44 +08:00 via Android
Vps 的 nginx 获取访客 ip,并写入请求头
本地的 Ngin 别修改这个请求头,后端服务就获得访客 IP 了 |
2
e8AsCM 2019-11-29 20:54:05 +08:00 via Android
这样挺安全,不过如果有复制文件等大带宽需求的话,VPS 那边的费用就有点高了。目前我是开了两三个 SSH 端口用于管理,和一个代理端口用于连回家里内网,没有开跑着网页的端口,不知道安不安全……
|
3
samondlee OP @111111111111 emmm 就是本地的 nginx 把这行去掉吗 proxy_set_header X-Real-IP $remote_addr;
@e8AsCM 嗯 非 HTTP 的 TCP 映射都留着比如 SSH\RDP |
4
laoyur 2019-11-29 21:42:54 +08:00
方案二:
主动要求改成内网 IP,然后在外面通过 zerotier 访问内网。 |
6
zlkent 2019-11-29 22:07:19 +08:00 2
一个 VPN 回来就完事了,何必整这么麻烦?
|
7
txydhr 2019-11-29 23:08:46 +08:00
海外 vps 有访问速度问题,国内 vps 有流量费用问题。目前流量大的话(比如要备份照片视频这种),除了 web 直连,只能用 vpn。现在群晖全套 app 都是基于 web,除非群晖针对国内情况整个换协议。
|
9
zhucegeqiu 2019-11-30 06:52:14 +08:00 via iPhone
国内云服务器要么带宽小,要么流量贵
我家 30M 上传带宽,基本不可能用 frp 达到同样的体验 |
11
stille 2019-11-30 10:08:06 +08:00 via iPhone
之前测试过阿里云 30m 穿透家里 200 下 30 上,群晖差不多能跑满,就是流量太贵用不起,后来换了腾讯云 5m 的 vps,穿透 web 端够用了,大文件传输临时开 webdav 端口,现在还没太好的方案用 drive 和 moments 同步文件和照片
|
12
WEBUG 2019-11-30 11:19:35 +08:00 via Android
想问下,家里开酸酸乳之类的,frp 去连接,在国外用来回国,会被封吗,通过 frp 连接的东西能看出链接协议吗
|
13
terax 2019-11-30 11:48:17 +08:00 via iPhone
https 的话可以用 lets encrypt,只需要在 vps 的 nginx 配一下就好了,用 certbot 很方便的
|
14
NSAgold 2019-11-30 12:43:55 +08:00 via Android
160ms 的话为啥不选择上 CF 嘞
设置仅允许 CF 回源,其他 IP 访问 http 端口直接丢弃 |
15
cdlnls 2019-11-30 13:47:22 +08:00
就没有用 ssh 隧道的嘛
|
16
lalalakakaka 2019-11-30 14:34:05 +08:00
学习了~话说这个示意图画的挺不错的。请教下是用什么软件画的呢?
|
18
SuzutsukiKaede 2019-11-30 18:37:25 +08:00
我也用的这个方案,握手。
|
20
samondlee OP @WEBUG FRPC 本地并没有开 tcp 端口,所以不影响
@terax 带来带去的头晕了 233 @NSAgold CF 针对国内 IP 源端口只允许 443 80,国内家宽默认是封了的 @lalalakakaka 亿图图示 @SuzutsukiKaede 哈哈你这个 ID 有点儿像之前玩战地 1 碰到的人 |
21
millionart 2019-12-01 05:51:51 +08:00 via iPhone
路由绑定域名给 nas 内网地址,直连 80 433 端口,反代其他端口给 frp
|
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 |
25
mxT52CRuqR6o5 2019-12-02 10:22:34 +08:00 via Android
@samondlee cf 国内源可以用其他端口的,亲测
|
26
wmphone 2019-12-03 20:39:44 +08:00 via iPhone
套路云双程 CN2 他不香
|
28
samondlee OP |
29
mxT52CRuqR6o5 2019-12-18 17:51:21 +08:00 via Android
@samondlee 我都说了亲测,上海电信的家宽
|