目录

一 使用场景

二 到Github下载frp

三 解压到/usr/local/frp目录

四 配置云服务器端frps.ini

五 启动frp服务并保持frp服务开机启动和保持启动

六 配置内网环境下Win主机frp客户端

七 使用公司电脑的远程桌面服务访问家里电脑

八 连接多个本地局域网主机以及本地主机权限设置

九 内网机器安全选项设置


一 使用场景

有时我们在公司想访问家里的电脑,但一般情况下运营商不会给我们提供公网IP,访问内网的电脑会很麻烦,需要使用各类三方远程工具。如果我们拥有一台有公网IP的云主机,则可以通过frp轻松远程访问家里内网环境下的电脑。

常规配置方案使用TCP协议进行远程,连接质量不是很理想,使用UDP远程质量更好。

frp穿透原理如图:

二 到Github下载frp

链接内是最新版本,笔者演示的是0.44版本。

笔者是CentOS的云主机,就下载了 amd64的版本,英特尔CPU的Win主机,下载的Win_386版本。

根据服务器内核版本选择对应版本frp服务端&客户端,下载错误版本会在启动时报 端错误 。

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

GitHub 网络不稳定,有可能需要手动下载并上传到云服务器。

三 解压到/usr/local/frp目录

tar zxf frp_0.44.0_linux_amd64.tar.gz
mv frp_0.44.0_linux_amd64 /usr/local/frp

四 配置云服务器端frps.ini

vim frps.ini[common]
bind_port = 7000
#默认frp服务端口,需要在云主机设置里放行,下同。
bind_udp_port = 7001
#自定义的upd端口
token = password
#密码自定义
[common]
dashboard_port = 7500
#看板端口,也需要在云主机中放行。
dashboard_user = admin
dashboard_pwd = admin
#看板账号密码都是可选项

五 启动frp服务并保持frp服务开机启动和保持启动

./frps -c ./frps.ini
vim /etc/systemd/system/frps.service[Unit]
Description=frps daemon
After=syslog.target network.target
Wants=network.target[Service]
Type=simple
ExecStart=/usr/local/frp/frp_0.44.0_linux_amd64/frps -c /usr//local/frp/frp_0.44.0_linux_amd64/frps.ini
#路径错误会导致报错
Restart= always RestartSec=1min[Install] WantedBy=multi-user.target

六 配置内网环境下Win主机frp客户端

1.下载并解压到C:Program Filesfrp目录。

2. 配置frpc.ini

[common]
server_port = 7000
#云主机端口,需要将此端口放行。
server_addr = xxxx
#自己的云主机IP
token = password
#自定义密码,需要和服务器端一致。[RDP]
type = tcp
#必备字段,不开启TCP无法建立UDP连接。
local_ip = 192.168.0.103
#内网主机IP,如有变动需要在此处更新否则无法启动frp客户端。
local_port = 3389
#远程访问的实际端口,下同。
remote_port = 6666
#远程访问端口,需要在云服务器中将其开放,下同。
use_compression = true[RDP-02]
type = udp
local_ip = 192.168.0.103
local_port = 3389
remote_port = 6666
use_compression = true

3. 客户端目录下cmd启动客户端

frpc.exe -c frpc.ini

4. 用下面的指令创建脚本并放进开机启动文件夹内实现开机自启frp客户端。

@echo off
:home
frpc -c frpc.ini
goto home

七 使用公司电脑的远程桌面服务访问家里电脑

连上后点击状态按钮(类似手机信号的那个)可以看到如下提示则成功启用UDP:

八 连接多个本地局域网主机以及本地主机权限设置

最近帮朋友实现了利用笔者的服务器远程访问在家的笔记本:

在他的电脑上安装Frp客户端之后,配置文件中使用相同的Frp服务端口,但远程登录端口remote_port 不同:

[common]
server_port = 不变
server_addr = 不变
token = 不变[SSH]
#名称保持唯一性
type = tcp
local_ip = 192.168.0.103
local_port = 3389
remote_port = xxxx
#修改成新的端口,需要在云服务器中开启
use_compression = true

在服务器管理界面将上面提到的端口开放之后,即可实现远程访问多台内网设备。

九 内网机器安全选项设置

笔者使用微软账号远程访问内网机器,朋友使用本地账号密码。在手机测试联通状态时发现有报错:

查询相关帖子发现在本地安全策略中将网络访问安全设置为经典模式则可以使用本地账号访问内网机器:

希望此篇文章能够帮助到大家。

更多frp使用方法可以参考官方文档。

欢迎大家一起交流~

FRP的UDP协议内网穿透方案/穿透多个内网机器/账户无效问题相关推荐

  1. 用udp实现可靠传输python_一种基于UDP协议实时可靠图像传输方案的制作方法

    本发明设计属于数据传输与通信技术领域,具体涉及一种基于UDP协议(User Datagram Protocol)实时可靠图像传输方案. 背景技术: 随着网络技术的高速发展,无线数据传输在通信.控制等领 ...

  2. 没有公网ip怎么外网访问nas?快解析内网端口映射到公网

    对于NAS用户而言,外网访问是永远绕不开的话题.拥有NAS后的第一个问题,就是搞定NAS的外网访问.不过众所周知,并不是所有的小伙伴都能得到公网IP,由于IPV4资源的枯竭,一般不会被分配到公网IP. ...

  3. 基于5G+MEC的电站行业专网部署方案研究

    摘  要 随着5G正式商用以及新基建对5G应用的大力推进,5G正快速融入工业.能源.医疗等各行各业,成为推动实体经济数字化.网络化.智能化转型升级的关键驱动.主要研究5G专网在发电站领域的部署方案,探 ...

  4. 微信小程序基于udp协议与esp8266进行通信

    1.概述 微信小程序有关于UDP协议的API,具体内容可前往官网查看:整体实现的思路就是利用路由组一个局域网,手机.路由器和esp8266,手机和esp8266连接路由器,登录路由器查看esp8266 ...

  5. 【网络协议趣谈】UDP协议

    对于非底层开发或者应用层开发来讲,最常用的就是UDP和TCP协议.这两个协议经常会被放在一起问,接下来两个协议结合学习 一.TCP和UDP有哪些区别 1.1 TCP面向连接 一般问两个协议的区别时,大 ...

  6. 基于ZYNQ-7000的AI加速器设计之PS端(ARM)网络编程(UDP协议)

    1.开始前的准备工作 关闭电脑防火墙 连接开发板电源 开发板与PC之间串口连接,JTAG下载线连接 PC机与开发板间网线连接,并保证能ping通 2.Vivado端配置 创建工程,具体步骤不详细介绍, ...

  7. frp点对点udp方式内网穿透ssh,不走服务器流量

    frp点对点udp方式内网穿透ssh,不走服务器流量 (2019 年 5 月 30 日) frp ssh 安全连接和服务器安全设置 (2019 年 5 月 29 日) frp 控制台监控dashboa ...

  8. 使用frp配置内网访问(穿透)教程(超详细,简单)

    1 Frp介绍 frp 是一个开源.简洁易用.高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议.frp 项目官网是 https://github.com/fate ...

  9. 【群晖NAS】真·免费内网穿透方案 及踩坑合集

    一.介绍 一篇科普贴,帮助那些刚入门NAS的朋友尽量避免踩坑.因为本人实践了其中几种穿透方案,也积攒了一些经验,跟大家分享一下. 在这里想说一句,现在网上充斥着各种<内网穿透方案对比>,可 ...

最新文章

  1. Science:最新发现哈希可能是大脑的通用计算原理!
  2. 对于生活服务小公司网站的看法
  3. Django中STATIC_URL、STATIC_ROOT、STATICFILES_DIRS 的区别关系
  4. android 之 ListView 里面嵌套 GridView 遇到的问题及其解决方法。
  5. java面向对象计算器怎么写_Java对象简单实用案例之计算器实现代码
  6. ubuntu 下载mysql8_mysql8.0 ubuntu 安装
  7. mysql二进制大文件_Mysql实例Mysql LONGTEXT 类型存储大文件(二进制也可以) (修改+调试+整理)...
  8. 雷云3灯光配置文件_雷蛇的哪种键盘最适合入手?3款最佳雷蛇键盘推荐。
  9. 反射 getDeclaredMethod和getMethod的区别以及用法《实例》
  10. 动态加载JavaScript文件
  11. c#oracle数组超出,急问:System.IndexOutOfRangeException: 索引超出了数组界限解决方案
  12. 最新教程Instagram如何下载并注册
  13. 对付U盘病毒彻底免疫
  14. dirent struct_读取目录时struct dirent结构体的d_type成员一个小问题
  15. SSM实现会议室预约管理系统
  16. koa2 mysql sequelize_[转]使用nodejs-koa2-mysql-sequelize-jwt 实现项目api接口
  17. Node.js笔记--Day5
  18. 【数值分析不挂科】第六章 | 线性方程组直接法 迭代法
  19. 软件项目管理的平衡原则和高效原则
  20. Differential-Linear Cryptanalysis from an Algebraic Perspective 论文阅读笔记

热门文章

  1. 你知道什么是Paradigm shift吗?
  2. 一张图理解内网、外网、动态IP
  3. Postgres-XL9.5简介与集群部署
  4. 有效解决CPU温度过高的方法AMD4200+
  5. Android开发中synchronized的实现原理
  6. AEJoy —— 表达式之自动对焦【JS】
  7. 大学生php实验报告,php实验报告一
  8. 编译原理实验:词法分析
  9. NRF52840 DFU升级(四):GPREGRET标志位升级
  10. 论我的间歇性奋发向上和持续性找好退路