通过frp实现访问内网ssh与http简明教程

  • 1. 前言
  • 2. 下载与安装
    • 2.1. 公网服务器端:
    • 2.2. 内网客户端:
  • 3. 实现ssh与web访问所需配置
    • 3.1. 公网服务器端
    • 3.2. 内网客户端1
    • 3.3. 内网客户端2
    • 3.4. 客户端相关命令
  • 4. 访问
    • 4.1. 访问服务器端的dashboard查看统计信息
    • 4.2. 访问内网ssh
    • 4.3. 访问内网web

1. 前言

当内网安装有服务例如ssh,web时,因为从公网无法访问内网,需要借助内网穿透的软件。
frp 是一个开源的可用于内网穿透的高性能的反向代理应用,支持 tcp, udp, http, https 协议。
frp的基本原理是在公网搭设一个具有公网ip的服务器,然后建立与内网的通道,转发所有的端口流量到内网相应服务器,实现了内网服务的对外提供。架构图如下:


通过frp实现访问内网ssh与http简明教程_第1张图片
image_1c7bb1plmbvjiqfp31vu11shn9.png-16.2kB

github上的官方说明内容太多,而且没有清晰的结构化和顺序,所以编写了如下教程,针对典型的ssh访问和web访问,给出了简明的步骤和说明,便于快速上手使用。

2. 下载与安装

各种平台的软件包下载地址:

https://github.com/fatedier/frp/releases

包括linux, windows等不同版本。

下面以常见的linux 64位为过程演示

mkdir ~frp
cd ~frp
wget https://github.com/fatedier/frp/releases/download/v0.16.0/frp_0.16.0_linux_amd64.tar.gz
tar -zxvf frp_0.16.0_linux_amd64.tar.gz
cd frp_0.16.0_linux_amd64/

因为下载的文件同时包含服务端和客户端,所以基本无需安装。

2.1. 公网服务器端:

将 frps 及 frps.ini 放到具有公网 IP 的机器上。

2.2. 内网客户端:

将 frpc 及 frpc.ini 放到处于内网环境的机器上。

3. 实现ssh与web访问所需配置

事先申请域名,将域名指向服务器的ip. 这里的域名为 p2pnet.club

3.1. 公网服务器端

编辑 frps.ini

[common]
bind_addr = 0.0.0.0
bind_port = 7000

# udp port to help make udp hole to penetrate nat
bind_udp_port = 7001

dashboard_port = 7500
# dashboard 用户名密码,默认都为 admin
dashboard_user = admin
dashboard_pwd = admin

vhost_http_port = 2780
subdomain_host = p2pnet.club

可通过7500的管理端口来查看连接情况。 具体通过
http://ip:7500/ 来访问。

运行

./frps -c ./frps.ini

3.2. 内网客户端1

修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x;
需要注意多个客户端时字段区域section的 ssh, web的名字不要重复。可以通过ssh, ssh2,web,web2来改变。
ssh的端口在服务端不能重复,设置为7022,7023.

web通过二级域名office,home来区分,可以采用相同的端口配置,这里是2780。

[common]
server_addr = x.x.x.x
server_port = 7000
admin_addr = 127.0.0.1
admin_port = 7400

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7022

[web]
type = http
local_port = 2780
subdomain = office

3.3. 内网客户端2

[common]
server_addr = x.x.x.x
server_port = 7000
admin_addr = 127.0.0.1
admin_port = 7400

[ssh2]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7023

[web2]
type = http
local_port = 2780
subdomain = home

3.4. 客户端相关命令

启动 frpc:

./frpc -c ./frpc.ini

修改配置文件重新载入frpc:

./frpc reload

查看frpc状态:

./frpc status

4. 访问

4.1. 访问服务器端的dashboard查看统计信息

http://p2pnet.club:7500/

4.2. 访问内网ssh

通过 ssh 访问内网机器,假设用户名为 test:

ssh -oPort=7022 [email protected]
ssh -oPort=7023 [email protected]

4.3. 访问内网web

通过浏览器访问内网机器

http://home.p2pnet.club:8080/
http://office.p2pnet.club:8080/

你可能感兴趣的:(通过frp实现访问内网ssh与http简明教程)