一、应用场景: 最近疫情,很多公司都需要远程办公,一些web服务只能在公司访问,那么如何实现在家也能访问公司内网呢?

二、准备环境:
1、frp使用0.29.0版本:https://github.com/fatedier/frp/releases
2、内网服务器,云服务器(我这边使用的是ContOS7.6),需要其公网IP

三、配置外网服务器:
ps:以下所有端口,需要在阿里云安全组配置中放行,否则会访问不到
1、在外网任意目录(我这边在/www/wwwroot下)新建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、出现以下内容则说明成功
在这里插入图片描述
四、配置内网服务器:
1、同理,在内网任意目录(我这边在/www/wwwroot下)新建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、出现以下内容则说明成功
在这里插入图片描述
五、测试和访问
1、测试web服务
在浏览器中输入test.cn:8200,是否出现内网的web页面
2、测试ssh服务
在xshell中,按照以下配置,输入内网的账号密码即可访问ssh服务
在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐