首页
首页
文章目录
  1. 简介
  2. 基础环境
  • 单个TCP内网穿透
    1. frps端配置
    2. frpc端配置
    3. 检查
  • 单个HTTP内网穿透
    1. frps端配置
    2. frpc端配置
  • 上面是单个HTTP服务内网穿透,下面是多个HTTP的内网穿透
    1. 安装配置nginx
    2. frps端配置
    3. frpc端配置
  • 使用frp实现内网穿透,支持TCP、HTTP

    简介

    工作中有点小恶心的,公司的虚拟化不归我们运维来用,只能走协同提交申请流程,然后端口映射又要重新提交流程,感觉特别麻烦,所以就有了今天这篇文章,运维嘛,外网服务器是肯定有的,然后通过frp实现内网穿透,不罗嗦看文章吧。

    基础环境

    ip地址 端口 作用/需求
    10.10.76.188 3389 映射到外网 TCP
    123.123.123.123 20000 转发内网3389端口 TCP

    注: 123.123.123.123 举例

    单个TCP内网穿透

    frps端配置

    1、下载frp

    frp下载地址

    frp支持全平台,mac、linux、win

    2、配置frp server
    编辑frps.ini

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [common]
    dashboard_port = 19999
    # dashboard 用户名密码,默认都为 admin 可以关闭,如果关闭 删除掉下面俩行
    dashboard_user = Dzer0
    dashboard_pwd = Dzer0
    bind_port = 20000
    # 绑定服务端口
    token = Dzer0
    # 密码,令牌
    allow_ports = 20000-30000
    # 只允许20000-30000的端口开放

    3、启动frps

    1
    ./frps -c ./frps.ini

    frps服务端启动完成

    frpc端配置

    1、编辑frpc.ini

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    [common]
    server_addr = 123.123.123.123
    # 这里是公网的ip地址
    server_port = 19999
    # 公网的端口
    token = Dzer0
    # 密码,令牌

    [remote_10.10.76.178]
    # 起个名字,方便好认
    type = tcp
    # 协议类型
    local_ip = 127.0.0.1
    # 本机监听
    local_port = 3389
    # 监听端口
    remote_port = 20000
    # 远程启动端口,fprs.ini中限制了端口范围为20000-30000

    2、启动frpc
    在命令行运行

    1
    frpc.exe -c frpc.ini

    frpc启动完成

    检查

    检查frp服务器端运行状态

    1
    2
    3
    4
    5
    6
    7
    [root@iZ2348zybrjZ frp]# ./frps -c ./frps.ini
    2018/10/16 15:35:55 [I] [service.go:130] frps tcp listen on 0.0.0.0:11223
    2018/10/16 15:35:55 [I] [service.go:216] Dashboard listen on 0.0.0.0:19999
    2018/10/16 15:35:55 [I] [root.go:207] Start frps success
    2018/10/16 15:35:55 [I] [service.go:319] client login info: ip [我是马赛克:56834] version [0.21.0] hostname [] os [windows] arch [amd64]
    2018/10/16 15:35:55 [I] [proxy.go:217] [26a00311075a8733] [remote_10.10.76.178] tcp proxy listen port [20000]
    2018/10/16 15:35:55 [I] [control.go:335] [26a00311075a8733] new proxy [remote_10.10.76.178] success

    表示成功
    检查启动是否成功

    单个HTTP内网穿透

    frps端配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    [common]
    dashboard_port = 19999
    dashboard_user = Dzer0
    dashboard_pwd = 2599
    bind_port = 11223
    allow_ports = 20000-30000
    token = Dzer0
    vhost_http_port = 30000
    # 新增的
    subdomain_host = test.com
    # 新增的

    [micro_80]
    type = http
    auth_token = Dzer0
    subdomain = micro
    # 以上均为新增的~

    注意 如果是单个域名的话 映射micro.test.com 到公网ip地址就好了。

    如果需要映射多个 在域名映射列表里面添加 一个 * A记录即可。

    frpc端配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [common]
    server_addr = 公网ip地址
    server_port = 11223
    token = Dzer0

    [micro_80]
    type = http
    local_port = 80
    subdomain = micro

    单个http内网穿透到这里就完成了。

    上面是单个HTTP服务内网穿透,下面是多个HTTP的内网穿透

    前提必备条件 A记录添加好多个域名或者*指向到域名

    安装配置nginx

    nginx.conf配置文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    server {
    listen 8888;
    server_name micro.* protal.* www.*;
    ## send request back to apache ##
    location / {
    client_max_body_size 1000m;
    #frps端口8080
    proxy_pass http://127.0.0.1:30000;
    proxy_redirect off;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    }
    }

    frps端配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    [common]
    dashboard_port = 19999
    dashboard_user = Dzer0
    dashboard_pwd = 2599
    bind_port = 11223
    allow_ports = 20000-30000
    token = Dzer0
    vhost_http_port = 30000
    # 新增的
    subdomain_host = test.com
    # 新增的

    [micro_80]
    type = http
    auth_token = Dzer0
    subdomain = micro

    [protal_8000]
    type = http
    auth_token = Dzer0
    subdomain = protal

    [www_8080]
    type = http
    auth_token = Dzer0
    subdomain = www
    # 以上均为新增的~

    frpc端配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    [common]
    server_addr = 公网ip地址
    server_port = 11223
    token = Dzer0

    [micro_80]
    type = http
    local_port = 80
    subdomain = micro

    [protal_8000]
    type = http
    local_port = 8000
    subdomain = protal

    [www_8080]
    type = http
    local_port = 8080
    subdomain = www

    以上 HTTP多个服务内网穿透完成。

    以上

    End!

    支持一下
    扫一扫,我会更有动力更新
    • 微信扫一扫
    • 支付宝扫一扫