frp内网穿透搭建-续
内网穿透搭建续
frp简单、高效的内网穿透工具。
frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。
同样的我们可以继续尝试使用内网穿透代理本地其它的服务和设备,使用户能够访问内网的其它服务器。
在前文,我们使用了windows作为内网穿透的客户端,代理了本机的远程服务,从公网远程windows电脑,我们以这台电脑为跳板,让其代理内网其它服务。
通过SSH访问内网服务器
通过简单的配置tcp类型协议,使用用户能够访问内网服务器。
步骤:
1、在具有公网IP的服务器上部署FRPS。这一步已经做完了。我们默认绑定7000端口,在防火墙,云服务器策略中放通。
2、内网部署frpc。我们选择在windows上搭建,已经完成。
3、添加需要代理的内网主机配置。
部署frpc编辑frpc.toml配置文件,在之前的部署中,我们已经添加了frpc本机的rdp代理。所以,接下面再添加一个配置即可。所以现在的配置参考如下:
1 |
|
防火墙放通新的6003端口,可以在frps的dashboard中看到新添加的代理ubuntu-ssh。我们可以从公网访问了。
4、重新启动frps和frpc。
5、访问内网ssh。
使用以下命令通过 SSH 访问内网机器,假设用户名为 test:
1 |
|
连接示例:
通过自定义域名访问内网服务
比如,我在内网的服务器上部署了一个静态博客,使用hexo生成博客页面,hexo的服务端口为4000,想要通过域名hexo.abc.com(示例)访问,要怎么做呢?代理客户端还是以案例的windows为例。
1、域名解析添加一条hexo的记录指向frps的服务器IP。
2、frps.toml添加一条配置
1 |
|
服务器放通80端口,如果服务器上有部署其它的站点业务,可以把vhostHTTPPort端口改为其它不冲突的端口,比如8080。
3、frpc.toml添加一条配置,代理内网服务器的heox服务。
1 |
|
4、服务端和代理客户端重启服务
此时,我们可以通过frps的dashboard面板看到一条新的http代理,说明代理已经成功。
5、通过游览器访问代理的hexo服务,访问http://hexo.abc.com 即可,因本示例vhostHTTPPort端口为80,所以直接访问,如果80端口为其它http服务,可以域名后:加端口号,或者使用nginx反向代理配置实现,方法不唯一。
对外提供简单的文件访问
通过使用 static_file 插件,可以轻松地提供一个基于 HTTP 的文件访问服务,让其他人可以访问指定的文件。
代理内网本机的文件服务
给个示例,内网本机系统windows。
1、frpc.toml添加配置文件
1 |
|
根据实际情况修改 localPath、stripPrefix、httpUser 和 httpPassword。特别注意的是localPath的路径写法,windows下直接复制文件路径游览器访问会提示502。
添加完成,重启frps和frpc程序。frps服务器防火墙放通6004,可以通过frps的dashboard看到已经添加了一台proxy_static_file。
2、游览器访问文件服务
我们在frpc的共享路径中添加一个txt,用于访问测试。
使用浏览器访问 http://x.x.x.x:6004/static/,以查看位于 C:\frp_file_share 目录下的文件。系统会要求输入设置的用户名和密码。
代理内网其它服务器的文件服务
代理本机的我们完成了,代理linux下的文件服务,此路不通了。虽然也能发现添加的代理,不过,访问页面变成404 not found。访问frp的github找到了一条关闭的issues。作者回复不支持,可以在可以在其他机器上跑一个 nginx,然后将 local_ip 设置为那台机器的 ip。
安全的暴露内网服务
通过创建一个只有授权用户能够访问的 SSH 服务代理,实现内网服务的安全暴露。某些内网服务,如果直接暴露在公网上,可能存在安全风险。使用 stcp(secret tcp) 类型的代理可以让您安全地将内网服务暴露给经过授权的用户,这需要访问者也部署 frpc 客户端。
步骤
1、配置frpc.toml。
在需要将内网服务暴露到公网的机器上部署frpc,并添加以下配置:
1 |
|
2、在访问者的机器上部署并配置frpc
在想要访问内网服务的机器上也部署frpc,并创建如下配置: