热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

搭建公有云的FRP内网穿透服务器

搭建公有云的FRP内网穿透服务器前言一、FRP二、搭建步骤1.准备条件2.服务端部署3.客户端部署4.验证5.开机自启参考前言目的:可以访问互联网但没有公网IP的机器


搭建公有云的FRP内网穿透服务器

  • 前言
  • 一、FRP
  • 二、搭建步骤
    • 1.准备条件
    • 2.服务端部署
    • 3.客户端部署
    • 4.验证
    • 5.开机自启
  • 参考




前言


目的:可以访问互联网但没有公网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自启动出错.


推荐阅读
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • 本文详细介绍了在Centos7上部署安装zabbix5.0的步骤和注意事项,包括准备工作、获取所需的yum源、关闭防火墙和SELINUX等。提供了一步一步的操作指南,帮助读者顺利完成安装过程。 ... [详细]
  • 本文介绍了在RHEL 7中的系统日志管理和网络管理。系统日志管理包括rsyslog和systemd-journal两种日志服务,分别介绍了它们的特点、配置文件和日志查询方式。网络管理主要介绍了使用nmcli命令查看和配置网络接口的方法,包括查看网卡信息、添加、修改和删除配置文件等操作。 ... [详细]
  •     这里使用自己编译的hadoop-2.7.0版本部署在windows上,记得几年前,部署hadoop需要借助于cygwin,还需要开启ssh服务,最近发现,原来不需要借助cy ... [详细]
  • linux 禁止指定ip访问
    linux中如何禁止指定的ip访问呢?比如被别人暴力破解,被别人使用不同的密码尝试登录:所以我想直接禁用这些ip的访问.怎么办呢?解决方案:修改配置文件etchosts.deny把 ... [详细]
  • Django + Ansible 主机管理(有源码)
    本文给大家介绍如何利用DjangoAnsible进行Web项目管理。Django介绍一个可以使Web开发工作愉快并且高效的Web开发框架,能够以最小的代价构建和维护高 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • Linux防火墙配置—允许转发
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 进入配置文件目录:[rootlinuxidcresin-4.0.]#cdusrlocalresinconf查看都有哪些配置文件:[rootlinuxid ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
author-avatar
谁明浪子心
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有