简介
- 内网穿透:简单地说就是内网的数据让外网可以获取,可以映射到公共网络上,这样就可以在公共网络上访问内网的数据。 内网是不能被外网直接访问的,只能通过一些中转技术,让内网“假装”成外网
- frp:是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。
环境准备
- 一台带有公网的服务器,可以通过云厂商获取需要配置的云主机
- frp工具,可以根据自己的环境选择对应的版本:https://github.com/fatedier/frp/releases
需求
- 本地有一台MAC笔记本电脑,现在想要通过内网穿透之后可以ssh访问到这台设备
部署流程
- 通过https://github.com/fatedier/frp/releases下载frp软件包
由于我的内网PC机是mac arm系统,带公网的服务器是linux系统,所以选择frp_0.49.0_darwin_arm64.tar.gz部署到mac,linux_amd64.tar.gz部署到服务器 - 解压软件,无需部署,可直接 ./frps -c frps.ini 运行,frps.ini对应服务端的配置文件,frps_full.ini是服务端所有可配置的配置项样例,同样的frpc关键字对应客户端的服务和配置
- 修改服务端配置文件
# frps.ini [common] bind_port = 7000 #frps服务监听的端口 token = 123 # 链接口令
- 运行服务端程序./frps -c frps.ini
- 修改客户端配置文件
# frpc.ini [common] server_addr = x.x.x.x # 此处为 vps 的公网ip server_port = 7000 # vps上frps服务监听的端口 token = 123 # 链接口令 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 # 需要暴露的内网机器的端口 remote_port = 9527 # 暴露的内网机器的端口在vps上的端口
- 运行客户端程序./frpc -c frpc.ini
- 测试验证在另一台设备通过公网ssh连接内网的pc机,对应的ssh参数为
- 用户名:内网ssh的用户名
- 密码:内网pc的登录密码
- ip:公网服务器的ip
- port:frpc.ini中的remote_port参数