又把网站反代从rathole迁移到frp

发布于 2022-04-16  2214 次阅读


前言

用了rathole一段时间,但还是觉得rathole存在一定的问题。比如我使用rathole映射20个网站左右,其中网站a能打开,但是网站b就打开不是显示502就是超时,进入腾讯云的中转机里直接curl不能打开的网站,提示

curl: (56) Recv failure: Connection reset by peer

最后无奈之下还是决定迁回原来的frp,但是不再使用原来frp的http type了,而是使用tcp的方式连接,tls加密等交由nginx完成。

安装

安装宝塔国际版(aaPanel)

一键安装

yum install -y wget && wget -O install.sh http://www.aapanel.com/script/install_6.0_en.sh && bash install.sh forum

安装环境

接着在宝塔面板里安装nginx还有docker,因为本次frp不打算使用以前的screen后台运行了,每次改配置都得kill再screen最后run实在是太麻烦了,有了docker只需要start和stop方便多了,升级也方便,删了容器重pull完事。

配置网站

安装完成后在宝塔的 website 里 添加你要反代的网站域名,并把ssl绑上
然后再修改反代相关配置,先add 添加一个反代配置。添加完再编辑conf文件

修改为如下,这样大多数需要wss的反代网站都可以正常运行,下面的
(jpg|jpeg|gif|png|webp|avif|bmp|cur|svg|css|scss|js|ejs|ico|xml|woff|woff2|ttf|otf|eot|flac|mp3|mkv|mp4|webm)是指对如下后缀的文件进行缓存,可以大大节省frp的流量,提高网站速度。
注意把 proxy_pass 换成自己的反代端口

#PROXY-START/
location /
{
    proxy_pass http://127.0.0.1:6666;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;

    proxy_redirect off;

    proxy_http_version 1.1;
    proxy_cache_bypass $http_upgrade;
    proxy_set_header   Upgrade             $http_upgrade;
    proxy_set_header   Connection          "upgrade";

    #Persistent connection related configuration
}
location ~* \.(jpg|jpeg|gif|png|webp|avif|bmp|cur|svg|css|scss|js|ejs|ico|xml|woff|woff2|ttf|otf|eot|flac|mp3|mkv|mp4|webm)$ 
{
    proxy_pass http://127.0.0.1:6666;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header REMOTE-HOST $remote_addr;

    add_header X-Cache $upstream_cache_status;
    proxy_ignore_headers Set-Cookie Cache-Control expires;
    proxy_cache cache_one;
    proxy_cache_key $host$uri$is_args$args;
    proxy_cache_valid 200 206 301 302 304 3d;
    expires 30d;
}
#PROXY-END/

运行frps服务端

这里假设你已经配置好自己的frpc客户端并运行了,如果还没有建议配置完成再接着本教程。

使用root账号,在root的家目录下创建 frp 文件夹 ,在文件夹下放置 frps.ini 并写好配置

接着使用终端一键启动docker的 frps

docker run --network host -itd -v "/root/frp/frps.ini:/frp/frps.ini" --name frps fatedier/frps:v0.41.0 '-c=/frp/frps.ini'

开始享受 ~


代码萌新,热爱折腾,喜欢花草和养鱼