一、使用场景
- 最近疫情,很多公司都需要远程办公,一些web服务只能在公司访问,那么如何实现在家也能访问公司内网呢?
- 实验室服务器在跑的代码,回到寝室后想看其运行情况,那么如何实现在寝室也能访问实验室内网呢?
二、准备环境
- frp使用0.29.0版本:https://github.com/fatedier/frp/releases
- 内网服务器,云服务器(我这边使用的是ContOS7.6),需要其公网IP
三、配置外网服务器 (即阿里云、腾讯云的服务器etc)
1、在外网任意目录新建frp文件夹,将frp文件上传解压,若github下载较慢的,可以使用以下命令下载
wget https://github.com/fatedier/frp/releases/download/v0.29.0/frp_0.29.0_linux_amd64.tar.gz
mkdir frp
tar -zxvf frp_0.29.0_linux_amd64.tar.gz -C frp
2、修改frps.ini配置文件
[common]
# 服务端服务的监听端口
bind_port = 8100
# 自己设定的http访问端口
vhost_http_port = 8200
3、保存,然后回到xshell中,必须保证当前路径在frp下,运行frps
./frps -c ./frps.ini
4、出现以下内容则说明成功
5、后台启动的方式
nohup ./frps -c frps.ini >/dev/null 2>&1 &
四、配置内网服务器 (即公司的电脑、实验室的工作站etc)
1、同理,在内网任意目录新建frp文件夹,将frp文件上传解压
2、修改frpc.ini配置文件
[common]
# 服务器IP地址,阿里云ECS公网IP地址,也可以是域名
server_addr = test.cn
# 对应frps.ini中的bind_port设置的端口
server_port = 8100
[web]
#定义转发类型为http(严格)
type = http
#定义所需要转发的本地web服务的端口为80
local_port = 80
#定义访问转发服务的域名(确保使用该域名访问可以解析到有公网IP的服务端)
custom_domains = test.cn
[ssh]
#定义转发类型为tcp(严格)
type = tcp
#由于转发代理的ssh服务在本地,因此填写本地地址
local_ip = 127.0.0.1
#ssh服务本地的监听端口
local_port = 22
#实际开启ssh时连接时访问的端口
remote_port = 6000
3、保存,然后回到xshell中,必须保证当前路径在frp下,运行frpc
./frpc -c ./frpc.ini
4、出现以下内容则说明成功 5、后台启动
nohup ./frpc -c frpc.ini >/dev/null 2>&1 &
五、测试和访问
1、测试web服务
在浏览器中输入test.cn:8200,是否出现内网的web页面
2、测试ssh服务
在xshell中,按照以下配置,输入内网的账号密码即可访问ssh服务