【已解决】使用frp实现外网访问内网web服务以及ssh服务

一、应用场景: 最近疫情,很多公司都需要远程办公,一些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服务
在这里插入图片描述

发布了27 篇原创文章 · 获赞 7 · 访问量 3513

猜你喜欢

转载自blog.csdn.net/qq_33966519/article/details/104835455