美文网首页Linux学习
使用frp反向代理进行局域网穿透(访问内网服务器)

使用frp反向代理进行局域网穿透(访问内网服务器)

作者: 生物数据分析笔记 | 来源:发表于2021-03-29 14:12 被阅读0次
    • 内网穿透需求
      有一台在局域网内的服务器,外网无法访问,利用VPS或者具有公网IP的实体机进行转发,实现局域网外访问该服务器。本次配置局域网和公网系统均为Linux(ubuntu 16.04)。

    • 需要准备VPS和frp软件
      Server 1:校内服务器,外网无法访问;
      Server 2:具有公网IP的VPS(腾讯云、华为云或阿里云等);
      frp软件:可在其GitHub按照系统版本下载。

    • 软件下载与安装
      在服务端(server 1)和客户端(server 2)两个ubuntu系统均下载和解压frp。

    # 获取系统版本,我的server 1和2均为ubuntu x86_64
    arch
    # 下载并解压
    wget https://github.com/fatedier/frp/releases/download/v0.36.2/frp_0.36.2_linux_amd64.tar.gz
    tar -zxvf frp_0.36.2_linux_amd64.tar.gz
    mv frp_0.36.2_linux_amd64 frp
    ls frp/
    

    -rwxrwxr-x 1 1000 1000 9.5M Mar 22 07:00 frpc # c结尾为客户端程序
    -rw-rw-r-- 1 1000 1000 9.3K Mar 22 07:02 frpc_full.ini
    -rw-rw-r-- 1 1000 1000 126 Mar 22 07:02 frpc.ini # c结尾为客户端配置文件
    -rwxrwxr-x 1 1000 1000 13M Mar 22 07:00 frps # s结尾为服务端程序
    -rw-rw-r-- 1 1000 1000 5.0K Mar 22 07:02 frps_full.ini
    -rw-rw-r-- 1 1000 1000 116 Mar 29 02:59 frps.ini # s结尾为服务端配置文件
    -rw-rw-r-- 1 1000 1000 12K Mar 22 07:02 LICENSE
    drwxrwxr-x 2 1000 1000 4.0K Mar 22 07:02 systemd

    服务端(server 1)需要配置“frps.ini”文件;客户端(server 2)需要配置“frpc.ini”文件。

    • 服务端配置
      按照以下配置修改“frps.ini”文件:
    [common]
    bind_port = 7000
    dashboard_port = 7500
    token = 987654321
    dashboard_user = admin
    dashboard_pwd = admin
    

    如果没有必要,端口均可使用默认值,token、user和password项请自行设置。
    -- “bind_port”表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到。
    -- “dashboard_port”是服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为VPS的IP)查看frp服务运行信息。
    -- “token”是用于客户端和服务端连接的口令,请自行设置并记录,稍后会用到。
    -- “dashboard_user”和“dashboard_pwd”表示打开仪表板页面登录的用户名和密码,自行设置即可。

    配置完成后,运行./frps -c frps.ini,会得到如下输出说明开启成功:

    2021/03/29 03:02:05 [I] [root.go:200] frps uses config file: frps.ini
    2021/03/29 03:02:05 [I] [service.go:192] frps tcp listen on 0.0.0.0:7000
    2021/03/29 03:02:05 [I] [service.go:294] Dashboard listen on 0.0.0.0:7500
    2021/03/29 03:02:05 [I] [root.go:209] frps started successfully
    

    然后,可以运行nohup ./frps -c frps.ini &将程序放在后台。可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为VPS的IP)查看frp服务运行信息。

    • 客户端配置
      接下来,按照如下信息在server 2(内网)配置客户端:vim frpc.ini
    [common]
    server_addr = x.x.x.x
    server_port = 7000
    token = 987654321
    
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 6000
    

    -- “server_addr”为服务端IP地址,填入即可。
    -- “server_port”为服务器端口,填入你设置的端口号即可,如果未改变就是7000
    -- “token”是你在服务器上设置的连接口令,原样填入即可。

    配置好后直接运行./frpc -c ./frpc.ini,输出如下说明运行成功。

    2021/03/29 11:30:33 [I] [service.go:304] [d69b2a6a76e9aacd] login to server success, get run id [d69b2a6a76e9aacd], server udp port [0]
    2021/03/29 11:30:33 [I] [proxy_manager.go:144] [d69b2a6a76e9aacd] proxy added: [ssh]
    2021/03/29 11:30:33 [I] [control.go:180] [d69b2a6a76e9aacd] [ssh] start proxy success
    

    然后直接nohup ./frpc -c frpc.ini &把程序放后台。

    在外网时,直接运行ssh -oPort=6000 username_server1@x.x.x.x即可直接登录。
    x.x.x.x 为服务端(server 2)的IP地址;username_server1为内网server 1中的用户名,输入的密码也为该用户密码。


    参考:
    [1] 使用frp进行内网穿透
    [2] 内网穿透-在家访问校园服务器

    相关文章

      网友评论

        本文标题:使用frp反向代理进行局域网穿透(访问内网服务器)

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