frp实现内网穿透

作者: Justin小贾同学 | 来源:发表于2021-05-08 23:29 被阅读0次

    没有公网IP是一件很不方便的事情,尤其是在国内的网络环境。例如在校园网情况下想要使用远程桌面,只能使用第三方远程桌面软件。为了解决这个问题,则需要内网穿透。

    What is frp?

    frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

    准备工作

    在使用frp之前,需要一台有公网IP的服务器,一台需要实现内网穿透的机器客户端。
    另外如果需要搭建web服务穿透,最好好要有域名。
    frp软件包下载地址为:https://github.com/fatedier/frp/releases
    根据自己的系统选择合适、稳定的版本。特别注意,服务器和客户端使用的frp版本要一致

    服务器

    下载frp

    wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz
    

    tar命令解压

    tar -zxv
    

    使用cd指令进入解压出来的文件夹,里面包括了服务器端和客户端程序,以及配置文件实例等

    cd frp_0.36.2_linux_amd64/
    ls
    
    Snipaste_2021-05-08_22-31-51.png

    编辑配置文件

    vi frps.ini
    

    frp运行时占用的端口的需要防火墙允许,frp才能正常运行。防火墙端口配置可参考CentOS 7防火墙 - 简书

    [common]
    #frp监听端口
    bind_port = 7000
    
    #鉴权令牌
    token = 123123
    
    #web代理占用端口
    vhost_http_port = 8080
    
    #开启仪表盘,也就是web后台管理
    dashboard_port = 7700
    dsshboard_user = username
    dashboard_pwd = 123456
    

    [common]bind_port = 7000部分是必须有的配置,为了安全起见,token也必须配置一下。保存配置文件后,就可以启动了。

    ./frps -c ./frps.ini
    
    Snipaste_2021-05-08_22-50-33.png

    到此为止,服务器端就配置好了。

    客户端

    下载frp,前面一系列的操作和服务器端一样

    wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz
    tar -zxv
    cd frp_0.36.2_linux_amd64/
    

    编辑客户端配置文件

    vi frpc.ini
    
    [common]
    server_addr = x.x.x.x
    server_port = 7000
    token = 123123
    
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 6000
    
    [web]
    type = http
    local_port = 80 #本地web监听端口
    custom_domains = xxx.com
    
    [desktop]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 3389
    #remote_port:个人使用端口,不能重复
    remote_port = 1892
    

    保存配置,输入以下指令运行frp客户端。

    ./frpc -c ./frpc.ini
    
    Snipaste_2021-05-08_23-17-05.png

    此时在服务端会看到"start proxy sucess"字样,即连接成功。

    可以通过服务器ip:6000和客户端建立ssh连接。
    win可以通过服务器ip:1892进行远程桌面。
    web服务可以通过xxx.com:8080访问。
    服务器ip:7700可以在web浏览器对frp进行监控。

    如果连接失败,大部分可能是防火墙原因,一定要记得开放对应端口。

    后续frp管理

    此时如果断开与服务端或者客户端的SSH连接(比如关掉了Xshell)也就中止了frp的运行。让服务端的frp和客户端的frp在后台运行,方法很多,这里直接使用nohup指令。
    服务器:

    nohup ./frps -c ./frps.ini &
    

    客户端:

    nohup ./frpc -c ./frpc.ini &
    

    小结

    frp的配置还是比较简单,一些特性功能可直接参考官方文档 | frp

    相关文章

      网友评论

        本文标题:frp实现内网穿透

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