笨猫博客

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

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

2020-11-01 14623点热度 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
    取消回复

    最新 热点 随机
    最新 热点 随机
    Windows11美化方案教程 简洁、纯HTML导航项目:XG-NAV(开源) outlook邮箱安全修改方案,让你的邮箱安全无忧 Docker容器一键全自动迁移脚本 永久免费 qzz.io 域名 可托管至CloudFlare SSL 证书申请工具 | 免费 HTTPS 证书网页在线申请 Let's Encrypt、ZeroSSL 等 HTTPS 证书 免登录
    Docker容器一键全自动迁移脚本outlook邮箱安全修改方案,让你的邮箱安全无忧简洁、纯HTML导航项目:XG-NAV(开源)Windows11美化方案教程
    Collablog: 大型 Blog 平台建站源码 百度文库免费下载复制运用实践方法 marvel - 打造自己专属的超级英雄 微软出品的实用小工具集PowerToys 手机告别VPN、SSH,免费科学上网 在线检查IP/域名是否被Q(阻断)PHP版
    最近评论
    vip券网 发布于 3 周前(08月01日) 写的很详细,赞 :razz: :evil:
    萧瑟 发布于 1 个月前(07月14日) 这个我也用了好久,不知道啥时候能上IP证书
    梵蒂冈 发布于 2 个月前(07月08日) 士大夫
    HuangWei 发布于 2 个月前(06月16日) 自己手动设置确实很烦,我之前使用过这个,感觉还不错,虽然已经不怎么维护了:https://githu...
    龙笑天 发布于 3 个月前(05月25日) 一直用的萌咖的路过 :smile:
    标签
    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