笨猫博客

  • 🍟首页
  • 🍘目录
    • 🥝VPS教程
    • 🍾猫玩技术
    • 🍹干货分享
    • 🍏软件分享
    • 🍩一只猫
  • 🍋工具
    • 🌽IP路由追踪
    • 🍐域名Whois查询
    • 🥘域名被墙查询
    • 🍧IP正常检测
    • 🔥IP端口检测
    • 🍆短网址
    • 🐟VIP音乐播放
    • 🍯KMS激活
  • 🍓链接
  • 🍪联系
  • 🍱登录
    • 🥦登录
    • 🍒注册
关注互联网,生活,音乐,乐此不疲的一只笨猫
  1. 首页
  2. VPS教程
  3. 正文

frp 与免费 SSL证书实现内网穿透并支持 HTTPS 访问

2020-11-01 14249点热度 1人点赞 1条评论

 

准备工作

  1. 一个域名(以下以阿里云为例)
  2. 一台有公网IP的服务器
  3. 一台可以上网的PC
  4. 下载 frp 软件(服务器和局域网 PC 分别下载与操作系统相对应的版本)

域名解析

阿里云控制台》域名》域名列表》解析》域名解析,添加记录:

主机记录 记录类型 解析线路 记录值 TTL
@ A 默认 5.5.5.5(填写服务器实际IP) 默认
www CNAME 默认 sample.cn(填写实际域名) 默认

上面两条记录实现 sample.cn 和 www.sample.cn 指向同样的内容页面。

申请免费 SSL 证书

阿里云控制台》域名》域名列表》管理》基本信息》免费开启 SSL 证书,申请证书:

  1. 选择Symantec证书,然后申请
  2. 选择免费型 DV SSL,然后立即购买
  3. 证书列表页面,选择申请,填写域名等必要信息,一般几分钟内就可以看到证书申请成功了
  4. 下载证书到局域网 PC ,选择Nginx类型证书,解压缩后放入PC 端frp程序目录

配置 frp

frps.ini frp 公网服务器端配置文件 frpc.ini frp 局域网 PC 端配置文件

下载 frp

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

frps.ini

# frps.ini
[common]
bind_port = 5001
# 设置转发端口
vhost_http_port = 80
vhost_https_port = 443

服务器端启动 frps:

  • linux 操作系统下:
./frps -c ./frps.ini
  • Windows 操作系统下
frps -c frps.ini

frpc.ini

# frpc.ini
[common]
# 填写服务器实际IP
server_addr = 5.5.5.5
server_port = 5001

[http-@.sample.cn]
type = http
local_port = 80
# 填写实际域名
custom_domains = sample.cn

[http-www.sample.cn]
type = http
local_port = 80
# 填写实际域名
custom_domains = www.sample.cn

[https-@.sample.cn]
type = https
# 填写实际域名
custom_domains = sample.cn
plugin = https2http
plugin_local_addr = 127.0.0.1:80

# HTTPS 证书相关的配置
plugin_crt_path = ./sample.cn.pem
plugin_key_path = ./sample.cn.key
plugin_host_header_rewrite = 127.0.0.1
plugin_header_X-From-Where = frp

[https-www.sample.cn]
type = https
# 填写实际域名
custom_domains = www.sample.cn
plugin = https2http
plugin_local_addr = 127.0.0.1:80

# HTTPS 证书相关的配置
plugin_crt_path = ./sample.cn.pem
plugin_key_path = ./sample.cn.key
plugin_host_header_rewrite = 127.0.0.1
plugin_header_X-From-Where = frp

局域网 PC 端启动 frpc:

  • linux 操作系统下:
./frpc -c ./frpc.ini
  • Windows 操作系统下
frpc -c frpc.ini

自定义 404 页面

/frp/frps.ini文件增加配置:

# frps.ini
[common]
custom_404_page = ./404.html

/frp/404.html文件内容定制:

<!DOCTYPE html>
<html>
<head>
<title>Not Found</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>The page you visit not found.</h1>
<p>Sorry, the page you are looking for is currently unavailable.<br/>
Please try again later.</p>
<p>The server is powered by <a href="https://github.com/fatedier/frp">frp</a>.</p>
<p><em>Faithfully yours, frp.</em></p>
</body>
</html>

验证效果

正常情况下,下面几种方式均可访问:

  • http://sample.cn
  • https://sample.cn
  • http://www.sample.cn
  • https://www.sample.cn

frp 设置为系统服务

在 ubuntu 系统中基于 systemd 把程序设置为服务,每次系统重启后自动加载。

server systemd ubuntu 配置

在具备公网IP的服务器中,新建文件:/etc/systemd/system/frp-server.service

vi /etc/systemd/system/frp-server.service
or
sudo gedit /etc/systemd/system/frp-server.service

内容如下:

[Unit]
Description=frp-server daemon
Wants=NetworkManager-wait-online.service network-online.target
After=NetworkManager-wait-online.service network.target network-online.target
#After=network.target
[Service]
Type=simple
#User=root
Restart=on-failure
RestartSec=5s
WorkingDirectory=/root/frp
ExecStart=/root/frp/frps -c /root/frp/frps.ini
[Install]
WantedBy=multi-user.target

然后:

sudo systemctl daemon-reload
sudo systemctl enable frpc.service
sudo systemctl disable frpc.service
sudo systemctl start frpc.service
sudo systemctl stop frpc.service
sudo systemctl restart frpc.service
sudo systemctl status frpc.service

client systemd ubuntu 配置

在局域网PC端,新建文件:/etc/systemd/system/frp-client.service

vi /etc/systemd/system/frpc.service
or
sudo gedit /etc/systemd/system/frpc.service

内容如下:

[Unit]
Description=frp-client daemon
Wants=NetworkManager-wait-online.service network-online.target
After=NetworkManager-wait-online.service network.target network-online.target
#After=network.target
[Service]
Type=simple
#User=root
Restart=on-failure
RestartSec=5s
WorkingDirectory=/home/username/frp
ExecStart=/home/username/frp/frpc -c /home/username/frp/frpc.ini
ExecReload=/home/username/frp/frpc reload -c /home/username/frp/frpc.ini
[Install]
WantedBy=multi-user.target

备忘

Linux 解压缩 tar.gz 文件

tar.gz 使用tar命令进行解压

tar -zxvf java.tar.gz

解压到指定的文件夹

tar -zxvf java.tar.gz  -C /usr/java

Linux 重命名文件夹

linux下mv命令既可以重命名,又可以移动文件或文件夹.

例子:将目录a重命名为b

mv a b
标签: frp Linux VPS
最后更新:2020-10-27

笨猫

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

  • 皇家元林

    内网穿透为什么用https2http这个插件呢
    这样外网访问是https。 但是内链都是http开头的。这样会导致css加载问题。
    这是什么情况呢

    2021-10-22
  • razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    取消回复

    最新 热点 随机
    最新 热点 随机
    WinRAR 商业版下载安装和白嫖指南 Certbot申请谷歌免费SSL证书 宝塔面板卸载全解析:命令与脚本两种方式详解 SSL证书密钥类型选择RSA还是ECC算法?对网站的影响及建议 万能 一键dd windows 脚本, 含 win10/win11/server2025官方最精简版,一键激活+VC运行库 煎饼大佬的一键DD/重装脚本
    煎饼大佬的一键DD/重装脚本DD一个轻量的Alpine+Linux+发行版+更轻+更快+更安全LibreTV - 免费在线视频搜索与观看平台万能 一键dd windows 脚本, 含 win10/win11/server2025官方最精简版,一键激活+VC运行库SSL证书密钥类型选择RSA还是ECC算法?对网站的影响及建议宝塔面板卸载全解析:命令与脚本两种方式详解
    铅笔很长,更新很短 每月总是来那么几天 Office365 A1/A1P 全局翻车复活/防翻车方法 站长保姆:网站故障短信提醒 博客专用图标 Redmi AX6000 解锁SSH
    最近评论
    龙笑天 发布于 3 周前(05月25日) 一直用的萌咖的路过 :smile:
    C 发布于 1 个月前(05月04日) 有个更省心的路子,上传到 catbox.moe,然后用 i0.wp.com 做加速(也支持heif格...
    薯条 发布于 3 个月前(03月21日) 这个博客18年了吗,好久了哎
    Q 发布于 3 个月前(03月19日) 您好: 我的一个WORDPRESS站点,安装了 wp telegram插件,我在配置了Bot ...
    喂 发布于 3 个月前(03月08日) 热帖ggww
    标签
    elliptictrue100.10.02
    BLOG ChatGPT Chrome CloudFlare DirectAdmin github Godaddy google kloxo Linux OneDrive OneIndex PHP QQ shadowsocks SNS ssh Typecho VPS web2.0 whmcs Windows wordpress 一键脚本 下载 免费 博客 图文教程 图标 图片 域名 头像 奥运 宝塔面板 插件 教程 日记 有趣 浏览器 游戏 猫 生活 电影 百度 网站 视频 设计 软件 阿里云盘 音乐
    好友
    • glzjin's blog glzjin's blog
    • ZAERA博客
    • 冰沫记
    • 奇它博客
    • 猫腻‘s Blog
    • 猫饭
    • 肥宅之家
    • 萌博
    • 野路子程序员

    COPYRIGHT © 2022 笨猫博客. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang