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 的方式管理了。

相关推荐
FreeBuf_5 小时前
最新研究揭示云端大语言模型防护机制的成效与缺陷
网络·安全·语言模型
网硕互联的小客服9 小时前
如何利用Elastic Stack(ELK)进行安全日志分析
linux·服务器·网络·安全
浩浩测试一下10 小时前
Authpf(OpenBSD)认证防火墙到ssh连接到SSH端口转发技术栈 与渗透网络安全的关联 (RED Team Technique )
网络·网络协议·tcp/ip·安全·网络安全·php
leagsoft_100310 小时前
联软NSPM自动化策略管理 助力上交所加速国产化替代提升运维效率
运维·网络·自动化
孤寂大仙v11 小时前
【计算机网络】网络层IP协议与子网划分详解:从主机通信到网络设计的底层逻辑
tcp/ip·计算机网络·php
Think Spatial 空间思维11 小时前
【实施指南】Android客户端HTTPS双向认证实施指南
android·网络协议·https·ssl
昔我往昔12 小时前
https和http有什么区别-http各个版本有什么区别
网络协议·http·https
漫步者TZ12 小时前
【Netty系列】解决TCP粘包和拆包:LengthFieldBasedFrameDecoder
java·网络协议·tcp/ip·netty
leagsoft_100312 小时前
筑牢企业网管域安全防线,守护数字核心——联软网管域安全建设解决方案
网络·安全·网络安全
苦学编程的谢13 小时前
Java网络编程API 1
java·开发语言·网络