FRP实现外网访问内网服务器的web服务以及ssh服务

一、使用场景

  • 最近疫情,很多公司都需要远程办公,一些web服务只能在公司访问,那么如何实现在家也能访问公司内网呢?
  • 实验室服务器在跑的代码,回到寝室后想看其运行情况,那么如何实现在寝室也能访问实验室内网呢?

二、准备环境

  1. frp使用0.29.0版本:https://github.com/fatedier/frp/releases
  2. 内网服务器,云服务器(我这边使用的是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服务

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦