在自建服务器过程中,内网穿透是十分重要的一环,可以将内网服务暴露到公网。
我在文章:私有云服务器搭建教程(保姆级)——台式电脑+ubuntu+docker+nextcloud+mysql+花生壳内网穿透 中提到通过花生壳完成内网穿透的实现。相对于花生壳,frp是一种性价比更好的内网穿透方式。
Frp作为内网穿透的常见手段,其前提条件是:一台配有公网Ip的云服务器(我的是阿里云)以及一个域名(非必须)。
云服务器系统:Alibaba Cloud Linux + 内网服务器系统:Ubuntu 22.04.1 LTS

文章目录

  • 前言
  • 一、frp介绍
    • 1.frp 是什么?
    • 2.为什么使用 frp?
  • 二、Alibaba Cloud Linux介绍
  • 三、安装前的准备:局域网(私网)物理服务器、公网云服务器及域名解析设置
    • 1.局域网(私网)物理服务器配置
    • 2.公网云服务器设置
  • 四、公网云服务器(Alibaba Cloud Linux)安装Frps 服务
    • 1. 安装Frps
    • 2. 设置Frps 服务开机自启
    • 3. 阿里云服务器ESC添加安全组入站规则
  • 五、内网服务器(ubuntu)安装Frp Client端
    • 1. 安装Frpc
    • 2. 设置Frpc 服务开机自启
  • 六 点亮效果
  • 七 踩坑记录
  • 总结
  • 参考链接:

前言

本文主要讲解 Alibaba Cloud Linux 上搭建Frp内网穿透服务的流程。
云服务器系统版本:Alibaba Cloud Linux 3.2104 LTS 64位 (兼容Centos);私网物理服务器操作系统:Ubuntu 22.04.1 LTS。
网上frp教程很多,其中不乏很多高质量的教程,对我自己在搭建Frp内网穿透过程中有很大帮助。但,每个人踩的坑并不相同,我踩了两个坑。故,在此做一下记录。如果能帮助到你,那是我的荣幸~


一、frp介绍

frp中文文档

1.frp 是什么?

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

2.为什么使用 frp?

通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

  • 客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。
  • 采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。
  • 代理组间的负载均衡。
  • 端口复用,多个服务通过同一个服务端端口暴露。
  • 多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。
  • 高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。
  • 服务端和客户端 UI 页面。

二、Alibaba Cloud Linux介绍

随着 CentOS 的停止维护,Alibaba Cloud Linux 成了一个替换方案。
Alibaba Cloud Linux 文档

Alibaba Cloud Linux是阿里云基于龙蜥社区(OpenAnolis)的龙蜥操作系统(Anolis OS)打造的操作系统发行版,在兼容RHEL/CentOS生态的同时,为云上应用程序提供安全、稳定、高性能的定制化运行环境,并针对云基础设施进行了深度优化。

总的来说,Alibaba Cloud Linux兼容CentOS,CentOS上的命令,在Alibaba Cloud Linux同样可以运行。

三、安装前的准备:局域网(私网)物理服务器、公网云服务器及域名解析设置

1.局域网(私网)物理服务器配置

我这里,在内网服务器上已经搭建起了一个服务。现在我需要的就是通过内网穿透,将内网服务器的9001端口,暴露到公网上去。

2.公网云服务器设置

我购买了一台阿里云服务器ESC。本文的公网ip我们用47.99.x.x表示。

四、公网云服务器(Alibaba Cloud Linux)安装Frps 服务

1. 安装Frps

先去GitHub查看frp的最新版本 。找到适配自己系统的安装包。这里我选择:frp_0.44.0_linux_amd64.tar.gz。

下载安装包

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


解压

tar zxf frp_0.44.0_linux_amd64.tar.gz

移动至 /usr/local
在/usr/local/下创建一个frp文件夹。/usr/local目录类似于windows系统的C:/Progrem Files/。用户自己编译的软件默认会安装到这个目录下。

mkdir /usr/local/frp

将frp_0.44.0_linux_amd64移动到 /usr/local/frp 里面

mv frp_0.44.0_linux_amd64/* /usr/local/frp/

进入文件夹

cd /usr/local/frp/

列表显示根目录下的文件

ls


frps就是frp server端的部分;frpc 是frp client端的部分。这里我们只需要关心Server端。
这里我们可以直接删掉frpc、frpc_full.ini、frpc.ini三个文件,节省硬盘空间

find . -name 'frpc*' -exec rm {} \;

修改配置文件:frps.ini

vi frps.ini

键入【i】,修改内容如下:

[common]
# frp server 绑定的端口
bind_port = 7000
# 设置 http 访问端口为 80
vhost_http_port = 80
# 设置域名(保证此域名可用;我们假设你的域名为【subdomain.yourdomain.com】)
subdomain_host = yourdomain.com

【bind_port】:frp客户端连接服务端的端口
【vhost_http_port】:是http访问的端口(外网端口)。我这里设置成80端口。也就是说,在配置正确的前提下,外网可以通过浏览器直接访问【http://47.99.x.x】访问内网服务。
【subdomain_host】:你的一级域名。我们假设你的域名为:【subdomain.yourdomain.com】。【subdomain】是二级域名,【yourdomain.com】是一级域名。如果不需要用到域名则不需要配置此项。

[注意]:
建议1:不要加注释。我在配置ini的时候,加了注释好像会报错。
建议2:新手建议只设置这两个,设置越多越容易出错。建议走通后再慢慢改。

修改完成后。按下Esc退出编辑模式。然后输入:wq保存并退出。

启动frps

./frps -c frps.ini

2. 设置Frps 服务开机自启

创建后台启动模版

vim /usr/lib/systemd/system/frp.service

设置启动模版内容

[Unit]
Description=The nginx HTTP and reverse proxy server
After=network.target remote-fs.target nss-lookup.target[Service]
Type=simple
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit[Install]
WantedBy=multi-user.target

重新加载服务的配置文件

systemctl daemon-reload

现在就可以用 systemctl 套装来控制 frp 了。

对frp服务的启动/停止/重启,查看状态,设置开机自启/关闭开机自启

systemctl start frp
systemctl stop frp
systemctl restart frp
systemctl status frp
systemctl enable frp
systemctl disable frp

这里我们设置frp开机自启,只需要运行 systemctl enable frp 这句命令。

重启服务器

reboot

重启后查看frpc的状态

systemctl status frp


Loaded:loaded Active:active (running) 就说明开机自启成功。

3. 阿里云服务器ESC添加安全组入站规则

云服务器的防火墙需要在云控制台设置。
云服务器ECS->实例->实例详情->安全组->配置规则

添加入站规则
我们这里添加:7000(frp端口)、80(http默认端口)、443(https默认端口)三个端口

五、内网服务器(ubuntu)安装Frp Client端

1. 安装Frpc

下载安装包

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


解压

tar zxf frp_0.44.0_linux_amd64.tar.gz

移动至 /usr/local
同样在/usr/local/下创建一个frp文件夹。

sudo mkdir /usr/local/frp

将frp_0.44.0_linux_amd64移动到 /usr/local/frp 里面

sudo mv frp_0.44.0_linux_amd64/* /usr/local/frp/

进入文件夹

cd /usr/local/frp/

列表显示根目录下的文件

ls

frpc 是frp client端的部分。

修改配置文件:frpc.ini

vi frpc.ini

修改frpc.ini

[common]
server_addr = 47.99.x.x
server_port = 7000[web]
type = http
local_port = 9001
custom_domains = 47.99.x.x[subdomain]
type = http
# 本地 web server 端口
local_port = 9001
# 二级域名名称, 如:www
subdomain = subdomain

【server_addr】:frps云服务的公网ip地址,这里的47.99.x.x是我购买的云服务器ECS的公网ip
【server_port】:frps云服务的端口
【type】:请求类型,建议用http,https需要证书。
【local_port】:本地服务器需要暴露到公网上的服务端口
【custom_domains】:自定义域名。必须设置。建议新手先直接用ip。设置成功之后再改域名。用域名的话还需要配置域名解析和域名备案。
[注意]:
建议1:不要加注释。我在配置ini的时候,加了注释好像会报错。
建议2:新手建议只设置这5项,设置越多越容易出错。建议走通后再慢慢改。

启动frpc

./frpc -c frpc.ini

login to server successs:成功登录到服务端。
[web]start proxy success:启动[web]协议成功。

2. 设置Frpc 服务开机自启

进入到存放开机自启文件的路径:

cd /etc/systemd/system

新建名为frpc的.service文件:

sudo touch frpc.service

编辑上一步新建的文件:

sudo vim frpc.service

然后将下面的代码粘贴进去(先按i键,进入编辑模式,然后点击鼠标右键粘贴):

[Unit]
Description=Frp Client Service
After=network.target syslog.target
Wants=network.target[Service]
Type=simple
Restart=on-failure
RestartSec=5s
ExecStart=/bin/bash -c '/usr/local/frp/frpc -c /usr/local/frp/frpc.ini'[Install]
WantedBy=multi-user.target

注意frpc 和 frpc.ini 的路径,可以根据自己的实际情况修改。

设置开机自启:

sudo systemctl enable frpc

重启服务器

reboot

重启后查看frps的状态

sudo systemctl status frpc

Loaded:loaded Active:active (running) 就说明开机自启成功。

六 点亮效果

frps 和 frpc 打通后,就可以在互联网上通过公网ip访问:我这里是47.99.x.x。

七 踩坑记录

如果,客户端的frpc.ini 里的 custom_domains设置成域名。而你的域名刚好还没备案就会出现下面这个页面。2021年以后,这个阿里云上每一个域名都需要备案。你有两个选择:1:、乖乖备案域名;2、不使用域名,只是用公网ip进行内网穿透。
备案域名需要几个工作日,所以本教程使用公网ip进行内网穿透,必过域名备案步骤。

总结

到此,Alibaba Cloud Linux 搭建Frp内网穿透成功。希望本教程对你有所帮助。

参考链接:

CentOS下搭建Frp内网穿透服务
Alibaba Cloud Linux 文档
frp中文文档

Alibaba Cloud Linux 搭建Frp内网穿透服务(兼容Centos)相关推荐

  1. CentOS下搭建Frp内网穿透服务

    https://blog.csdn.net/kxwinxp/article/details/88428053

  2. frp内网穿透服务搭建

    GitHub - fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewa ...

  3. 快速搭建使用FRP内网穿透服务

    快速搭建使用FRP内网穿透服务 frp是一款流行的跨平台开源免费内网穿透工具,支持 Windows.macOS 与 Linux.你只需一台快速稳定的服务器即可愉快地进行内网穿透,实现家中设备公网直接访 ...

  4. 搭建个人内网穿透服务

    内网穿透 本地电脑上的服务无法通过互联网让其他人访问到,通过内网穿透技术可以为自己本地的服务提供互联网入口,无需将本地服务部署在服务器上,便可以让其他人可以访问 前提准备 本地web服务,访问8080 ...

  5. Mac 系统部署Frp内网穿透服务 实现frpc shell启动脚本启动、停止

    Mac 系统部署Frp内网穿透服务 实现frpc shell启动脚本启动.停止 前言 最近疫情导致居家办公,而工作中需要用到公网地址便于调试,于是就在本机(Mac系统)配置了Frpc内网穿透. 本来想 ...

  6. 一分钟用HCaas搭建Frp内网穿透

    前言 对于内网穿透大家并不陌生,不管你是小白还是开发者都需要一些内网穿透服务,如果自己购买服务器苦恼于带宽小(国内主机商普遍都是1M~10M),从而导致穿透效果并不是很理想,最近博主一直在关注网银互联 ...

  7. frp内网穿透服务使用

    1,frp简介 frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP.UDP.HTTP.HTTPS 等多种协议.可以将内网服务以安全.便捷的方式通过具有公网 IP 节点的中转暴露到公网. ...

  8. 手把手教你搭建FRP内网穿透服务器来远程访问家里的电脑

    什么是FRP? FRP 是一个免费开源的用于内网穿透的反向代理应用,它支持 TCP.UDP 协议, 也为 http 和 https 协议提供了额外的支持. 它可以做什么? 使用FRP可以实现在家里搭建 ...

  9. docker 搭建frp内网穿透以及frp详细使用

    下载说明 去github官网下载最新版本,链接地址:https://github.com/fatedier/frp/releases/download/ windows对应:windows amd版本 ...

  10. 利用Docker和宝塔搭建FRP内网穿透

    小老百姓成本能省则省,能多利用则多利用设备价值,一台放wordpress和测试站点服务器虽然配置不高,但为了发挥更多价值,可以用于日常开发,避免多花费租用其它内网穿透产品. 本教程是在不改变宝塔部署的 ...

最新文章

  1. 深度探索javascript的call和apply面向对象应用
  2. 天猫全球狂欢夜,我竟然被这个“不是人”的家伙给圈了粉!
  3. 宿主机( win 7 系统) ping 虚拟机VMware( cent os 6.6 ) 出现“请求超时”或者“无法访问目标主机”的解决方法...
  4. python __init__ 构造函数
  5. 汇编语言 段前缀的使用 复制内存单元数据到指定位置
  6. 华为BGP动态路由协议理论
  7. MFC 缩放和显示IplImage
  8. 基于Flume的美团日志收集系统(一)架构和设计
  9. 全面详解c语言使用cJSON解析JSON字符
  10. 插件使用 之 Bmap
  11. 老徐自述:《软件自动化测试实战解析_基于Python3编程语言》
  12. python快速入门【三】-----For 循环、While 循环
  13. 安卓电子书格式_全网免费电子书资源,都在这个神器里了
  14. Days14 ContentProvider ContentResolver
  15. 如何在linux下安装rar软件,Linux下安装使用RAR压缩软件的方法
  16. 在互联网行业断断续续这四年间
  17. 零售巨头家乐福在西班牙推出家禽区块链食物追踪平台
  18. Python-docx:读写word文档的Python库
  19. 老毛桃PE修改方法(屏蔽更改主页,屏蔽加装的绿色浏览器)
  20. 【正点原子Linux连载】第四十三章 Linux设备树 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0

热门文章

  1. 变量消元(Varible Elimination)和概率边缘化(Marginalization)的关系
  2. Windows事件查看器介绍
  3. Mysql实现查询5分钟之前的数据
  4. 博客外链应该要怎么养
  5. HIVE函数集合(全)
  6. php 最常用的内置函数大全
  7. mysql 一周签到表_最实用的考勤签到表(上下班签到表);
  8. 共享单车调度_原来共享单车是这样调度的
  9. 人过大佛寺,寺佛大过人
  10. 协成 协成驱动方式 事件驱动