frp客户端配置以及安卓手机web环境搭建

作者:Lostape 发布时间:September 2, 2018 分类:学海无涯 1,663 次阅读

FRP官方地址:https://github.com/fatedier/frp/releases
FRPC非官方(貌似编译过的):https://github.com/sunliang711/frpc

找到自己的客户端版本,因为本人是用手机做的服务器,所以用的arm64版。

简单说一下手机怎么配置服务器。

当然是用的俄罗斯大神开发的ksweb,这个集成了php、ngnix、mysql等等软件,一键安装即可,方便快捷免折腾!

安装之前,首先手机要root,本人安装的是KSWEB_3.91.apk,安装后电脑连接手机,找到htdocs目录导入php文件即可。

值得一说的是,root里一定要ksweb自启动,ksweb设置里选择root授权、自动启动、锁定wifi,如果是x86架构估计就爽歪歪了,可惜本人的不是。

之后就要想怎么折腾手机了。

折腾手机,终端模拟器termux必不可少。
小窍门:按住音量键 输入Q 可以激活 触摸功能键,
默认终端是不支持直接输入中文 或者输入法的智能联想词组的,调出触控功能键后从右往左滑动,会出现一个文本框
这里可以输入中文或者输入法联想内容

当然termux也需要获取root权限,这样挂着能保持进程和运行状态。

一般折腾手机的话,想要进入sdcard的话。

cd /sdcard/子目录 #进入子目录
su #提root权限
chmod 777 file #修改文件运行权限

想要手机运行frp(可能需要编译版),文件执行权限必不可少,我折腾了半天,frpc都无法运行,后来查了下,才知道在sdcard一些文件没有执行权限,所以接下来就要用的另一个神器。

这就是大名鼎鼎的RE文件管理器,当然首先要获得root权限。

接下来就是要修改frpc以及frpc.ini的运行权限了,我是都改成了777,省的权限不足运行失败。

修改了权限运行客户端就很简单了。

当然修改frpc.ini也必不可少。

[common]  #名称唯一,随意取
server_addr = #服务器ip
server_port = 7000  #frp服务器端口

[ssh]  #名称唯一,随意取
type = tcp  #类型可以是ssh http https tcp 等
local_ip = 192.168.0.15 #客户端子网IP
local_port =8080        #客户端子网端口
remote_port = 6000       #数据转发路径
#启用加密
use_encryption = true
#启用压缩
use_compression = true
[web]  #名称唯一,随意取
type = http    #类型可以是ssh http https tcp 等
local_ip = 192.168.0.15 #客户端子网IP
local_port = 8001    #客户端子网端口
custom_domains = xxx.xxx.xxx.com #绑定自定义域名

简单运行:

./frpc -c ./frpc.ini

后台保持

setsid ./frpc -c ./frpc.ini

这个命令xshell是可以用,不知道termux支持不。

OK,可以域名+remote_port端口看看本地web穿透成功与否。

另外还可以通过域名+7500端口查看frp的状态以及代理统计信息展示,登录的用户名以及密码是服务端配置的。

因为访问是通过域名+端口访问的,这样很不方便,这里我们可以用ngnix的配置文件映射一下80端口。

#user  nobody;
worker_processes  2;
worker_cpu_affinity 01 10;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;
    
    upstream wx {
       ip_hash;
       server localhost:8080 weight=1 max_fails=3 fail_timeout=60s;
           server localhost:8088 weight=1 max_fails=3 fail_timeout=60s;
    }
    
    server {
        listen       80;
        server_name  localhost;
        access_log  /home/nginxlog/wx_access.log;

        location / {
            proxy_redirect          off;
            proxy_set_header Host $host:$server_port;
            proxy_set_header X-Forwarded-For $remote_addr;
            client_max_body_size      20m;
            client_body_buffer_size 128k;
            proxy_connect_timeout   600;
            proxy_send_timeout      600;
            proxy_read_timeout      900;
            proxy_buffer_size       4k;
            proxy_buffers           4 32k;
            proxy_busy_buffers_size 64k;
            proxy_temp_file_write_size 64k;
            proxy_pass http://wx;
        }

    }

        server {
                listen       80;
                server_name  *.javen.abc.com;
                access_log  /home/nginxlog/frp_access.log;

                location / {
                        proxy_redirect          off;
                        proxy_set_header Host $host:$server_port;
                        proxy_set_header X-Forwarded-For $remote_addr;
                        client_max_body_size      20m;
                        client_body_buffer_size 128k;
                        proxy_connect_timeout   600;
                        proxy_send_timeout      600;
                        proxy_read_timeout      900;
                        proxy_buffer_size       4k;
                        proxy_buffers           4 32k;
                        proxy_busy_buffers_size 64k;
                        proxy_temp_file_write_size 64k;
                        proxy_pass http://127.0.0.1:9988/;
                }

        }
    
    server {
        listen       8888;
        server_name  localhost;
        access_log   /home/nginxlog/static_access.log;

        location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css|apk)$
        {
            root /home/ftp/private; 
            expires 7d; 
        }
    }

    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

下面是我在用的。

server {
        listen       80;
       server_name frpc.mycd.in *.frpc.mycd.in;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
        
        
        #微信公众号测试
    location / {
        
            
            
            proxy_pass  http://127.0.0.1:6000;
            #Proxy Settings
            proxy_redirect     off;
            #proxy_set_header Host downloads.openwrt.org;
            proxy_set_header   Host             $host:6000;
            proxy_set_header   X-Real-IP        $remote_addr;
            proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
            proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
            proxy_max_temp_file_size 0;
            proxy_connect_timeout      90;
            proxy_send_timeout         90;
            proxy_read_timeout         90;
            proxy_buffer_size          4k;
            proxy_buffers              4 32k;
            proxy_busy_buffers_size    64k;
            proxy_temp_file_write_size 64k;
        }

    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    #解决反向代理后js css等文件无法加载
     location ~ .*\.(js|css|eot|ttf|woff|svg|otf)$ { 
             proxy_pass http://frpc.mycd.in:8080;
         } 
    
    access_log  /www/wwwlogs/frpc.mycd.in.log;
    error_log  /www/wwwlogs/frpc.mycd.in.error.log;
        
    }

标签: IT, 技术

添加新评论 »