Linux中通过frp实现内网穿透

embedded/2025/1/16 8:23:16/

1、准备工作

准备一台公网服务器(云服务器),推荐阿里云或者腾讯云都可以

需要下载好frp安装包Linux端的和Windows端的安装包

网址:Releases · fatedier/frp (github.com)icon-default.png?t=O83Ahttps://github.com/fatedier/frp/releases

2、下载frp_0.53.2_linux_arm64.tar.gz和

frp_0.53.2_windows_amd64.zip

3、服务端部署frp

(1)解压缩、移动新目录


[server root ~] # ls frp_0.52.3_linux_amd64.tar.gz
frp_0.52.3_linux_amd64.tar.gz
[server root ~] # tar -xf frp_0.52.3_linux_amd64.tar.gz
[server root ~] # ls frp_0.52.3_linux_amd64
frpc  frpc.toml  frps  frps.toml  LICENSE
[server root ~] # mv frp_0.52.3_linux_amd64/ frp/

(2)服务端配置文件(服务端是frps.toml,客户端是frpc.toml)

bindPort = 7000                 
dashboard_port = 7500			dashboard_user = admin	        
dashboard_password = admin	   
  • [common]:通用设置区块,包含所有服务端配置。
  • bindPort:指定 FRP 服务端监听的端口。客户端将连接到这个端口。
  • dashboard_port:指定 Web 管理仪表板的端口。允许通过浏览器访问仪表板。
  • dashboard_user 和 dashboard_pwd:设置访问 Web 管理仪表板的用户名和密码。

(3)客户端配置文件(以下以Windows为例)

toml
[common]
server_addr = "x.x.x.x"  # 服务器的 IP 地址或者公网IP
server_port = 7000       # 服务端配置中的 bindPort[ssh]
name = "test"
type = "tcp"
localIP = "127.0.0.1"
localPort = 3389         # 如果是Linux系统,这边改成22端口
remote_port = 6000       # 服务器上的端口

  • [common]:通用设置区块,包含所有客户端配置。
  • server_addr 和 server_port:指定 FRP 服务端的地址和端口,客户端通过这些信息连接到 FRP 服务端。
  • [ssh]:一个具体的代理配置,表示将本地的 SSH 服务映射到远程的端口。
  • type:代理类型,可以是 tcpudp 或 http 等。
  • remote_port:FRP 服务端上公开的端口。

4、启动服务端

(1)传统启动

# 先cd到frps所在目录
./frps -c ./frps.toml &

(2)系统服务启动

[server root ~] # vim /etc/systemd/system/frps.service
[Unit]                                           # 服务名称,自定义
Description=Frp Server Service
After=network.target[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /etc/frp/frps.toml    #实际的frp目录启动路径[Install]
WantedBy=multi-user.target# 添加执行权限
[server root ~] # chmod +x /etc/systemd/system/frps.service
[server root ~] # ls -l /etc/systemd/system/frps.service
-rwxr-xr-x 1 root root 232 Sep  2 09:03 /etc/systemd/system/frps.service
[server root ~] ## 需要将frp目录下的frps执行程序复制到 /usr/bin/frps 目录下,并添加执行权限
[server root ~] # cp -r frp/frps /usr/bin/
[server root ~] # chmod +x /usr/bin/frps
[server root ~] # ls -l /usr/bin/frps
-rwxr-xr-x 1 root root 16789504 Sep  2 09:02 /usr/bin/frps
[server root ~] #

(3)重新加载系统文件即可

systemctl daemon-reload

[server root ~] # systemctl daemon-reload
[server root ~] # systemctl restart frps.service
[server root ~] # systemctl status frps
● frps.service - Frp Server ServiceLoaded: loaded (/etc/systemd/system/frps.service; disabled; vendor preset: enabled)Active: active (running) since Mon 2024-09-02 09:04:27 HKT; 3s agoMain PID: 1436557 (frps)Tasks: 6 (limit: 4393)Memory: 8.5MCGroup: /system.slice/frps.service└─1436557 /usr/bin/frps -c /etc/frp/frps.tomlSep 02 09:04:27 server systemd[1]: Started Frp Server Service.
Sep 02 09:04:28 server frps[1436557]: WARNING: ini format is deprecated and the support will be removed in the future, ple>
......
Sep 02 09:04:28 server frps[1436557]: 2024/09/02 09:04:28 [I] [root.go:111] frps started successfully
[server root ~] #

5、启动客户端以及配置

(1)Windows文件如下,需要编辑frpc.toml配置文件

serverAddr = "x.x.x.x"    # 服务器的IP或者公网IP
serverPort = 7000         # 服务端的bindPort监听端口7000[[proxies]]               # 标识一个代理规则的开始
name = "test"             # 定义这个代理规则的名称
type = "tcp"              # 指定代理类型
localIP = "127.0.0.1"     # 设置本地内网服务的 IP 地址
localPort = 3389          # 设置本地内网服务的端口号
remotePort = 6000         # 设置 FRP 服务器上公开的端口号(和服务端一样)

(2) 启动编辑Windows cmd脚本,保存为.bat后缀文件,双击执行即可

@echo off

if "%1"=="show" goto begin
start mshta vbscript:createobject("wscript.shell").run("%~f0 show",0)(window.close)&&exit
:begin

cd /d C:\Users\(这里填写存放Windows系统的实际路径)
frpc.exe -c frpc.toml
exit

6、远程测试

Windows远程输入服务端IP+端口

注意:云服务器防火墙需要放行相关端口才能访问。

企业版Windows需要开启允许远程设置:Windows设置→系统→远程桌面开启

家庭版Windows因为不允许开启远程桌面,需要下载RDP软件:GitHub - anhkgg/SuperRDP: Super RDPWrap

软件的具体使用方法安装包里边有详细说明,以上有不懂的或者错误的地方欢迎指出,谢谢~~


http://www.ppmy.cn/embedded/154348.html

相关文章

《基于深度学习的多色光度巡天项目天文目标检测框架》论文精读

A deep learning based astronomical target detection framework for multi-colour photometry sky survey projects 摘要 多色测光巡天项目将利用广角望远镜和几种不同的滤光片获得不同颜色的天体图像。不同颜色的图像可以揭示天体的不同组成部分。我们将能够利用这些图像研…

ros2-6.4.4 两轮差速控制机器人(问题解决)

ros2-6.4.4 两轮差速控制机器人的问题-CSDN博客 上次遇到的问题,经过查看ros2 node list 之后,发现有多个 /robot_state_publisher 这是不正常的,应该是我看视频6.2 的没有及时关闭导致冲突了。 没有修改代码,单纯的重启就解决…

密码机服务器在云计算中的应用与挑战

随着云计算技术的迅猛发展和普及,密码机服务器作为一种高效、专业的数据安全解决方案,正在云计算领域中扮演着越来越重要的角色。本文将探讨密码机服务器在云计算中的应用及其面临的挑战。 云计算技术涉及大量的数据传输和存储,数据的安全性和…

Qt C++ QStatusbar 显示表示状态的图片

1、前言 在C Qt编程中默认主窗口MainWindow底下自带控件QStatusbar,很多情况下都使用其显示程序的连接状态或开关状态,因为时常需要将图片设置为圆形显示,所以这里记录一下常用的设置的代码,方便以后复制粘贴。 2、封装设置状态…

【Python】第一弹---解锁编程新世界:深入理解计算机基础与Python入门指南

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【MySQL】【Python】 目录 1、计算机基础概念 1.1、什么是计算机 1.2、什么是编程 1.3、编程语言有哪些 2、Python 背景知识 2.…

新质生产力与数字化转型

在中国经济转型和科技创新的背景下,“新质生产力”作为一个在中国政策语境中提出的新概念,逐渐成为推动经济发展、产业升级和科技进步的核心议题。新质生产力强调通过科技创新、产业升级以及生产要素创新性配置,推动中国经济朝着高质量、绿色…

【数据结构-堆】力扣1792. 最大平均通过率

一所学校里有一些班级,每个班级里有一些学生,现在每个班都会进行一场期末考试。给你一个二维数组 classes ,其中 classes[i] [passi, totali] ,表示你提前知道了第 i 个班级总共有 totali 个学生,其中只有 passi 个学…

信创改造-龙蜥操作系统搭载MySql、Tomcat等服务

龙蜥操作系统 Anolis OS 8 是 OpenAnolis 社区推出的完全开源、中立、开放的发行版,它支持多计算架构,也面向云端场景优化,兼容 CentOS 软件生态。Anolis OS 8 旨在为广大开发者和运维人员提供稳定、高性能、安全、可靠、开源的操作系统服务。…