frp内网穿透 公网访问本地web服务http和https

文章分享 2年前 (2023) hanlong
308 0

frp内网穿透 公网访问本地web服务http和https。

[seriesposts sid=780]
frp内网穿透的一个重要的作用就是在互联网上可以任意机器访问本地电脑的web服务

下面举例子用我的测试域名test.java-er.com 进行穿透

服务器上frps.ini文件增加vhost_http_port=82

[common]
bind_port = 7000
vhost_http_port = 82 #端口自己喜好来定

客户端机器 frpc.ini文件增加节点[web]

[common]
server_addr = 47.95.XX.XX #服务器IP 
server_port = 7000
 
[web]
type = http
local_port = 80 #本地http服务端口
custom_domains = test.java-er.com #服务器的域名

本地客户端机器apache配置文件端口为80,但是域名为test.java-er.com

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/Users/ge/ge/web/php/ge/javaer/h5"
    ServerName test.java-er.com
   # ServerAlias www.dummy-host.example.com
    ErrorLog "logs/dummy-host.example.com-error_log"
    CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
 
<Directory "/Users/ge/ge/web/php/ge/javaer/h5">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

最终访问的地址不是80,是通过了服务器的test.java-er.com:82穿透到本地http的80端口,所以外网访问地址为test.java-er.com:82

我在本地放一个文件index.php

<?php
echo '<meta charset="UTF-8">';
echo '我是月小升本地机器的php文件index.php, 访问我的地址test.java-er.com:82';
?>

访问效果展示
frp内网穿透 公网访问本地web服务http和https

2019-7-21更新
https配置

# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000
 
[test_htts2http]
type = https
custom_domains = test.yourdomain.com
 
plugin = https2http
plugin_local_addr = 127.0.0.1:80
 
# HTTPS 证书相关的配置
plugin_crt_path = ./server.crt
plugin_key_path = ./server.key
plugin_host_header_rewrite = 127.0.0.1

1.本地的服务依然是http
2.https的key和crt 存在本地,配置给frp,不用在apache里配置,apache配置依然是http的。frp会帮助我们转化http为https

2019-08-15 内网机器断电重启动,https服务失效,查了半天
plugin_crt_path = ./server.crt
plugin_key_path = ./server.key

找不到ssl认证文件了。 所以以后配置路径开始就写全路径 /home/ssl/server.crt 就好了。

| 联系我们,咨询报价 ——(点击,查看联系方式)|
版权声明:hanlong 发表于 2023-04-24 10:32:35。
转载请注明:frp内网穿透 公网访问本地web服务http和https | 0660HAO海丰网