使用frp实现访问内网中的服务器

使用frp实现访问内网中的服务器

一、 准备工作

  1. 具有公网IP的服务器,这里使用的是阿里云轻量服务器
  2. 访问目标设备,就是内网中的服务器
  3. 会简单的Linux基础

二、服务端安装(公网IP端)

  1. 下载压缩包到服务器
    https://github.com/fatedier/frp/releases
  2. 解压
    tar -zxvf frp_0.22.0_linux_amd64.tar.gz
  3. 给文件夹改名,方便使用
    cp -r frp_0.22.0_linux_amd64 frp
  4. 进入frp
    cd frp
  5. 查看一下文件中有什么
    ls -a
  6. 我们只需了解如下几个文件
  • frps
  • frps.ini
  • frpc
  • frpc.ini
  • 前两个文件(s结尾代表server)分别是服务端程序和服务端配置文件,后两个文件(c结尾代表client)分别是客户端程序和客户端配置文件。

因为我们现在正在配置服务端,所以可以删除客户端的两个文件
rm frpc
rm frpc.ini
然后修改frps.ini文件
vim frps.ini
文件格式如下

[common]
bind_port = 7000
dashboard_port = 7500
token = 12345678
dashboard_user = admin
dashboard_pwd = admin
vhost_http_port = 10080
vhost_https_port = 10443

端口可以使用默认值,也可以进行修改,token、user和password可以自行设置

  • “bind_port”表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到。
  • “dashboard_port”是服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为VPS的IP)查看frp服务运行信息。
  • “token”是用于客户端和服务端连接的口令,请自行设置并记录,稍后会用到。
  • “dashboard_user”和“dashboard_pwd”表示打开仪表板页面登录的用户名和密码,自行设置即可。
  • “vhost_http_port”和“vhost_https_port”用于反向代理HTTP主机时使用,本文不涉及HTTP协议,因而照抄或者删除这两条均可。
  1. 编辑完成后保存,按如下命令运行frps即可
    ./frps -c frps.ini
    如果出现如下类似提示则启动成功:
2019/01/12 15:22:39 [I] [service.go:130] frps tcp listen on 0.0.0.0:7000
2019/01/12 15:22:39 [I] [service.go:172] http service listen on 0.0.0.0:10080
2019/01/12 15:22:39 [I] [service.go:193] https service listen on 0.0.0.0:10443
2019/01/12 15:22:39 [I] [service.go:216] Dashboard listen on 0.0.0.0:7500
2019/01/12 15:22:39 [I] [root.go:210] Start frps success
  1. 服务端后台运行
    至此,我们的服务端仅运行在前台,如果Ctrl+C停止或者关闭SSH窗口后,frps均会停止运行,因而我们使用 nohup命令将其运行在后台。输入如下命令开启:
    nohup ./frps -c frps.ini &
    如果出现如下提示则表示正常运行
    nohup: ignoring input and appending output to 'nohup.out'

此时可先使用Ctrl+C关闭nohup,frps依然会在后台运行,使用jobs命令查看后台运行的程序,在结果中我们可以看到frps正在后台正常运行

    [1]+  Running                 nohup ./frps -c frps.ini &

此时访问 x.x.x.x:7500 依然可以打开仪表板界面,至此,服务端即设置完成,你可以关闭SSH窗口了。

客户端配置

frp的客户端就是我们想要访问的目的主机,我这里是一台Linux操作系统的而服务器,其他操作系统配置方法类似。这里下载和解压frp的方法与上面的相同,就不再赘述。

  1. 修改frpc.ini
[common]
server_addr = 服务器ip(具有公网IP的服务器)
token = 12345678
server_port = 7000
 
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22   #当前设备开放的远程连接端口,默认为22
remote_port = 33022
use_encryption = true
use_compression = false
 
[mysql]
type = tcp
local_ip = 127.0.0.1
local_port = 3306
remote_port = 3385
  • “server_addr”为服务端IP地址,填入即可。
  • “server_port”为服务器端口,填入你设置的端口号即可,如果未改变就是7000
  • “token”是你在服务器上设置的连接口令,原样填入即可。

上面frpc.ini的ssh、mysql字段都是自己定义的规则,自定义端口对应时格式如下。

  • “[xxx]”表示一个规则名称,自己定义,便于查询即可。
  • “type”表示转发的协议类型,有TCP和UDP等选项可以选择,如有需要请自行查询frp手册。
  • “local_port”是本地应用的端口号,按照实际应用工作在本机的端口号填写即可。
  • “remote_port”是该条规则在服务端开放的端口号,自己填写并记录即可。
  1. 启动frpc
    ./frpc -c frpc.ini
  2. 后台启动
    nohup ./frpc -c frpc.ini &
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用frp实现穿透功能的方法如下: 1. 首先,你需要准备一台公服务器作为frp的服务端,以及一台需要做转发的内服务器作为frp的客户端。确保这两台服务器可以互相访问。 2. 在公服务器上安装和配置frp服务端。你可以通过下载frp服务端的方式来安装。具体的步骤是,在公服务器上下载frp服务端,并进行配置。 3. 下载frp服务端的方法可以根据你的操作系统来选择适合的版本。一般来说,你可以通过在公服务器上执行命令来下载frp服务端,比如使用wget命令。 4. 下载完成后,你需要进行frp服务端的配置。配置文件通常是一个frps.ini文件,你可以根据自己的需求来修改配置文件的参数,比如端口号、认证方式等等。 5. 在客户端的内服务器上,你需要准备工作。比如,确保内服务器上部署了需要暴露在公上的资源,比如项目接口。 6. 通过scp命令将下载的frp服务端传送到公服务器上,可以使用以下命令:scp -P ssh开放的端口 下载的frp_0.51.2_linux_amd64.tar.gz的位置 登录的账号@公服务器ip:你要拷贝到的公服务器的位置。 7. 在公服务器上解压下载的frp服务端,并执行启动命令,启动frp服务端。 通过以上步骤,你就可以使用frp实现穿透功能了。这样,你就可以在外部访问到内服务器上的资源,而无需在公上部署一套相同的服务。同时,通过内穿透,你可以在家或其他地方访问公司内的资源。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值