FRP内网穿透-HTTPS代理Web服务

本文详细介绍了如何使用FRP、SSL证书和Nginx配置,通过自定义域名将内网Web服务映射到外网并支持HTTPS访问。步骤包括设置FRP服务端和客户端,配置Nginx以处理HTTP和HTTPS请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过自定义域名访问内网的 Web 服务

本文将介绍使用 自定义域名 通过FRP将内网机器上的web服务映射到外网,并且配置SSL证书,使用 HTTPS协议 访问。

需要使用的工具:

  • 域名一个(解析到 FRP服务端 机器上)
  • 域名证书(若不需要 https 可不需要)
  • NGINX(安装在 FRP客户端 机器上)

1. 配置FRP服务端

  • 配置 frps.toml
    在 frps.toml 文件中添加以下内容,以指定 HTTP 请求的监听端口为 80,HTTPS请求的监听端口为 443:
    # HTTP 类型代理
    vhostHTTPPort = 80
    # HTTPS 类型代理
    vhostHTTPSPort = 443
    
  • 配置好需重启frps服务
    sudo systemctl restart frps
    

2. 配置FRP客户端

  • 配置 frpc.toml
    在 frpc.toml 文件中添加一下内容,以指定访问域名及访问协议:
    [[proxies]]
    name = "web1"
    type = "http"
    localPort = 80
    customDomains = ["test1.example.com"]
    
    [[proxies]]
    name = "web2"
    type = "https"
    localPort = 443
    customDomains = ["test2.example.com"]
    
  • 配置好需重启frpc服务
    sudo systemctl restart frpc
    

3. 配置 NGINX

在内网机器上安装好Nginx

将SSL证书上传到内网机器

新增 nginx 配置(HTTP配置):

server {
	#HTTP 默认访问端口号为 80
	listen 80; 
	#请填写绑定证书的域名
	server_name test1.example.com; 

	location / {
		root   /opt/test/web1;
		try_files $uri $uri/ /index.html;
		index  index.html index.htm;
	}
}

新增 nginx 配置(HTTPS配置):

server {
	#HTTPS默认访问端口号为 443
	listen 443 ssl; 
	#请填写绑定证书的域名
	server_name test2.example.com; 
	#请填写证书文件的相对路径或绝对路径
	ssl_certificate /etc/nginx/conf.d/cert/test2.example.com.crt; 
	#请填写私钥文件的相对路径或绝对路径
	ssl_certificate_key /etc/nginx/conf.d/cert/test2.example.com.key; 
	ssl_session_timeout 5m;
	#请按照以下协议配置
	ssl_protocols TLSv1.2 TLSv1.3; 
	#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
	ssl_prefer_server_ciphers on;

	location / {
		root   /opt/test/web2;
		try_files $uri $uri/ /index.html;
		index  index.html index.htm;
	}
}

配置好需 重载nginx配置

# 校验nginx配置
sudo nginx -t
# 重载nginx配置
sudo nginx -s reload

4. 访问web服务

分别访问 http://test1.example.comhttps://test2.example.com,能访问则说明配置成功。


上一章:FRP内网穿透-客户端(frpc)


FRP (Fast Reverse Proxy) 是一个轻量级的高性能远程访问代理服务,常用于穿透企业内网、防火墙等场景。当需要将HTTPS流量通过FRP转发到内部服务器时,你需要配置FRP服务器以支持HTTPS,并结合Nginx做反向代理。 首先,确保FRP服务器配置文件(frps.ini)已启用HTTPS支持: ```ini [web] type = http ip = 0.0.0.0 port = 7443 # HTTPS监听端口 ssl = true cert = /path/to/frpc.crt # 证书路径 key = /path/to/frpc.key # 私钥路径 ``` 然后,创建FRPC客户端配置文件(frpc.ini),连接到FRPS并指定应用服务: ```ini [web] server = your.frps.url:7443 token = your_token # FRPS验证令牌 domain = example.com # 自定义域名 local_ip = 你的本地IP地址 local_port = 你的服务端口(比如8080) type = https ``` 接着,设置Nginx作为FRP的反向代理,配置一个虚拟主机来处理来自FRP的请求: ```nginx server { listen 443 ssl; server_name example.com; # 使用上述配置中的域名 ssl_certificate /path/to/nginx.crt; ssl_certificate_key /path/to/nginx.key; location / { proxy_pass http://$remote_addr:$proxy_port; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Sec-WebSocket-Key $upstream_http_SEC_WEBSOCKET_KEY; } } ``` 最后,启动FRPS和FRPC服务,并确保它们可以互相通信。当外部用户通过`https://example.com`访问时,Nginx会将请求转发给FRP,由FRP再转发至对应的内部服务器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值