IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 搭建公有云的FRP内网穿透服务器 -> 正文阅读

[网络协议]搭建公有云的FRP内网穿透服务器


前言

目的:可以访问互联网但没有公网IP的机器提供对外服务时,其他人若想连接该服务需要内网穿透。程序员调试必备。

内网穿透:即 NAT 穿透,进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机。


背景:大部分提供内网穿透的软件大多只有一条免费隧道,不方便。据SAKURA FRP官网有五条免费隧道。
付费又不想付费,恰好本人有一台阿里云服务器,搭建之。


本文搭建的FRP不是源码编译

持续更新中…

一、FRP

1、frp是一个高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务, 支持tcp, udp, http, https等协议类型,并且web服务支持根据域名进行路由转发。----主要是部署简单。
2、frp内网穿透主要用于没有公网IP的用户,实现远程桌面、远程控制路由器、 搭建的WEB、FTP、SMB服务器被外网访问、远程查看摄像头、调试一些远程的API(比如微信公众号,企业号的开发)等。----实现本人主要目的
3、自己搭建的FRP内网穿透服务器原则上提供无限流量、无限域名绑定、不限制网速、不限制连接数的内网穿透服务,但实际流量、网速等受公网服务器限制。

二、搭建步骤

1.准备条件

  • 一台具有公网IP的服务器(本文操作系统为CentOs7.6)
  • 一个域名(需要备案,否则FRP HTTP功能无法使用)

在对应的域名服务提供商 阿里云域名备案页备案,完全可以自己备案(耗时略长),客服会打电话修改认证资料。
在这里插入图片描述

  • 与服务器系统对应的FRP服务端程序(本文使用的服务器端程序为frp_0.37.1_linux_amd64.tar.gz)下载
  • 与客户端对应的FRP客户端程序(本文使用的客户器端程序为frp_0.37.1_windows_amd64.zip)下载
  • xshell(SSH工具)、FileZilla(文件上传工具)

百度网盘FRP下载
提取码:h1dz


解压缩前:
windows 64位:XXX_windows_amd64.zip
windows 32位:XXX_windows_386.zip
linux 64位:XXX_linux_amd64.tar.gz
linux 32位:XXX_linux_386.tar.gz

解压缩后:

frpc:客户端
frpc.ini:客户端简易配置
frpc_full.ini: 客户端详细配置(英文注释)
frps:服务器
frps.ini:服务器简易配置
frps_full.ini:服务器详细配置(英文注释)

2.服务端部署

  1. 使用FileZilla连接公有云服务器,并上传对应的FRP服务端程序。
    上传FRP服务端程序

  2. Xshell连接服务器,对FRP服务端程序解压缩

tar -xzvf frp_0.37.1_linux_amd64.tar.gz
  1. 设置权限
chmod -R 777 /root/frp_0.37.1_linux_amd64
  1. 设置FRP服务器参数文件
vim /root/frp_0.37.1_linux_amd64/frps.ini

参数代码如下(示例):

[common]
bind_addr = 0.0.0.0
#服务器监听端口
bind_port = 10000
#UDP端口
bind_udp_port = 10001
#KCP端口
kcp_bind_port = 10002
vhost_http_port = 80
vhost_https_port = 443
#申请的域名
subdomain_host = 这是你申请的域名
dashboard_addr = 0.0.0.0
#后台管理端口
dashboard_port = 11000
#FRP后台管理页面用户名
dashboard_user = 后台用户名
#FRP后台管理页面密码
dashboard_pwd = 后台密码
#链接秘钥
token = 连接认证秘钥
max_pool_count = 100
log_file = ./frps.log
log_level = info
log_max_days = 3

  1. 服务启动
cd /root/frp_0.37.1_linux_amd64/
./frps -c /root/frp_0.37.1_linux_amd64/frps.ini
  1. 后台访问
    浏览器访问 申请的域名:11000 后,输入用户名、密码:
    FRP后台管理登录页面
    登录成功后:
    FRP后台管理首页

3.客户端部署

  1. 使用对应操作系统的客户端程序frp_0.37.1_windows_amd64.zip解压缩。
    只需这两个文件:frpc.exe、frpc.ini
    在这里插入图片描述
  2. 设置FRP客户端参数文件frpc.ini
[common]
#解析的域名,不需要修改
server_addr = 这是你申请的域名
#服务器监听端口,不需要修改
server_port = 10000
#链接密钥,不需要修改
token = 连接认证秘钥
#客户端名称,可以修改
user = company

[ssh01]
#内网TCP代理 tcp OR udp
type = tcp
#内网IP地址
local_ip = 127.0.0.1
#要代理的端口
local_port = 12121
#代理所生成的端口
remote_port = 12121

[ssh02]
#内网TCP代理
type = tcp
#内网IP地址
local_ip = 127.0.0.1
#要代理的端口
local_port = 12122
#代理所生成的端口
remote_port = 8989

#代理内网的网站(域名备案后可使用)
[web01]
#类型http
type = http
#内网IP地址
local_ip = 127.0.0.1
#要代理的端口
local_port = 12123
#子域名:如此时填入的是http,则浏览器输入(http.yourname.xxx)就会访问到此设备
subdomain = company

#代理内网的网站(域名备案后可使用)
[web02]
#类型http
type = http
#内网IP地址
local_ip = 127.0.0.1
#要代理的端口
local_port = 12124
#子域名:如此时填入的是http,则浏览器输入(http.yourname.xxx)就会访问到此设备
subdomain = time
  1. 同级目录下创建bat启动脚本
frpc.exe -c frpc.ini

在这里插入图片描述

  1. 服务启动
    点击start.bat。

4.验证

访问 域名:12121/本地服务的路由 即可。以客户端配置文件配置为准。
例如:xxx.com:12121/hello OR company.xxx.com/index

5.开机自启

服务器启动每次需要手动启动,所以配置FRP开机自启。

#移动服务启动程序
cp /root/frp/frps /usr/bin/
#移动服务配置文件
cp /root/frp/frps.ini /etc/frp/
cd frp/systemd/
#移动自启动文件
cp frps.service /lib/systemd/system
#重新加载服务的配置文件
systemctl daemon-reload
#启动
systemctl start frps
#查看状态
systemctl status frps
#结束
systemctl status frps

参考

Frp服务器搭建–内网穿透.
frp服务器端程序frps自启动出错.

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 00:04:46  更:2021-09-11 00:05:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 1:58:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码