Overfrp内网穿透:使用域名将内网http/https服务暴露到公网

项目地址:https://github.com/sometiny/overfrp

使用overfrp部署穿透服务器,绑定域名后,可使用域名访问内网的http/https服务。

复制代码
用例中穿透服务器和内网机器之间的访问全链路加密,具有ssh2相当的安全级别。

!!!由于内网服务会暴露到公网,请谨慎使用,防止内网资源泄露。!!!

1、启动穿透服务端

bash 复制代码
./overfrp-server server --listen "127.0.0.1:7659" --allow-register --suffix "local.locateat.net"

#控制台输出类似如下内容:
#server started at: 127.0.0.1:7659
#HostKey指纹:ecdsa-sha2-nistp256 SHA256 Nu4RNSjbm9M9dJ9rZ4o887OgqYnl974gRVm+rBg3TKM
#HostKey指纹:ssh-rsa SHA256 Sv1nH+y8QYnvNGNRYz7woIexC0/RTjlgUdJYrRhqcIU

线上部署时需要指定--suffix为自己的域名,并增加一条带'*'的解析到自己的服务。

例如,解析*.local.locateat.net到你自己的服务器。

2、向服务端注册通道标识,用于发布服务,通道标识可复用,注册一次即可。

bash 复制代码
./overfrp-client register --server "127.0.0.1:7659"

#控制台输入类似如下内容:
#通道注册成功,通道标识:EzwVZY2MtEyWmiaQ+3DvRw==
#标识已保存至:F:\xxxxx\.identifier

后续会用到通道标识,用于发布服务。

3、发布服务,--identifier指定前面注册的通道标识

bash 复制代码
./overfrp-client publish --server "127.0.0.1:7659" --identifier "EzwVZY2MtEyWmiaQ+3DvRw==" --target "www.baidu.com:443" --ssl-off-loading --keep-http-host

#控制台输出类似如下内容:
#[*]frp server: 127.0.0.1:7659
#[*]frp publishing...
#[*]frp publish success
#[*]已绑定域名:
#http://www-baidu-com-443-2690fb70ef47.local.locateat.net:7659

浏览器访问 http://www-baidu-com-443-2690fb70ef47.local.locateat.net:7659 可正常打开baidu页面

  • 要用http地址去访问baidu的443端口,所以需要指定--ssl-off-loading来卸载baidu的ssl。

  • 浏览器默认发送的host头不是www.baidu.com,需要指定--keep-http-host保持--target中指定的host。

  • 本用例中publish提供的是对target的单一服务,映射不同的target需要注册不同的--identifier。

可使用--use-stored-identifier自动从通道标识文件读取标识,而不需要每次指定。

访问非https服务时,必须去掉--ssl-off-loading,例如映射本地80端口:

bash 复制代码
./overfrp-client publish --server "127.0.0.1:7659" --use-stored-identifier --target "127.0.0.1:80"

4、默认绑定域名为http协议,如果需要绑定https协议的域名,服务端启动时需要指定证书和私钥。

bash 复制代码
--certificate "./CERTIFICATE.cer"
--private-key "./CERTIFICATE.key"

域名绑定端口默认跟穿透服务器一样,可以使用--http-listen-at--https-listen-at,来指定不同的端口。

bash 复制代码
--http-listen-at "127.0.0.1:8080"
--https-listen-at "127.0.0.1:4343"
例如:如下服务端启动参数
bash 复制代码
./overfrp-server server \
    --listen "127.0.0.1:7659" \
    --allow-register \
    --suffix "local.locateat.net" \
    --certificate "./CERTIFICATE.cer" \
    --private-key "./CERTIFICATE.key" \
    --http-listen-at "127.0.0.1:8080" \
    --https-listen-at "127.0.0.1:4343"

使用overfrp-client publish发布服务时控制台可能输出如下内容:

复制代码
[*]frp server: 127.0.0.1:7659
[*]frp publishing...
[*]frp publish success
[*]已绑定域名:
https://www-baidu-com-443-2690fb70ef47.local.locateat.net:4343
http://www-baidu-com-443-2690fb70ef47.local.locateat.net:8080

两个url均可正常访问baidu.com,注意端口已经变成43438080

相关推荐
Sirius Wu8 小时前
OpenClaw Skill:Matplotlib 可视化技能 + 沙箱双层隔离完整详解
服务器·网络·人工智能·安全·ai·架构·aigc
测试员周周8 小时前
【skills5】一份 spec 生成 k6/JMeter/Locust:性能压测 + 全站截图,上线前的双保险
功能测试·网络协议·测试工具·jmeter·http·自动化·集成测试
J-Tony119 小时前
【Redis】 Redis 是单线程还是多线程
服务器·数据库·mysql
YYYing.13 小时前
【C++大型项目之高性能服务器框架 (七) 】Socket与ByteArray模块
服务器·c++·后端·框架·高性能·c/c++
摇滚侠14 小时前
Linux 零基础教程 09、11、77
linux·运维·服务器
Hardworking66615 小时前
第6章 数据工程
运维·服务器·数据库·数据工程
_kerneler17 小时前
cgroup :限制cpu原理
java·服务器·前端
云飞云共享云桌面18 小时前
河北钣金工厂10个solidworks设计共享一台高性能服务器的云桌面方案
运维·服务器·3d·自动化·负载均衡·制造
wbs_scy18 小时前
仿 muduo 高并发服务器项目:实现 Connection 连接管理模块,并整合 Any 上下文
运维·服务器·网络
Sylvia33.18 小时前
足球数据接口开发实战:如何用火星数据API盘活赛事应用
java·服务器·开发语言·数据库·python