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

相关推荐
东魖几秒前
nfs实验
linux·服务器·centos
桃酥40310 分钟前
day05|计算机网络重难点之 HTTPS和HTTP的区别、HTTPS的工作原理(HTTPS建立连接的过程)、TCP和UDP的区别
计算机网络·http·https·udp·tcp
桃酥40336 分钟前
day04|计算机网络重难点之HTTP/1.0和HTTP/1.1的区别、HTTP/2.0与HTTP/1.1的区别、介绍HTTP/3.0
网络协议·计算机网络·http
葱白有滋味1 小时前
浏览器无法访问非80端口网页
运维·服务器·网络
长安初雪2 小时前
浅析HTTP协议
网络·网络协议·http
懒惰树人2 小时前
渗透测试-百日筑基—SQL注入篇&时间注入&绕过&HTTP数据编码&绕过—下
网络·sql·安全·web安全·http·oracle
白总Server2 小时前
物联网网关确保设备安全
服务器·网络·物联网·安全·web安全·自然语言处理·架构
晨欣2 小时前
ELK 8.15.3 版本Logstash和Kibana与KS配置SSL实现https安全连接
elk·https·ssl
weixi_kelaile5202 小时前
ai智能语音电销机器人可以做哪些事情?
java·linux·服务器·人工智能·机器人·云计算·腾讯云
0725游广川5 小时前
cjson内存泄漏问题注意事项
服务器·json