美文网首页春花秋月
内网穿透神器frp

内网穿透神器frp

作者: liamu | 来源:发表于2018-05-11 09:03 被阅读180次

    什么是frp及工作原理

    FRP 服务可以分配给你一个域名让你本地的web项目提供给外网访问, 特别适合向别人展示你本机的web demo 以及调试一些远程的API (比如微信公众号,企业号的开发)。
    frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。

    使用场景

    在许多情况下,我们希望把内部的服务暴露到外网来使用,比如说:

    • 在公司内网开发程序,要和微信联调。
    • 想要随时随地登录家里的树莓派,使用上面的服务

    实验目标

    • 外网通过ssh访问内网机器
    • 访问内网web服务

    本次实验需要有公网服务器1台

    配置说明

    • 下载frp
      下载地址是:https://github.com/fatedier/frp/releases,本次实验用的是linux版本frp_0.13.0_linux_amd64.tar.gz
    • 将下载好的文件解压并进行文件夹
      文件结构如下:
    [root@izwz9e0geg32a83u5wy4ciz frp_0.13.0_linux_amd64]# ls
    frpc  frpc_full.ini  frpc.ini  frps  frps_full.ini  frps.ini  LICENSE
    

    可以在里面看到frps 和 frpc。frps相关的是服务端的程序和配置文件,frpc开头的是客户端的程序和配置文件。

    • 服务端配置(frps.ini)
      在外网服务器上搭建frp服务端frps,修改服务端的配置为如下:
    [root@izwz9e0geg32a83u5wy4ciz frp_0.13.0_linux_amd64]# vim frps.ini
    
    [common]
    bind_port = 7000
    vhost_http_port = 8080
    privilege_mode = true
    privilege_token = ***** # 可选,但是建议加上,客户端需要有同样的值才允许连接,加固安全性
    max_pool_count = 3
    
    • 客户端配置(frpc.ini)
    amu@amu:~/frp_0.13.0_linux_amd64$ vim frpc.ini 
    
    [common]
    server_addr = 112.**.**.2**
    privilege_token = ****
    server_port = 7000
    
    [ssh]
    type = tcp 
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 6000
    
    [web]  
    type = http
    local_port = 80
    custom_domains = 112.**.**.2**
    
    
    • 启动frp服务端
    #nohup ./frps -c ./frps.ini &
    

    运行结果如下

    [root@izwz9e0geg32a83u5wy4ciz frp_0.13.0_linux_amd64]# ./frps -c ./frps.ini
    2018/05/09 17:18:59 [I] [service.go:83] frps tcp listen on 0.0.0.0:7000
    2018/05/09 17:18:59 [I] [service.go:108] http service listen on 0.0.0.0:8080
    2018/05/09 17:18:59 [I] [main.go:112] Start frps success
    2018/05/09 17:18:59 [I] [main.go:114] PrivilegeMode is enabled, you should pay more attention to security issues
    2018/05/09 17:19:15 [I] [service.go:230] client login info: ip [183.**.**.45:45] version [0.13.0] hostname [] os [linux] arch [amd64]
    2018/05/09 17:19:15 [I] [proxy.go:170] [b8a3d006f5e2463b] [ssh] tcp proxy listen port [6000]
    2018/05/09 17:19:15 [I] [control.go:318] [b8a3d006f5e2463b] new proxy [ssh] success
    2018/05/09 17:19:15 [I] [proxy.go:209] [b8a3d006f5e2463b] [web] http proxy listen for host [112.**.**.2**] location []
    2018/05/09 17:19:15 [I] [control.go:318] [b8a3d006f5e2463b] new proxy [web] success
    2018/05/09 17:19:21 [I] [proxy.go:76] [b8a3d006f5e2463b] [ssh] get a new work connection: [183.**.**.45:45]
    
    
    • 启动frpc客户端
    # nohup ./ frpc -c ./frpc.ini &
    

    运行结果如下:

    root@amu:/home/amu/frp_0.13.0_linux_amd64# ./frpc -c ./frpc.ini
    2018/05/09 17:23:31 [I] [control.go:276] [96a57ce5f9251658] login to server success, get run id [96a57ce5f9251658]
    2018/05/09 17:23:31 [I] [control.go:411] [96a57ce5f9251658] [web] start proxy success
    2018/05/09 17:23:31 [I] [control.go:411] [96a57ce5f9251658] [ssh] start proxy success
    

    访问方式

    • ssh访问方式
    ssh -p 6000 user@x.x.x.x  # x.x.x.x 为frp服务端地址
    
    • web访问方式
    http://x.x.x.x:8080/
    

    相关文章

      网友评论

        本文标题:内网穿透神器frp

        本文链接:https://www.haomeiwen.com/subject/wlixdftx.html