问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

使用frp配置内网穿透:保姆级教程

创作时间:
作者:
@小白创作中心

使用frp配置内网穿透:保姆级教程

引用
CSDN
1.
https://blog.csdn.net/weixin_43213815/article/details/121336968

内网穿透技术在现代网络环境中扮演着重要角色,特别是在需要从外部访问内网资源时。本文将详细介绍如何使用frp这一开源工具实现内网穿透,包括其基础知识、使用场景、工作原理以及具体的配置步骤。

基础知识

什么是内网穿透

内网穿透是一种网络连接技术,主要用于在局域网内的设备与外网设备之间建立通信连接。其主要功能包括:

  1. 在端口映射时进行地址转换,将公网地址翻译为私有地址,并通过路由方式实现网络共享。
  2. 解决UDP数据传输不稳定的问题。
  3. 实现不同局域网设备之间的网络通信。

使用场景

内网穿透的主要应用场景包括:

  1. 不同局域网内的设备需要相互访问资源。
  2. 远程办公时需要访问公司内网资源。
  3. 在外网环境下访问内网中的特定服务(如Web服务、文件共享等)。

frp简介

frp是一个开源、简洁易用、高性能的内网穿透和反向代理软件,支持TCP、UDP、HTTP、HTTPS等多种协议。其GitHub项目主页为:https://github.com/fatedier/frp/

frp的作用

  1. 允许内网或防火墙后的设备对外网环境提供HTTP或HTTPS服务。
  2. 支持基于域名的虚拟主机,实现多个域名共用一个端口。
  3. 支持TCP和UDP服务,如通过SSH远程访问内网主机。

frp工作原理

  1. 服务端监听主端口,等待客户端连接。
  2. 客户端连接到服务端主端口,告知需要监听的端口和转发类型。
  3. 服务端fork新进程监听客户端指定的端口。
  4. 外网用户连接到客户端指定的端口,服务端通过与客户端的连接将数据转发到客户端。
  5. 客户端进程将数据转发到本地服务,实现内网对外暴露服务的能力。

实验环境准备

硬件环境

  • 1台VPS:拥有公网地址(推荐使用阿里云VPS)
  • 2台Linux/Windows虚拟机:作为内网机器
  • 1台可联网的设备(如Kali Linux):用于测试

软件环境

  • frp客户端和服务端软件
  • SSH客户端(如PuTTY)
  • 浏览器

VPS选择建议

对于初次购买VPS的用户,推荐选择阿里云的新人特惠套餐。具体链接如下:

https://www.aliyun.com/activity/1111/index?spm=5176.21103406.J_6174043250.1.53321719sUISzv&scm=20140722.M_1294.P_3426.MO_466-ID_5976783-CID_21937-ST_3606-V_1

域名购买

推荐使用阿里云万网进行域名购买,新用户可以享受优惠价格。具体链接如下:

https://wanwang.aliyun.com/domain/?spm=5176.10173289.0.0.2f6b2e77depa6w

实验环境配置

设备
IP地址
说明
Kali
192.168.0.55
测试机(需能访问百度)
Linux
192.168.0.208
内网机器(Linux)
Win7
192.168.0.213
内网机器(Windows)
VPS
your-vps-ip
服务端(公网机器)

frp使用步骤

1. 服务端设置

1.1 下载和安装frp

SSH连接到VPS后,根据处理器架构下载相应的frp版本。以下是针对amd64架构的下载命令:

wget https://github.com/fatedier/frp/releases/download/v0.22.0/frp_0.22.0_linux_amd64.tar.gz

解压并重命名文件夹:

tar -zxvf frp_0.22.0_linux_amd64.tar.gz
cp -r frp_0.22.0_linux_amd64 frp
cd frp

1.2 配置frps.ini

编辑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

启动frps服务:

./frps -c frps.ini

正常启动后,可以通过浏览器访问x.x.x.x:7500(其中x.x.x.x为VPS的IP)查看仪表板界面。

1.3 服务端后台运行

使用nohup命令将frps运行在后台:

nohup ./frps -c frps.ini &

2. 客户端设置

2.1 下载和安装frp客户端

根据客户端设备的情况选择相应的frp程序进行下载。下载链接:

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

2.2 配置frpc.ini

编辑frpc.ini文件,设置客户端参数:

[common]
server_addr = x.x.x.x
server_port = 7000
token = 12345678

[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 7001

[smb]
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 7002

启动frpc服务:

frpc.exe

3. 结果测试

3.1 远程桌面测试

使用Kali Linux测试3389远程连接:

redesktop you-vps-ip:端口

3.2 Web服务测试

通过自定义域名访问部署于内网的Web服务:

  1. 修改frps.ini文件,设置http访问端口为8060:
[common]
bind_port = 7000
dashboard_port = 7500
token = 12345678
dashboard_user = admin
dashboard_pwd = admin
vhost_http_port = 8060
vhost_https_port = 8090
  1. 启动frps服务:
./frps -c ./frps.ini
  1. 修改frpc.ini文件,绑定自定义域名:
[common]
server_addr = your-vps-ip
server_port = 7000
token = 12345678

[web]
type = http
local_port = 8080
custom_domains = www.yourdomain.com

最后,可以在frp管理界面查看详细信息,包括流量和连接状态。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号