FRPS配置服务端(腾讯云)、客户端(PC电脑Windows、树莓派Debian)并设置虚拟域名

**1.服务端(腾讯云):**frps.ini

复制代码
[common]
bind_port = 7000
vhost_http_port=8080
vhost_https_port=44344
dashboard_port = 7500
privilege_token = your_password
subdomain_host = example.com
use_encryption = true
encryption_method = tls
dashboard_user = admin
dashboard_pwd = admin

**2.客户端(PC电脑Windows) :**frpc.ini

复制代码
[common]
tls_enable = true # 这一行特别重要,不然Windows无法连接服务端
server_addr = xx.xx.xx.xx # 服务端ip
server_port = 7000
privilege_token = your_password

[pc_test]
type = http
local_ip = 127.0.0.1
local_port = 80
subdomain = win

**3.客户端(树莓派Debian) :**frpc.ini

复制代码
[common]
tls_enable = true
server_addr = xx.xx.xx.xx # 服务端ip
server_port = 7000
privilege_token = your_password

[e45f016390e6]
type = http
local_ip = 127.0.0.1
local_port = 8001
subdomain = raspberry

解释:

1.frps.ini中, "subdomain_host = example.com"是指服务器已经被解析过的域名,即example.com和服务器ip已在云服务器中被解析绑定。

2.PC电脑端Windows和树莓派Debian中的客户端frpc.ini中的"subdomain"参数是指虚拟子域名,在这个例子中,这个设置可以满足我们访问win.example.com和raspberry.example.com时,服务端frps会进行路由,转发到指定客户端上的"local_port"端口上。

3.在PC电脑Windows上,我们可以用python的http.server来模拟网站接收转发信息,python代码如下:

复制代码
import http.server
import socketserver

PORT = 80


# 创建一个简单的HTTP请求处理器
class SimpleHTTPRequestHandler(http.server.SimpleHTTPRequestHandler):
    def do_GET(self):
        # 可以在这里添加处理GET请求的逻辑
        self.send_response(200)
        self.send_header("Content-type", "text/html")
        self.end_headers()
        self.wfile.write(b"Hello, world! This is a response from the server.")


# 设置监听的端口
httpd = socketserver.TCPServer(("", PORT), SimpleHTTPRequestHandler)

print("Serving at port", PORT)
try:
    # 启动服务器
    httpd.serve_forever()
except KeyboardInterrupt:
    # 处理Ctrl+C
    print("Shutting down server.")

    # 关闭服务器
    httpd.server_close()

在树莓派Debian中一样也可以使用这个http.server来模拟,也可以使用Django来运行服务器

注意事项 - 使用frps虚拟域名功能需要注意以下事项:

1.云服务器的域名解析需要解析"*.example.com"到你的服务器公网ip上,示例:

2.除了设置解析以外,还要设置nginx服务器的配置文件,配置一个server,不要嵌入,和其他的server并列:

复制代码
server {
	# 监听的80端口
	listen 80;
	server_name *.example.com;
	location / {
		proxy_pass http://127.0.0.1:8080;
		# 这个Host的header一定要加,不然转发后frp拿不到通过哪个域名访问的,导致转发失败
        proxy_set_header Host $host;
	}
}

好了,到此为止,当我们访问subdomain加上subdomain_host的域名例如:win.example.com时,就会将访问转发PC端Windows上面。

另外,关于frps、frpc在不同系统中的开机自启就不多说了,网上的教程很多,实在是不懂也可以再来留言问我。

相关推荐
BXCQ_xuan1 小时前
Typecho博客使用阿里云cdn和oss:handsome主题进阶版
阿里云·云计算
weixin_307779139 小时前
AWS Glue ETL设计与调度最佳实践
开发语言·数据仓库·云计算·etl·aws
唐僧洗头爱飘柔952713 小时前
(云计算HCIP)HCIP全笔记(十三)本篇介绍虚拟化技术,内容包含:虚拟化资源、虚拟化过程、I/O虚拟化、虚拟化架构KVM和Xen介绍、主流虚拟化技术介绍
笔记·架构·云计算·hcip·kvm·xen·i/o虚拟化
24k小善13 小时前
FlinkJobmanager深度解析
java·大数据·flink·云计算
泛黄的咖啡店13 小时前
FTP-网络文件服务器
云计算·运维开发
Johny_Zhao1 天前
OpenStack 全套搭建部署指南(基于 Kolla-Ansible)
linux·python·信息安全·云计算·openstack·shell·yum源·系统运维
AI_CPU_GPU_Cloud1 天前
云计算市场的重新分类研究
云计算
唐僧洗头爱飘柔95271 天前
(云计算HCIP)HCIP全笔记(九)本篇介绍操作系统基础,内容包含:操作系统组成、分类和定义,Linux的特性结构和Linux版本分类
linux·笔记·华为云·云计算·hcip·openeuler·操作系统概述
阻容降压1 天前
腾讯云物联网平台
云计算·腾讯云
24k小善1 天前
FlinkUpsertKafka深度解析
java·大数据·flink·云计算