FRP正向和反向穿透内网,实现外网与内网资源互通

一、设备需求:

服务端:有公网ip的机器

客户端:在内网中的机器

二、准备工作

1、下载frp(客户端和服务端都要下载该软件):https://github.com/fatedier/frp/releases

linux端下载命令为:wget -c

2、下载proxifier(下载到需要链接内网的机器上):https://www.proxifier.com/

三、步骤

(一)FRPS—服务端配置

1、购买云服务器

可以选阿里云轻量云服务器,流量1000G/月,性价比比较高

2、在服务器上安装FRPS

解压压缩包:tar -zvxf frp_0.38.0_linux_amd64.tar.gz

打开文件夹:cd frp_0.38.0_linux_amd64

chmod +x frps #赋予frps可执行权限

cp frps /use/bin #将frps放到path目录下

mkdir /etc/frp #建立配置文件目录

cp frps.ini /etc/frp #将配置文件复制到对应的配置文件目录

3、配置开机启动

vim /etc/systemd/system/frps.service

下面为文件内容,复制过去即可


Description=FRP Server Daemon

[Service]

Type=simple

ExecStartPre=-/usr/sbin/setcap cap_net_bind_service=+ep /usr/bin/frps

ExecStart=/usr/bin/frps -c /etc/frps.ini

Restart=always

RestartSec=20s

User=nobody

PermissionsStartOnly=true

[Install]

WantedBy=multi-user.target

保存并退出

4、配置云服务器的端口(一般在防火墙设置里)

我们需要开放端口来连接我们的客户端和服务端,端口可以被认为是一道门,只要打开以后才能实现通讯

添加规则——协议选择TCP——端口范围:5000/5100(可以自己设定)——确定

端口设置

5、FRPS配置

vi /etc/frp/frps.ini

配置如下

[common]

bind_port = 5001 #与客户端通讯端口,根据开放的端口来配置

token = 1234567 #可自定义

dashboard_port = 5100 #监控端口,根据开放的端口来配置

dashboard_user = name #可自定义

dashboard_pwd = password #可自定义

保存并退出

打开/usr/bin文件夹,在执行命令,开启frps:./frps -c /etc/frp/frps.ini

(二)FRPC—客户端配置

1、在服务器上安装FRPS

解压压缩包:tar -zvxf frp_0.38.0_linux_amd64.tar.gz

打开文件夹:cd frp_0.38.0_linux_amd64

chmod +x frpc #赋予frps可执行权限

cp frpc /use/bin #将frps放到path目录下

mkdir /etc/frp #建立配置文件目录

cp frpc.ini /etc/frp #将配置文件复制到对应的配置文件目录

2、配置开机启动

vim /etc/systemd/system/frpc.service

下面为文件内容,复制过去即可

[Unit]

Description=FRP Client Daemon

After=network.target

Wants=network.target

[Service]

Type=simple

ExecStart=/usr/bin/frpc -c /etc/frpc.ini

Restart=always

RestartSec=20s

User=nobody

[Install]

WantedBy=multi-user.target

保存并退出

3、FRPC配置

vi /etc/frp/frpc.ini

以下为文件内容

[common]

server_addr = 111.231.1.1 #服务端公网ip

server_port = 5001 #与服务端的通讯端口,跟服务端的bind_port相同

token = 1234567 #与服务端token同,是两者通讯的密钥

[ssh] #正向穿透内网,在外网访问服务器

type = tcp #默认

local_ip = 127.0.0.1 #客户端的ip,一般为路由器分配的内网ip

local_port = 22 #本地端口,默认即可

remote_port = 5022 #远程端口,在SSH中使用的端口

[web] #外网访问内网网页

type = http #默认

local_port = 80 #默认

custom_domains = 30.108.101.108 #服务端外网ip

[plugin_socks] #反向穿透内网,访问内网资源

type = tcp #默认

remote_port = 5066 #根据开放的端口自定义

plugin = socks5 #默认

plugin_user = name #自定义

plugin_passwd = password #自定义

user_encryption = true #默认

use_compression = true #默认

保存并退出

打开/usr/bin文件夹,在执行命令,开启frpc:./frpc -c /etc/frp/frpc.ini

(三)访问监控面板

1、输入:公网ip:5100(输入name和password)


frp监控面板

成功连接后将会出现如图所示效果,proxy counts为3,如果小于3,则说明有的功能未能成功启动

(四)利用Proxifier侵入内网
进入软件主页面-点击Profile-点击Proxy Servers...-点击add

在此窗口点击add
Address:公网ip
port:5066
Protocal:SOCK version 5
Authentication:Enable
Username:自己设置的用户名
Password:自己设置的密码
设置服务器

点击OK-OK完成设置
点击Profile-点击Proxification Rules-选中localhost,点击Edit(我的软件已经改过,新安装的应该都会有)

Applications空着
Target hosts空着(也可以只选择内网ip)
Target port
Action选择带有你ip的那个
OK
OK
屏幕截图 2021-11-16 101816.png

设置完成后即可使用。

参考文献:
frp+proxifier实现内网socks5反向代理
Debian9系统使用FRP内网穿透

你可能感兴趣的:(FRP正向和反向穿透内网,实现外网与内网资源互通)