
最近整了个阿里云服务器,搭建了 frp 服务,准备将家里的小服务器的部分端口暴露给外网,方面自己在外使用。
我的使用方式是这样的:
1 、阿里云服务端只完全开放 7000 ,其他端口都不开放; 2 、阿里云服务端的 auth.token 设置为一个随机生成的复杂 token ; 3 、其他端口(比如:8080 ,8081 ,22 等),需要用到的时候,只要到阿里云上设置一下白名单并开放就行了。
各位大佬帮忙看看,这么做有没有什么比较严重的风险。还有没有其他可以优化的地方。抱拳
1 penzi 1 月 20 日 没有 |
2 cheng6563 1 月 20 日 frp 里可以开下加密,没了。 |
3 totoro625 1 月 20 日 家里的小服务器肯定能随便跑脚本,跑一个 ddns 。推荐 https://github.com/jeessy2/ddns-go 阿里云 crontab 弄个脚本,把 ddns 解析域名对应的 ip 自动过白名单 7000 端口也不用对外开放 需要访问的设备,如果是笔记本也可以弄个 ddns ,自动过白名单 |
4 Sezxy 1 月 20 日 stcp 更安全,缺点是访问的时候要用到 frpc |
5 lmmir 1 月 20 日 还不如用 easytier |
6 Ipsum 1 月 20 日 搞个 vpn ,在哪都像家一样。 |
7 stephenhallo 1 月 20 日 其实比较好的方式是搞个备案域名,然后阿里云服务器上只开放 443 端口,阿里云服务器上部署 nginx 将流量直接反向代理到 frp ,所有的项目文件,包括域名证书啥的都在小服务器上。这样相对安全一些。 |
8 jifengg 1 月 20 日 另外,建议改掉默认 7000 端口,现在 frp 7000 端口也是常规扫描端口了。可能阿里云自己也会检测哦 |
9 eastry OP |
11 eastry OP @stephenhallo 有想过这种方式,自己有备案的域名,但是是不是每个开放的端口都要一个子域名,这样有点麻烦哎。不过还是感谢你的建议 |
13 ashuai 1 月 20 日 我以前在 win2003 上用过 ipsec ,双方配置同样的密钥就可以互访。现在的版本不知道怎么配了。不知道为什么这个方案很少看到人用 |
17 stephenhallo 1 月 20 日 @eastry 不用呀,所有域名都是通过 https 走 443 端口呀,添加新的服务只是需要修改配置文件,不需要额外开放端口 |
18 youknowiam 1 月 20 日 我现在用 vnt+lucky 比较完美解决我远程、端口穿透的问题,无公网也能满速访问家里 |
19 jingcjie 1 月 20 日 之前用 frp 为了在哪里都能随时访问,后面还是组网算了,我把 rdp 和 ssh 挂 frp 上,每天可以被扫几百次,麻了。 |
20 ntedshen 1 月 20 日 |
21 Hanhairizhi 1 月 20 日 我是自己写程序监控 frps 日志,有新 ip 进来如果不是本省的 ip 就加到防火墙黑名单,顺便也能阻止这些 ip 攻击其他服务端口。 |
22 ICKelin 1 月 20 日 frp 会暴露在公网,一般都是尽量避免暴露在公网的,楼上有说 easytier 的了,也可以试试这个,https://github.com/smartethnet/rustun |
23 sherardxu 1 月 20 日 同阿里云,我使用 tailscale 暴露内网服务,延迟 7ms |
24 eastry OP @stephenhallo 我有暴露多个家里服务器端口的需求,一个子域名只能链接一个吧。 |
25 acisky 1 月 20 日 用阿里云 frp 暴露内网的 gogs 服务,不知道怎么被黑产盯上发了好多垃圾广告 |
27 laminux29 1 月 20 日 既然这是给你个人使用的,你直接用端口敲门技术不就行了。端口敲门专门针对这个场景,甚至你连密码都不需要,天下无敌,100% 安全。 |
28 vonfry 1 月 20 日 如果不需要 udp 流量,可以用 ssh (reverse) forward ,本身就有加密,还能按需连接,而且本来 ssh 就是会开放使用的。固定导出的端口拿 systemd 写个 service 就好。 另外安全问题,除了防拿你的服务器做转发外,更主要的是你 export 的那个服务。 另外你拿阿里转发的话,如果是 http(s) 是会被阿里检测然后关掉的(解法是备案)。 |
29 milkpuff 1 月 20 日 用 stcp ,不要直接暴露,会被疯狂扫描。 |
30 suyuyu 1 月 20 日 求问 腾讯云轻量能不能跑 frp ? |
31 Achophiark 1 月 20 日 个人用户使用 frp 没有任何问题的,玩的就是效率,真是性能好,但没有零信任和其他可靠验证,对这方面要求高的可以看看 pangolin(类似开源 cloudflare tunnel) |
32 stephenhallo 1 月 20 日 @eastry 不同子域名,只要是 https ,都走的是服务器的 443 端口呀 |
33 Plutooo 1 月 20 日 我是家里服务器起一个脚本定时对 ip 加白 |
34 byte10 1 月 20 日 我跟上面用 nginx 一样,家里所有需要暴漏的服务连接到 frp ,然后 nginx 代理这些端口。最近暴漏了 nas ,结果被攻击,还好群晖牛逼,3-5 次 密码不对就封锁。后来排查了很久,发现 nginx 有一个域名访问的问题,才终于解决攻击。 |
35 DefoliationM 1 月 20 日 via Android tailscale 吧,不用开端口。 |
36 rev1si0n 1 月 20 日 这么麻烦干嘛,直接部署一个 openvpn-server ,android ,ios ,win ,linux ,mac 端客户端全覆盖,家里申请个公网 IP ,加 ddns 连服务器都不用。 |
37 hxdyxd 1 月 20 日 via iPhone 直接 ikev2 连回家就好了,7x24 小时挂着也不怎么耗电,网络环境跟家里完全一样 |
38 PhDLuffy 1 月 20 日 frp 只开放 444 端口,用 https ,所有内网服务走 444 的 https 端口 |
39 inframe 1 月 20 日 wireguard + docker ,或者楼上的 xx vpn,反正各种组网工具解决自己使用的问题 |
41 iShinku 1 月 21 日 自己用:tailscail 之类的回家 VPN 指定用户用:CF 隧道+邮件认证 只要不经过身份验证的访问,都认为是不安全的 |
42 likaci 1 月 21 日 手机上 Clash 或者 Surge 常开的话, 内网开个 ss-server 最方便, 有公网 ip 就把 ss-server 的端口暴漏出来, 没有公网 ip 就用 frp 把 ss-server 暴漏出来, 用 ss 的密码来确保安全 配置好策略在家访问直连, 外网访问走 ss-server. 这样完全无痛, 也不会因为 VPN 和翻墙冲突 轻松访问家中的网络服务 https://web.archive.org/web/20230324030158/https://community.nssurge.com/d/5 |
43 mylara 1 月 21 日 想安全不折腾直接 easytier |
44 shilyx 1 月 21 日 针对 tcp 协议: 让 frp 在云上监听 127.0.0.1 用 kcptun 在云上跑一个服务端,监听对应的 udp 端口 在需要使用的地方跑 kcptun 的客户端,复原 tcp 端口 kcptun 密码随意,有就行 这样任何人无法从互联网扫描到你的业务,速度上不用担心,搞不好还更快了 |
45 luis330 1 月 21 日 好奇请教一下,frp 会比 vpn 安全吗? 我现在是用 WireGuard ,感觉很方便啊,这样家里有很多服务很多端口,但只需要暴露 1 个端口。 |
46 waltcow 1 月 21 日 现在是公网 IP 接 ssserver-rust , 配合 clash 做规则 |
47 SakuraYuki 1 月 21 日 @likaci surge 直接 ponte 或者 wg 更方便吧 |
48 yisier PRO 可以试下我维护的 [nps]( https://github.com/yisier/nps),可以用 IP 白名单或 IP 黑名单 |
49 a33291 1 月 21 日 除非 frp 自身有漏洞导致所在的机器被黑(可以跑 docker 内避免),然后隧道后还是各个机器自行保证安全,比如你通过 frp 保留内网 22 出去,人家不还是要密码或者 key 登录吗,和 frp 又没关系了 |
50 Devifish 1 月 21 日 frp 可以支持 websocket 来建立连接, 可以藏到 nginx 后面 |
51 Molita 1 月 21 日 我用 tailscale 。 然后有一些 flood immich 之类的东西用的 cf tunnel 转发一下,加了一层 access 的访问权限。 |
52 spritecn 1 月 21 日 走白名单 ,已经很安全了吧 |
53 Jacksu 1 月 21 日 我的做法是,服务器开放 frps 端口(也就是你的 7000 ),有 token 的存在,这不会有什么问题。 至于穿透服务我只开放在服务器的 127.0.0.1,然后在服务器再搭建一个 Nginx ,只开放 443 端口,所有服务通过域名访问,Nginx 做了处理,不是自己指定的域名不允许访问。SSH/RDP 这种就用 Nginx 的 stream 转发,按需开启 |
55 Sezxy 1 月 21 日 不用 stcp ,那最安全的方式还是暴露 vpn 的端口,先连上 vpn 就能访问家里所有服务 |
56 CSGO 1 月 21 日 你都用白名单了应该没问题。我是懒得弄,想要随时都能访问,用了 fail2ban ,但 frp 的日志,只能显示某 ip 进行连接,不包含任何连接成功错误等信息,所以我只做了简单的规则,比如 5 分钟内只允许 3 个 ip ,24 小时内只允许 20 次等这样,看自己情况。 |
57 cat9life 1 月 21 日 主要是软件本身总是被杀毒软件干掉 心累 |
58 hidumouren 1 月 21 日 stcp 密钥方式; 可以试试这个,平时自己用的 GUI https://github.com/hidumou/frpc-gui |
59 xiaomushen 1 月 21 日 @vonfry 我之前都是跑 ssh ( autossh )上的,但是用的人多了,就不稳了。换成 gost 后,终于舒服了 |
62 sparkssssssss 1 月 21 日 @glaz #54 国内流量几乎不会管,我用的 openvpn 好几年了,没有问题 |
63 xiaomushen 1 月 21 日 @glaz VPN 协议秒识别,当年要被 Ban |
64 idragonet 1 月 21 日 配合 lucky 开 IP 白名单 |
65 uncat 1 月 21 日 wireguard. 用随便一台 linux ,通过 systemd-networkd 加份 netdev 和 network 就搞定了,很简单的。 |
66 iSecret 1 月 21 日 之前也是一直用 frp ,总觉得简单方便,后来越想越不对劲,翻了一下 frp server log 全是爆破扫描的连接日志,后来改用 tailscale 了,自建 DERP 服务器做中转。 |
67 wsbqdyhm 1 月 21 日 @youknowiam lucky 端口是不是随机的。 |
68 smileeast 1 月 21 日 如果不是需要给其他人使用,推荐用 easytier 或者 wireguard 之类的,反正都是自己用,能回家就行,我用 easytier 很舒服 |
69 BadAngel 1 月 21 日 我理解最安全是任何端口都不开,出方向只开特定端口,起个出方向访问特定端口的域名请求,仅靠反向 tls 建联 |
70 RangerWolf 1 月 22 日 @eastry #11 有备案的话 阿里云弄一个泛域名解析,用 certbot 自动管理证书,我觉得好像还行 |
71 kasusa 1 月 22 日 frp 只要开个密码就行。没谁会破解开你的密码。 或者你懒得加密码可以用安全组,只允许你家 ip 连服务器 7000 port 。其他人也用不了。 |
72 julyclyde 1 月 22 日 ftp 开 HTTP 代理模式呗? CONNECT 到内网端口 |