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

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

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


更新

陷入了思维误区,下文中的域名可替换为实际公有云服务器地址(即可不用申请域名),只IP即可,不需要增加http前缀。


前言

目的:可以访问互联网但没有公网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内网穿透服务器_第1张图片

  • 与服务器系统对应的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张图片

  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内网穿透服务器_第3张图片
    登录成功后:
    搭建公有云的FRP内网穿透服务器_第4张图片

3.客户端部署

  1. 使用对应操作系统的客户端程序frp_0.37.1_windows_amd64.zip解压缩。
    只需这两个文件:frpc.exe、frpc.ini
    搭建公有云的FRP内网穿透服务器_第5张图片
  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/
#移动服务配置文件,若/etc/frp/文件夹不存在,则先创建该文件夹 mkdir /etc/frp
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 stop frps

参考

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

你可能感兴趣的:(FRP,java,linux)