标签 frp 下的文章

什么是frp

一个内网穿透的工具 没有公网IP又想访问里面服务的时候用得上 工具需要一台有公网IP的设备来中转
有公网IP的设备上安装frp服务端 frps
无公网IP的设备上安装frp客户端 frpc
宝塔是因为设备上已经安装了才说的 宝塔对于frp来说,非必要

安装服务端frps

在有公网IP的设备上安装frp服务端
fprs宝塔插件下载地址:http://pan.sixu.space/tools/btp_frps1.2.1.zip
在宝塔安装第三方工具 导入安装frps可视化面板
首次运行 frps版本在线安装 设置好端口 面板信息 启动

安装客户端frpc

在没有公网IP的设备上下载frp客户端 https://github.com/fatedier/frp/releases 注意下载的版本和frps的版本一致
frpc的配置

[common]
server_addr = 你的公网服务器IP
server_port = 你在服务端配置的端口
token = 你在服务端配置的身份验证码
[代理名称]
type = tcp
local_ip = 内网IP地址,本机填写 127.0.0.1
local_port = 内网端口
remote_port = 公网访问端口

临时跑起来

/bin/bash -c '/root/frp_0.44.0_linux_amd64/frpc -c /root/frp_0.44.0_linux_amd64/frpc.ini'

Supervisor

在宝塔的应用商店里面安装Supervisor 添加一个'frp2'的任务名称 只是举例
命令重启刚添加的任务:/www/server/panel/pyenv/bin/supervisorctl restart frp2:frp2_00

说明:路由器新路由3作为客户端frpc,Google cloud香港有公网IP安装服务端frps

vps上安装服务端

1.下载服务端

#切换到root目录下
cd /root
#下载0.21版本
wget --no-check-certificate https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_amd64.tar.gz
#解压
tar -xzvf frp_0.21.0_linux_amd64.tar.gz
#文件夹重命名
mv frp_0.21.0_linux_amd64 frp
#进入frp目录
cd frp
#赋予权限
chmod +x frps
#执行帮助命令测试frp是否能运行
./frps --help

2.写入配置文件

echo "[common]
bind_port = 7000
token = 12345678
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
vhost_http_port = 10080
vhost_https_port = 10443
subdomain_host = sixu.life" > frps.ini

3.测试运行frps
./frps -c frps.ini
ctrl+c退出
4.开机启动

#编辑 开机启动文件
vi /etc/rc.local
#按 i 进入编辑模式并添加下面的命令到 exit 0 语句之前
nohup /root/frp/frps -c /root/frp/frps.ini &
#按 esc 退出编辑模式再按 :wq 保存并退出

路由器上配置

1.依次点击:花生壳内网版--frp
启用 frp 内网穿透 选中
启用 frpc 客户端 选中
2.修改配置文件

# ==========客户端配置:==========
[common]
server_addr = 对应服务器IP地址
server_port = 对应服务端的 bind_port
token = 对应服务端 token

#log_file = /dev/null
#log_level = info
#log_max_days = 3

[web]
remote_port = 对应服务端vhost_http_port
type = http
local_ip = 192.168.123.1
local_port = 80
subdomain = 自定义子域名,例如test.sixu.life,则此处自需要输入test
#host_header_rewrite = 
# ====================
EOF

3.点击应用本页设置
4.运行成功会看到类似的提示

login to server success, get run id [], server udp port [0]
start proxy success

image

域名解析

为了方便,可直接添加泛解析 * a记录指向服务器IP

其他

例如上文的设置来说:
1.登录服务端的 dashboard 的地址为:服务器ip:7500
2.外网访问地址为:test.sixu.life:10080
image

基本介绍

路由器:r2d
工具箱:Misstar Tools 版本:3.18.09.10
插件:frp
故障描述:frp无法正常启动,本人菜鸟,无法获取更多的错误信息,工具箱群里问了下没人回,还好搜索有解决办法,就搬过来了。

更新路由器中的frp

1.下载最新版frp:https://github.com/fatedier/frp/releases
当前的最新版下载地址:https://github.com/fatedier/frp/releases/download/v0.21.0/frp_0.21.0_linux_arm.tar.gz

2.解压下载的文件,替换/data/etc/misstar/applications/frp/bin中的frpc

3.更改frp配置信息
vi /data/etc/misstar/applications/frp/script/frp #编辑配置文件
修改第32行echo "privilege_token = "$privilege_token >> /etc/misstar/applications/frp/config/frpc.confecho "token = "$privilege_token >> /etc/misstar/applications/frp/config/frpc.conf
在下一行增加两行frpc运行时生成日志,方便出问题时的排查:

    echo >> /etc/misstar/applications/frp/config/frpc.conf
    echo "log_file = /etc/misstar/applications/frp/bin/frpc.log" >> /etc/misstar/applications/frp/config/frpc.conf

文件最后加上restart 的脚本

restart(){
        stop; sleep 2; start
}

赋予执行权限:chmod +x /data/etc/misstar/applications/frp/script/frp
[工具箱配置完成后]试一下看能不能启动 frpc:./frp start

更新服务端frp

./install-frps.sh update
我当时路由器用最新版 而vps用0.16.0的时候就会出现这样的错误login to server failed: EOF

image

参考:http://bbs.xiaomi.cn/t-32690007

r2d的当前版本2.25.201,发现mt工具箱打开失效了,显示:

No page is registered at '/web/misstar/index' .

If this url belongs to an extension, make sure it is properly installed.

If the extension was recently installed, try removing the /tmp/luci-indexcache file.

查找有现成的方法,就搬过来了
1、ssh方root用户登录路由器后台;
2、执行命令:
vi /usr/lib/lua/luci/controller/web/index2.lua
3、加入如下内容:

module("luci.controller.web.index2", package.seeall) 
function index()      
     local page   = node("web","misstar")          
     page.target  = firstchild()         
     page.title   = ("")          
     page.order   = 100          
     page.sysauth = "admin"          
     page.sysauth_authenticator = "jsonauth"          
     page.index = true          
     entry({"web", "misstar", "index"}, template("web/setting/misstar/index"), _("Tools"), 81)          
     entry({"web", "misstar", "add"}, template("web/setting/misstar/add"), _("Tools"), 82)          
     entry({"web", "misstar"}, alias("web","misstar","index"), _("Tools"), 80)          
     entry({"web", "misstar", "ss"}, template("web/setting/applications/ss/html/ss"), _("Tools"), 85)          
     entry({"web", "misstar","frp"}, template("web/setting/applications/frp/html/frp"), _("Tools"), 85)          
     entry({"web", "misstar","aliddns"}, template("web/setting/applications/aliddns/html/aliddns"), _("Tools"), 85)  
     entry({"web", "misstar","adm"}, template("web/setting/applications/adm/html/adm"), _("Tools"), 85)    
     entry({"web", "misstar","koolproxy"}, template("web/setting/applications/koolproxy/html/koolproxy"), _("Tools"), 85)
     entry({"web", "misstar","rm"}, template("web/setting/applications/rm/html/rm"), _("Tools"), 85)
     entry({"web", "misstar","aria2"}, template("web/setting/applications/aria2/html/aria2"), _("Tools"), 85) 
     entry({"web", "misstar","webshell"}, template("web/setting/applications/webshell/html/webshell"), _("Tools"), 85)
     entry({"web", "misstar","pptpd"}, template("web/setting/applications/pptpd/html/pptpd"), _("Tools"), 85)  
     entry({"web", "misstar","ftp"}, template("web/setting/applications/ftp/html/ftp"), _("Tools"), 85)
     entry({"web", "misstar","kms"}, template("web/setting/applications/kms/html/kms"), _("Tools"), 85)  
end

4、执行清理缓存命令:
rm -rf /tmp/luci-indexcache

参考:http://www.cmliu.net/?id=78

安装服务端

appnode控制面板=>桌面=>安装软件=>选择frp服务端

服务端设置

客户端设置

网站设置

这里只要是将端口号去掉,即不带端口号访问
1.新建个反向代理网站,只需要nginx即可
2.Nginx反向代理Frps服务设置,端口8080为例

server {
    listen       80;
    server_name  域名;

    location / {
        proxy_pass        http://127.0.0.1:8080;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header  Host $host:8080;
    
        location ~* \.(js|css|jpg|gif|png|bmp|swf)$ {
            expires  30d;
        }
    
        location ~* \.(zip|rar|jpg|gif|png|bmp|swf|flv)$ {
            valid_referers  none blocked server_names;
        }
    }
}

部分转自:Nginx反向代理Frp内网穿透神器

前言

frp内网穿透成功后,访问的时候域名后要加上端口才能访问,不美观。然而配置nginx就可以解决。此篇文章涉及https,因为域名没备案。
image

申请ssl证书

1.地址 腾讯云ssl证书
2.验证域名权限的时候,添加txt最快,大概3分钟证书就能申请下来
image
3.下载证书,解压Nginx出来,下一步用

oneinstack配置

1.ssh登陆服务器,添加虚拟主机,http=>https建议开启

cd oneinstack
./vhost.sh

2.替换ssl证书,先修改下载到的证书名称,用winscp上传到目录
image
3.重新加载nginx
nginx -s reload

修改Virtualhost conf:

1.文件路径:/usr/local/nginx/conf/vhost/域名.conf
2.参考配置,自行修改域名和端口

  server {
  listen 80;
  listen 443 ssl http2;
  ssl_certificate /usr/local/nginx/conf/ssl/域名.crt;
  ssl_certificate_key /usr/local/nginx/conf/ssl/域名.key;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
  ssl_prefer_server_ciphers on;
  ssl_session_timeout 10m;
  ssl_session_cache builtin:1000 shared:SSL:10m;
  ssl_buffer_size 1400;
  add_header Strict-Transport-Security max-age=15768000;
  ssl_stapling on;
  ssl_stapling_verify on;
  server_name 域名;
  access_log /data/wwwlogs/域名_nginx.log combined;
  index index.html index.htm index.php;
  include /usr/local/nginx/conf/rewrite/other.conf;
  root /data/wwwroot/域名;
    location ~ {
    proxy_pass http://127.0.0.1:端口;
    include proxy.conf;
  }
}

原因

在路由器上搭建好了网站,只能局域网内访问,想要外部网络也能访问到该怎么做呢?ddns,然而没有公网ip,这时Frp内网穿透就派上用场了。

作用

下面我说下我理解的frp,有错请指正:
frp有服务端和客户端,把服务端安装在有公网ip的服务器上(中转作用),客户端安装在路由器上。当我们访问路由器内容的时候,先访问公网ip的服务器,这台服务器通过和客户端通信,把内容返给我们。

服务器安装

1.有公网ip的服务器,腾讯云vps 学生机,之前申请的,月付1元。
2.安装命令

wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-install-shell/master/frps/install-frps.sh -O ./install-frps.sh
chmod 700 ./install-frps.sh
./install-frps.sh install

3.基本上默认的就行,需要修改的地方

Please input frps vhost_http_port [1-65535](Default vhost_http_port: 8080):  #输入frp进行http穿透的http服务端口
Please input frps vhost_https_port [1-65535](Default vhost_https_port: 4433): #输入frp进行https穿透的https服务端口

4.安装成功后记下自己的信息,通过frps Dashboard http://ip:端口/ 可以查看连接情况
image

5.服务器端命令

更新命令
./install-frps.sh update
卸载命令
./install-frps.sh uninstall
服务器端管理命令
/etc/init.d/frps start
/etc/init.d/frps stop
/etc/init.d/frps restart
/etc/init.d/frps status
/etc/init.d/frps config
/etc/init.d/frps version

路由器设置

1.Misstar Tools 插件管理里面安装frp
2.填入之前服务器端的信息
image

域名解析

1.解析添加a记录指向服务器
image
2.小米路由器后台=>Misstar Tools=>Frp内网穿透=>穿透列表=>添加
image

验证是否成功

1.http://ip:端口/ 查看
image
2.域名:端口 访问能打开页面
image

参考链接:内网穿透利器Frp一键安装脚本及设置教程