本篇为日志, 旨在记录, 而非提供详细教程, 含有大量个人心理活动的描写, 仅供参考
4/6号的时候为了测试Frp的可行性,许多的设置(端口、token和密码等)都缺乏安全性,遂开始深入研究Frp。
简单概括一下实现了什么工作:
- 开启的端口号不再连续,改用更安全的高位端口号。
- 认证token变得更复杂(脸滚键盘),包含数字、特殊符号和字母,12位以上。
- Web界面改用更复杂的用户名与密码。
- Kourichat仪表板的服务改用“http”类型的代理(改用自定义域名于虚拟http端口访问),同时设置了用户名与密码(相关内容)。
- 通过“static_file”的客户端插件来实现了静态展示Kourichat项目的文件,可以用来查看记忆文件和运行日志,访问也需要用户名与密码(对外提供简单的文件访问服务)。
- 研究了tls加密功能和压缩传输内容功能。
以上的实践都是借助这个Frp文档网站上的内容来学习的,这个网站虽然内容很少,但仔细阅读,你会发现它的内容非常精炼,可以掌握Frp相关的80%相关内容(瞎说的)。
部分内容详细说明
关于TLS加密传输
通信安全及优化这里提到了:“TLS加密功能启用后,所有传输的流量都会被全局加密,不再需要配置单个代理上的加密,新版本(0.50以上版本)中已经默认启用“。我也是研究半天才发现了这点。
自定义 TLS 协议加密这里提到了:“启用了tls全局流量功能后除 xtcp ,可以不用再设置 use_encryption (也就是)重复加密”。
吐槽deepseek
学习过程中我也询问过deepseek,不知道为什么,ds对于Frp配置文件的编写问题所给出的答案有着非常多的语法错误,不清楚是什么原因。就比如说deepseek明明已经知道我的Frp的版本是0.61.2的情况仍然叫我手动开启TLS服务。
更恶心的是,它给出的方案是在frps.toml和frpc.toml中全局添加一句transport.tls.enable= true。而仔细阅读文档”服务端配置“、”客户端插件配置“可以清楚的知道”在服务端手动开启TLS的配置命令应该是transport.tls.force= true“。
哪怕我向ds反应transport.tls.enable= true配置命令不可行,它的答案跟让人哭笑不得:”哎呦,新版本应该是transport.tls.enabled=true(多加了个‘d’),之所以客户端可以运行,就说明它兼容旧版本的配置。至于为什么明明服务端执行了./frps -v查看的结果还是0.61.2的新版却又问题,就只能说明你的服务端的的实际版本有问题,重装吧孩子”???
要不是我感觉到ds意外地错误百出决定靠自己去研究,我都不知道被拐到哪个山沟沟了QAQ。
以上只是我在使用ai的一些吐槽,毕竟ai也会犯错,ds这种情况很明显就是没有查找到正确的网络资料文件,于是瞎jb硬推理才给出这么多离谱的回答。我也不是一两次遇到ai回答变得很不靠谱还不如自己上网查找资料和文章。也算是一种经验分享吧(~ ̄▽ ̄)~。
http(https)代理
要实现这一点其实只是为了让Kourichat的仪表盘不要直接“裸奔”,连个密码都没有。由于其本身就是Web项目服务来的,所以要实现用户访问时要求其输入密码就得改用“http”代理,在配置httpUser和httpPassword这两个设置。不过“http”代理就需要一个设置自定义域名了,我肯定觉得没必要再注册一个新的域名,便在阿里云搞了一下子域名。之后便可以通过“http://<所设置的该服务的域名>:
之后再看看这篇文章在设置一下“BasicAuth”(也就是用户名与密码)就好啦。
错误实践:尝试将http类型代理与静态文件客户端插件混合在一起使用
总而言之,靠我自己瞎几把试,发现不行,用域名访问感觉好看点,直接写公网ip地址。。。最主要是Frp文档也没有细说哪些代理类型客户端插件相适配。。。
杂谈
Frp确实好用且功能强大,以后租服务器如果预算紧张又想要配置好的服务器,就可以先租一个带公网IP的配置简单比较便宜的服务器来负责转发,自己想要什么好的服务器就在内网环境想怎么装就这么装,当然所有的管理都得自己来了。
后续有机会的话,可能会在内网环境里运行更多的网站,有可能这个网站也会迁移到内网环境中(其实40g硬盘真的很快就不够用了)。

最新评论