美文网首页
通过Frp内网穿透远程连接局域网中的电脑

通过Frp内网穿透远程连接局域网中的电脑

作者: 歪着比 | 来源:发表于2020-05-08 15:02 被阅读0次

    Frp内网穿透

    Frp 是一个可用于内网穿透的高性能的反向代理应用,支持 tcp, udp 协议,为 http 和 https 应用协议提供了额外的能力,且尝试性支持了点对点穿透。
    项目地址:https://github.com/fatedier/frp

    安装Frp

    FRP 采用 Go 语言开发,支持 Windows、Linux、MacOS、ARM等多平台部署。
    这里我用的是Centos 8,为了方便管理我们把解压后的目录重命名为 frp

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

    FRP 服务端配置

    配置 FRP 服务端的前提条件是需要一台具有公网 IP的设备。

    FRP 默认给出两个服务端配置文件,一个是简版的 frps.ini,另一个是完整版本 frps_full.ini。
    通过frps.ini这个配置可以快速的搭建起一个 FRP 服务端。

    $ cat frps.ini
    
    [common]
    bind_port = 7000 
    默认配置中监听的是 7000 端口,可根据自己实际情况修改。
    
    启动 FRP 服务端
    $ ./frps -c ./frps.ini
    2020/05/08 01:02:31 [I] [service.go:178] frps tcp listen on 0.0.0.0:7000
    2020/05/08 01:02:31 [I] [root.go:209] start frps success
    

    FRP 客户端配置

    编辑 frpc.ini

    $ vim frpc.ini
    
    [common]
    #server_addr 为 FRP 服务端的公网 IP
    server_addr = 192.168.50.11
    #server_port 为 FRP 服务端监听的端口
    server_port = 7000
    # Linu SSH服务
    [ssh]
    #网络协议
    type = tcp
    #填写客户端主机IP
    local_ip = 192.168.50.12
    #Linux远程端口
    local_port = 22
    #代理到服务端的端口这里我用6000
    remote_port = 6000
    # Windows远程服务器
    [rdp]
    #网络协议
    type = tcp
    #填写客户端主机IP
    local_ip = 192.168.50.13
    #Windows远程端口,默认是3389
    local_port = 3389
    #代理到服务端的端口这里我用23389
    remote_port = 23389
    启动 FRP 客户端
    $ ./frpc -c ./frpc.ini
    2020/05/07 23:18:53 [I] [service.go:282] [adbfac88ab64d72f] login to server success, get run id [adbfac88ab64d72f], server udp port [0]
    2020/05/07 23:18:53 [I] [proxy_manager.go:144] [adbfac88ab64d72f] proxy added: [ssh]
    2020/05/07 23:18:53 [I] [control.go:179] [adbfac88ab64d72f] [ssh] start proxy success
    

    我们查看服务端的提示

    2020/05/08 07:18:49 [I] [service.go:178] frps tcp listen on 0.0.0.0:7000
    2020/05/08 07:18:49 [I] [root.go:209] start frps success
    2020/05/08 07:18:55 [I] [service.go:432] [adbfac88ab64d72f] client login info: ip [192.168.50.12:39836] version [0.33.0] hostname [] os [linux] arch [amd64]
    2020/05/08 07:18:55 [I] [tcp.go:63] [adbfac88ab64d72f] [ssh] tcp proxy listen port [6000]
    2020/05/08 07:18:55 [I] [control.go:445] [adbfac88ab64d72f] new proxy [ssh] success
    

    可以看到我们的SSH服务已经成功连接到服务端的6000端口。

    $ ssh root@192.168.50.11 -p 6000
    The authenticity of host '[192.168.50.11]:6000 ([192.168.50.11]:6000)' can't be established.
    ECDSA key fingerprint is SHA256:jwBjW8YC0VaFaTRTJaB8EJDuAZFZ6MBlh6pJbSVjngU.
    Are you sure you want to continue connecting (yes/no)?
    

    可以看到已经可以成功连接到服务器。

    将服务添加至systemctl

    这里以frp服务端为例

    frp/systemd目录下的frps.service复制到/etc/systemd/system/目录下

    $ cp /frp/systemd/frps.service /etc/systemd/system
    复制配置文件和二进制文件到相对应的目录
    $ cp /frps /usr/bin
    $ cp /frps.ini /etc/frp
    重新加载服务配置
    $ systemctl daemon-reload
    设置为开机启动
    $ systemctl enable frps.service
    

    到这里就完成了Frp服务的所有配置,这样就能随时随地的访问我们家中的电脑了。

    相关文章

      网友评论

          本文标题:通过Frp内网穿透远程连接局域网中的电脑

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