笨猫博客

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

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

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

    最新 热点 随机
    最新 热点 随机
    Aeroshell 智能终端-你的运维好帮手 过滤iOS烦人的开屏广告18Bit DNS 忘掉“学”英语,开始“接触”英语!一键给你的浏览器装一个“英语环境”生成器 软软一键开关 --提供多个 Windows 系统开关,例如保持常亮、隐藏桌面图标 2025年Shadowrocket(小火箭)最新苹果ios配置使用图文教程 MoonTV 客户端 v1.0.0 发布!
    忘掉“学”英语,开始“接触”英语!一键给你的浏览器装一个“英语环境”生成器软软一键开关 --提供多个 Windows 系统开关,例如保持常亮、隐藏桌面图标过滤iOS烦人的开屏广告18Bit DNSAeroshell 智能终端-你的运维好帮手
    搜狗拼音弹出str数据文件格式错误解决办法 加快 Wordpress 载入速度的小技巧 Facekoo:多功能立体性娱乐社区网站 IDM+迅雷的结合体来了 Gopeed,支持全平台(油管、推特)的下载神器和插件! 一款支持上传/删除等操作的PHP目录列表程序:Evoluted Directory Listing 那村 - 网络您的家庭!
    最近评论
    dk 发布于 1 个月前(09月22日) 哈哈哈哈
    天天下载Ttzip 发布于 2 个月前(09月15日) 很棒的网站!感谢分享,谢谢站长!!@天天下载Ttzip
    诗音 发布于 2 个月前(08月29日) 时间改到2099年在暂停更新也可以
    vip券网 发布于 3 个月前(08月01日) 写的很详细,赞 :razz: :evil:
    萧瑟 发布于 4 个月前(07月14日) 这个我也用了好久,不知道啥时候能上IP证书
    标签
    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