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

相关推荐
龙哥说跨境35 分钟前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
懒大王就是我1 小时前
C语言网络编程 -- TCP/iP协议
c语言·网络·tcp/ip
Elaine2023911 小时前
06 网络编程基础
java·网络
海绵波波1072 小时前
Webserver(4.3)TCP通信实现
服务器·网络·tcp/ip
幺零九零零5 小时前
【计算机网络】TCP协议面试常考(一)
服务器·tcp/ip·计算机网络
热爱跑步的恒川5 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程
云飞云共享云桌面6 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
音徽编程8 小时前
Rust异步运行时框架tokio保姆级教程
开发语言·网络·rust
幺零九零零9 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
23zhgjx-NanKon10 小时前
华为eNSP:QinQ
网络·安全·华为