Frp内网穿透

本文介绍了Frp内网穿透的配置,包括服务端和客户端的设置,重点关注Linux和Windows客户端的22及3389端口的穿透。同时提到了服务端的安全配置以及使用中可能遇到的问题和解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Frp内网穿透

所有经过服务器的内网穿透都是有一个服务端和客户端,因为都需要借助服务器的公网ip来访问进而达到内网穿透的效果。

frp的github开源地址:https://github.com/fatedier/frp

frp的说明文档:https://gofrp.org/docs/

其实他的github已经很完整的说明了,我这里只不过是进行一个快速的说明,更多更深的功能还是要参考frp的说明文档。

1. Frp服务端配置

  1. 获取frp可执行程序
# 1. 下载
1. wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz

# 2. 解压
tar -xvf frp_0.44.0_linux_amd64.tar.gz

# 3. 进入frp目录
cd frp_0.44.0_linux_amd64/

# 4. 删除客户端,避免干扰,frps配置文件我们也删
rm frpc* #frpc包含c的都是客户端相关的文件
rm frps_full.ini frps.ini LICENSE
  1. 对配置文件进行配置
# 为了能够快速使用,这里配置内网穿透最简单的功能
# 1. nano frps.ini ,复制下面内容到frps.ini中

[common]
#此ip代表你服务器的ip
bind_addr = 0.0.0.0
#服务器
bind_port =  10024

dashboard_addr = 0.0.0.0
dashboard_port = 5000
dashboard_user = admin
dashboard_pwd = 123456

# 2. 运行 frps 服务端程序
./frps -c frps.ini

root@fzj:~/frp/frp_0.44.0_linux_amd64# ./frps -c frps.ini
2022/09/08 15:58:54 [I] [root.go:209] frps uses config file: frps.ini
2022/09/08 15:58:54 [I] [service.go:194] frps tcp listen on 127.0.0.1:7000
2022/09/08 15:58:54 [I] [service.go:293] Dashboard listen on 0.0.0.0:5000
2022/09/08 15:58:54 [I] [root.go:218] frps started successfully
#出现该这样,就说明服务端配置好了

# 3. 进一步查看是否配置好
用浏览器访问 服务器公网ip:dashboard_port ,我上面配置了5000端口,我的公网ip是:8.210.95.55
因此我访问 8.210.95.55:5000就能登录frp的管理后台。上面我们设置了登录的账号密码是admin 和 123456。进入后台。说明我们已经完全配置好了服务端。

# 4. 此处需要注意的点有几个
1. 登录你服务器的运营商,比如阿里云腾讯云。登录其后台,打开安全组,开放对应的端口。比如上面使用了7000端口和5000端口。(此处必定要注意)

2. 第二个点,注释不要写在配置参数的后面

2. 客户端配置

客户端我这里会展示linux端和window端,linux端展示 ssh的22端口内网穿透,和window端3389内网穿透,这两个端口都是我们常用的端口。也很多朋友使用frp的原因

2.1 linux端配置

  1. 获取frp可执行程序
# 1. 下载
1. wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz

# 2. 解压
tar -xvf frp_0.44.0_linux_amd64.tar.gz

# 3. 进入frp目录
cd frp_0.44.0_linux_amd64/

# 4. 删除客户端,避免干扰,frps配置文件我们也删
rm frps* #frpc包含c的都是客户端相关的文件
rm frpc_full.ini frpc.ini LICENSE
  1. 对配置文件进行配置

此处把22端口映射的公网ip的6000端口

# 1. nano frpc.ini ,复制下面内容到frps.ini中
[common]
server_addr = 8.210.233.213 (更换为自己服务器地址,我此服务器已经过期)
server_port = 10024

[ssh2cc]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 10081

# 2. 运行 frpc 服务端程序
./frpc -c frpc.ini
  1. 使用putty链接
输入
ip:8.210.233.213
端口:10081
就可以远程连接了

2.1 window客户端配置

  1. 获取frp可执行程序
1. wget  https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_windows_amd64.zip

2. 解压
  1. 对配置文件进行配置
# 1. nano frpc.ini ,复制下面内容到frps.ini中
[common]
server_addr = 8.210.233.213
server_port = 10024

[rdp]
type = tcp
local_ip = 127.0.0.1
#我自己改了端口,默认是3389
local_port = 5269
remote_port = 10089

2. 建一个start.bat
复制指令
frpc.exe -c frpc.ini
到start.bat中。双击就可以运行
  1. 远程连接
1. 按住win+r键
2. 输入mstsc远程连接指令
3. 输入 8.210.233.213:10089

3. 服务端常用的配置

学会了上面我们已经能够进行内网穿透了,但是对于安全还是考虑不周到。加入别人知道你的ip和端口就能够连接,而且数据传输也是明文的,也没有log记录等。这个章节就是解决这些问题

  1. 常用的服务端配置

[common]
#此ip代表你服务器的ip
bind_addr = 0.0.0.0
#服务器
bind_port =  10024

dashboard_addr = 0.0.0.0
dashboard_port = 5000
dashboard_user = admin
dashboard_pwd = 123456

#添加token认证,只有token对的人才能连进来
token = gQFWBODEEeS0p2JE 

#设置log记录
log_file = ./frps.log
# debug, info, warn, error
log_level = info
log_max_days = 3

#心跳时间
heartbeat_timeout = 60
  1. p2p等其他配置

后续会介绍其他p2p方案,这里我经常测试,frp的p2p是很难通讯成功

4. 需要注意的点有一下几个

  1. 如果出现下面错误
    2022/09/09 10:39:58 [W] [service.go:128] login to server failed: EOF
    EOF
geekfong@ubuntu:~/frp/frp_0.44.0_linux_amd64$ ./frpc -c frpc.ini
2022/09/09 10:39:58 [W] [service.go:128] login to server failed: EOF
EOF

# 1. 90%是你的ip地址问题,查看你服务端frps是否是自己的ip,客户端frpc填写的ip和端口是否是自己绑定的那个
# 2. 查看你后台一台服务器是否绑定多个ip
# 3. 如果你是公司内网环境,公司如果是大型公司可能会做一些检测。需要对数据进行加密和tls认证,这个网上有人出现过
  1. 确定自己的服务器供应商里的安全组里开了端口,可用telnet工具去查看
telnet ip:端口

telnet 8.210.233.213 80
Trying 8.210.233.213...
Connected to 8.210.233.213.
Escape character is '^]'.
Connection closed by foreign host.

出现如上说明是开通了端口
  1. 注意每个内网穿透的名字都需要不一样
### 使用FRP实现内网穿透配置教程 #### 准备工作 为了成功部署并运行FRP以达成内网穿透的目的,需准备好两部分资源:服务端与客户端。服务端通常是指一台具有公网IP地址的机器,可以是云服务商提供的虚拟专用服务器;而客户端则是位于私有网络内部的目标设备,比如个人计算机或是像树莓派这样的小型计算平台[^4]。 #### 下载安装FRP软件包 对于Linux系统的用户来说,在官方GitHub仓库中能够找到适用于不同架构的操作系统版本下的二进制文件。下载完成后解压至指定目录下即可完成初步安装操作[^3]。 #### 配置服务端(`frps.ini`) 创建或编辑名为`frps.ini`的服务端配置文件,设置必要的参数如下所示: ```ini [common] bind_port = 7000 vhost_http_port = 80 token = your_token_here dashboard_port = 7500 allow_ports = 2000-3000,3001,3003,4000-50000 max_pool_count = 5 subdomain_host = frp.yourdomain.com ``` 上述配置项解释: - `bind_port`: 指定用于监听来自客户端连接请求的TCP端口号; - `vhost_http_port`: 当启用HTTP(S)协议转发功能时所使用的本地监听端口,默认为80; - `token`: 设置通信密钥保障安全性; - `dashboard_port`: Web管理界面开放给外部访问的端口; - `allow_ports`: 明确允许被映射出去的具体范围内的端口列表; - `max_pool_count`: 控制最大并发数限制; - `subdomain_host`: 自定义子域名前缀指向该实例所在主机名[^1]。 #### 启动服务端程序 通过命令行启动服务端进程,并将其设为后台常驻任务执行: ```bash nohup ./frps -c /path/to/frps.ini & ``` #### 编写客户端配置(`frpc.ini`) 同样地,在客户机上也需要建立相应的配置文档——即`frpc.ini`: ```ini [common] server_addr = x.x.x.x # 替换成实际VPS IP 地址 server_port = 7000 # 应同于服务端设定一致 token = your_token_here [ssh] type = tcp # 协议类型 local_ip = 127.0.0.1 # 要暴露出来的本机服务ip local_port = 22 # 对应的服务端口 remote_port = 6000 # 外部可访问到此服务的端口编号 ``` 这里特别注意的是要确保`server_addr`填写正确无误以及两端之间保持相同的认证令牌(token)[^2]。 #### 运行客户端应用程序 最后一步就是在终端里输入下面这条指令让客户端正式上线运作起来: ```bash ./frpc -c /path/to/frpc.ini ``` 此时理论上已经完成了整个过程中的所有步骤,可以通过测试验证是否真的实现了预期效果。如果一切正常的话,则意味着现在可以从互联网上的任何地方轻松触及原本处于防火墙之后的应用和服务了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GeekFong

记录不易,坚持更新

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值