frp 实现 http / tcp 内网穿透(穿透 wordpress )

frp 实现 http / tcp 内网穿透(穿透 wordpress )

  • [1. 背景简介与软件安装](#1. 背景简介与软件安装)
  • [2. 服务端配置](#2. 服务端配置)
    • [2.1 配置文件](#2.1 配置文件)
    • [2.2 wordpress 配置文件](#2.2 wordpress 配置文件)
    • [2.3 frps 自启动](#2.3 frps 自启动)
  • 3.客户端配置
    • [3.1 配置文件](#3.1 配置文件)
    • [3.2 frpc 自启动](#3.2 frpc 自启动)

同步发布在个人笔记frp 实现 http / tcp 内网穿透(穿透 wordpress )

1. 背景简介与软件安装

前面有笔记记录了我们内网穿透的方案:

服务 内网端口 公网服务器 ip 期望实现的公网端口
http 网页应用 80 domain.com 8080
ftp 文件服务器 90 domain.com 9090

公网服务器 domain.com 内网服务器 ssh / frp ssh / frp port: 81 nginx 服务1 port: 8080 port: 91 ngixn 服务2 port: 9090 http 网页应用 port:80 ftp 文件服务器 port:90 用户

frp 工具实现的是内网服务器与公网服务器之间的通信,它由两部分组成,分别是服务端 frps客户端 frpc,服务端 frps 布置在公网服务器上,客户端 frpc 布置在内网服务器上,信息流近似如下(对于我们的方案,nginx 也可以视为"用户"):
访问申请 传递申请 返回服务 传递服务 用户/nginx 公网服务器: frps 服务端 内网服务器: frpc 服务端

frp 安装推荐从 github 下载:frp_release

要注意,不同版本的 frp 配置文件写法不同,老一些的版本使用的 ini 配置文件,新一些的版本使用的toml 格式,推荐大家配置前阅读一下官方的文档frp文档

下载下来后解压获得可运行的二进制文件frpsfrpc,分别拷贝到公网服务器和内网服务器就算安装好了。具体的放置位置与配置文件编写,下面详细记录。

2. 服务端配置

2.1 配置文件

推荐安装位置在公网服务器/usr/local/etc/frp,当然你也可以安装在自己喜欢的地方,下面把路径用server_path/代替。把frps 文件放在路径下,然后在路径下新建配置文件frps.toml
server_path/frps.toml

bash 复制代码
bindPort = 6666			# frps 用来与客户端通信的端口

vhostHTTPPort = 81		# 穿透的http服务的暴露端口
#vhostHTTPSPort = 444	# 如果是https协议用这个字段

auth.token = "your_token"	# 用来认证的令牌,frps和frpc要保持一致

# Server Dashboard,可以查看frp服务状态以及统计信息的后台管理面板
webServer.addr = "0.0.0.0" # 后台管理地址,就是服务器ip地址
webServer.port = 7777 # 你可以自定义
webServer.user = "user" # 后台登录用户名
webServer.password = "your_password" # 后台登录密码

保存好后,可以通过命令运行:

bash 复制代码
./frps -c frps.toml

2.2 wordpress 配置文件

如果要穿透的是 wordpress 服务,只有一点必须要注意,那就是vhostHTTPPort 必须与内网上的 wordpress 端口保持一致,否则就会穿透失败。

比如内网的 wordpress 服务在 192.168.1.2:6060,那么vhostHTTPPort 就必须设置为6060

2.3 frps 自启动

把服务注册为系统服务,并实现开机自启动。

/etc/systemd/system/路径下新建文件frps.service
/etc/systemd/system/frps.service

bash 复制代码
[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=server_path/frps -c server_path/frps.toml

[Install]
WantedBy=multi-user.target

然后终端运行systemctl enable frps.service就把服务注册为开机自启动了,后面就可以用systemctl 的方式管理了。

这时候浏览器访问公网服务器ip:7777,输入设置的用户密码,就能进入 frps 的后台管理界面了。

3.客户端配置

3.1 配置文件

推荐安装位置在公网服务器/usr/local/etc/frp,当然你也可以安装在自己喜欢的地方,下面把路径用client_path/代替。把frpc 文件放在路径下,然后在路径下新建配置文件frpc.toml
client_path/frpc.toml

bash 复制代码
serverAddr = "xx.xx.xx.xx"	# 公网服务器ip
serverPort = 6666			# 公网服务器frps配置的通道端口

auth.token = "your_token" 	# 与frps配置的令牌相同

# http 穿透服务
[[proxies]]
name = "http-1"		# 要为每个服务起一个专属的名字,不能重复
type = "http"		# 选择穿透协议
localPort = 80	# 本地服务的端口
customDomains = ["domain.com"]	# 注意此处是必填项,后面访问服务也必须使用这个域名,用ip等别的方式是不能访问服务的;如果此处填的是ip,则也只能通过ip来访问。
# ftp 穿透服务
[[proxies]]
name = "ftp-1"
type = "tcp"		# 选择tcp协议
localPort = 90		#内网ftp端口
remotePort = 91		#frps的映射端口

保存好后,可以通过命令运行:

bash 复制代码
./frpc -c frpc.toml

此时内网穿透就已经配置好了,可以登录 frps 的后台查看服务情况。也可以和服务端一样,把客户端也注册为自启动服务。

3.2 frpc 自启动

把服务注册为系统服务,并实现开机自启动。

/etc/systemd/system/路径下新建文件frpc.service
/etc/systemd/system/frps.service

bash 复制代码
[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=client_path/frpc -c clientr_path/frpc.toml

[Install]
WantedBy=multi-user.target

然后终端运行systemctl enable frpc.service就把服务注册为开机自启动了,后面就可以用systemctl 的方式管理了。

相关推荐
白帽黑客沐瑶1 天前
【网络安全就业】信息安全专业的就业前景(非常详细)零基础入门到精通,收藏这篇就够了
网络·安全·web安全·计算机·程序员·编程·网络安全就业
树码小子1 天前
Java网络编程:(socket API编程:TCP协议的 socket API -- 回显程序的服务器端程序的编写)
java·网络·tcp/ip
绿箭柠檬茶1 天前
Ubuntu 服务器配置转发网络访问
服务器·网络·ubuntu
FPGA_Linuxer1 天前
FPGA 40 DAC线缆和光模块带光纤实现40G UDP差异
网络协议·fpga开发·udp
real 11 天前
传输层协议UDP
网络·网络协议·udp
路由侠内网穿透1 天前
本地部署 GPS 跟踪系统 Traccar 并实现外部访问
运维·服务器·网络·windows·tcp/ip
喵手2 天前
玩转Java网络编程:基于Socket的服务器和客户端开发!
java·服务器·网络
徐子元竟然被占了!!2 天前
实验-基本ACL
网络
ftpeak2 天前
从零开始使用 axum-server 构建 HTTP/HTTPS 服务
网络·http·https·rust·web·web app
LabVIEW开发2 天前
LabVIEW气体污染无线监测
网络·labview·labview知识·labview功能·labview程序