frp 内网穿透

2024-01-21 08:00:07 12点赞 85收藏 10评论

背景

公司网络没有公网IP,无法将内网服务器的服务通过互联网供给在上海、北京等员工使用,因此需要通过内网穿透服务,通过具备公网IP的搬瓦工服务器,安全、便捷地将内网服务暴露到公网。

安装配置

内网和搬瓦工服务器系统均为Ubuntu.

frp 内网穿透
  1. 选择对应版本,我这里为frp_0.53.2_linux_amd64.tar.gz

  2. 下载

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

  3. 解压缩

    tar -xzvf frp_0.53.2_linux_amd64.tar.gz

  4. 编辑配置文件

    1. 搬瓦工服务器

      在 frps.toml 文件中添加以下内容,以指定 HTTP 请求的监听端口为 8080:

      bindPort = 7000 vhostHTTPPort = 8080

      如果需要配置 HTTPS 代理,还需要设置 vhostHTTPSPort。

    2. 内网服务器

      在 frpc.toml 文件中添加以下内容,确保设置了正确的服务器 IP 地址、本地 Web 服务监听端口和自定义域名:

      serverAddr = "x.x.x.x" serverPort = 7000 [[proxies]] name = "web" type = "http" localPort = 80 customDomains = ["www.yourdomain.com"] [[proxies]] name = "web2" type = "http" localPort = 8080 customDomains = ["www.yourdomain2.com"]

  5. 启动frps 和 frpc

    1. 搬瓦工服务器: ./frps -c ./frps.toml

    2. 内网服务器: ./frpc -c ./frpc.toml

    需要在后台长期运行,结合 systemd 配置(不需要则跳过):

    1. 安装systemd

      如果您的 Linux 服务器上尚未安装 systemd,可以使用包管理器如 yum(适用于 CentOS/RHEL)或 apt(适用于 Debian/Ubuntu)来安装它:

      # 使用 yum 安装 systemd(CentOS/RHEL) yum install systemd # 使用 apt 安装 systemd(Debian/Ubuntu) apt install systemd

    2. 搬瓦工服务器 ,创建 frps.service 文件

      1. 使用文本编辑器 (如 vim) 在 /etc/systemd/system 目录下创建一个 frps.service 文件,用于配置 frps 服务

        $ sudo vim /etc/systemd/system/frps.service

      2. 写入内容

        [Unit] # 服务名称,可自定义 Description = frp server After = network.target syslog.target Wants = network.target [Service] Type = simple # 启动frps的命令,需修改为您的frps的安装路径 ExecStart = /path/to/frps -c /path/to/frps.toml [Install] WantedBy = multi-user.target

      3. 使用 systemd 命令管理 frps 服务

        # 启动frp sudo systemctl start frps # 停止frp sudo systemctl stop frps # 重启frp sudo systemctl restart frps # 查看frp状态 sudo systemctl status frps

      4. 设置 frps 开机自启动

        sudo systemctl enable frps

    3. 内网服务器 ,创建 frpc.service 文件

      1. 使用文本编辑器 (如 vim) 在 /etc/systemd/system 目录下创建一个 frpc.service 文件,用于配置 frpc 服务

        $ sudo vim /etc/systemd/system/frpc.service

      2. 写入内容

        [Unit] # 服务名称,可自定义 Description = frp client After = network.target syslog.target Wants = network.target [Service] Type = simple # 启动frpc的命令,需修改为您的frpc的安装路径 ExecStart = /path/to/frpc -c /path/to/frpc.toml [Install] WantedBy = multi-user.target

      3. 使用 systemd 命令管理 frpc 服务

        # 启动frp sudo systemctl start frpc # 停止frp sudo systemctl stop frpc # 重启frp sudo systemctl restart frpc # 查看frp状态 sudo systemctl status frpc

      4. 设置 frpc 开机自启动

        sudo systemctl enable frpc

  6. 域名解析

    将 www.yourdomain.com 和 www.yourdomain2.com 的域名 A 记录解析到服务器的 IP 地址 x.x.x.x

  7. 使用浏览器访问 http://www.yourdomain.com:8080 即可访问内网机器上的 80 端口服务,访问 http://www.yourdomain2.com:8080 可以访问内网机器上的 8080 端口服务。

通过反向代理及二级域名访问

  1. 设置域名解析

    通过二级域名 gitlab.yourdomain.com 域名 A 记录解析到服务器的 IP 地址 x.x.x.x ,目前已经可以通过http://gitlab.yourdomain.com:8080 访问内网的gitlab服务

  2. 由于搬瓦工服务器已经安装了aaPanel面板,通过新建网站

frp 内网穿透
  1. 申请SSL证书

frp 内网穿透
  1. 设置反向代理

frp 内网穿透frp 内网穿透
  1. 已可通过http://gitlab.yourdomain.com 访问内网服务器gitlab

作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

展开 收起
10评论

  • 精彩
  • 最新
  • 纯小白,给自己的传送门弄了个frps,然后服务器崩溃了,什么情况。。。

    校验提示文案

    提交
    整啥了?

    校验提示文案

    提交
    传送门 [皱眉] ,就是能电脑穿越到国外那种。再上frps之后就会崩溃,是不是端口冲突了

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 公网机有一键安装脚本,不用这么麻烦的 [皱眉]

    校验提示文案

    提交
    可以的,那方便点

    校验提示文案

    提交
    收起所有回复
  • 搬瓦工是什么 [惊喜]

    校验提示文案

    提交
    国外的 ECS,云服务器提供商。

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
85
扫一下,分享更方便,购买更轻松