记录linux的内网穿透frp操作

2023-05-16

记录linux的内网穿透frp操作


由于本人在宿舍偶尔需要查看实验室内电脑程序结果及传输一些文件,不得不利用frp内网穿透,需要准备以下三台电脑,如果有多个客户端,也可以进行配置:
一.一台具有公网ip的服务器(本人租用的是腾讯云Ubuntu系统)
二.实验室内一台跑程序的电脑(即客户端A:Ubuntu系统)
三.宿舍一台闲置电脑,用于远程连接实验室的电脑
四.实验室另一台跑程序的电脑(即客户端B:Ubuntu系统)
拥有这些工具以后,首先需要在四台电脑上下载客户端和服务端二进制文件,以下步骤针对于服务器与客户机:


下载地址github:https://github.com/fatedier/frp
也可以使用以下命令行下载:

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

完成以后,进行解压:

tar -zxvf frp_0.39.1_linux_amd64.tar.gz

使用命令行将解压出来的文件移动至/usr/local/frp文件夹;

mv frp_0.39.1_linux_amd64 /usr/local/frp

进入到frp文件夹内cd /usr/local/frp


此后,先配置服务器,服务器的配置文件是 frps.ini:
使用sudo vim frps.ini打开服务器的配置文件,并配置相关接口:
首先在腾讯云的防火墙处添加端口,协议为tcp,端口有7000,7500,先添加两个,其次是客户机,有几个客户机就添加几个,我有两个客户机,就需要添加两个,我定义端口为7001.7002。


此处有个小点,在最后一步连接ssh时报错了再来看这里,没有报错可以不看:在添加端口以后,有时候通过ssh连接时会出现下面这个错误时:

connect to host xxx.xxx.xx.xxx port 7002:No toute to host

在服务器终端执行:

sudo firewall-cmd --permanent --add-port=7001/tcp
和
sudo firewall-cmd --permanent --add-port=7002/tcp

然后再重启服务器就可以解决这个问题了


然后先配置服务端的配置文件:

sudo vim frps.ini

并修改为以下内容:

[common]
Bind_addr = 0.0.0.0
bind_port = 7000

以上是一个简单的配置,可以添加一个frps dashboard用于观察服务器与客户机连接的相关情况:

[common]
Bind_addr = 0.0.0.0
bind_port = 7000
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true

至此,服务器的配置就好了,然后在/usr/local/frp路径下运行一下./frps -c ./frps.ini,这是一个临时的运行命令,ctrl+c进行取消,
添加一下frps的自启动服务:
终端命令行输入:sudo vim /usr/lib/systemd/system/frps.service
(其实下载下来的文件夹内带有启动服务:cd /usr/local/frp/systemd,sudo vim frps.service将下面的内容复制到里面即可,两种方法都可以使用)
(如果有重名的自启动服务,可以cd /etc/systemd/system/multi-user.target.wants,到该路径下查看,并使用sudo rm 将重复的或多余的启动服务删除;使用systemctl disable frps停止自启动,这里的frps是自启动文件名)
内容可以是以下两种,一个不行换第二种:

[Unit]
Description=frps server daemon
Documentation=https://github.com/fatedier/frp
After=network-online.target

[Service]
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
Type=simple
User=nobody
Group=nogroup
WorkingDirectory=/tmp
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target
[Unit]
Description=frps service
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

然后,启动该服务:

# 启动frps
sudo systemctl start frps
# 自启动
sudo systemctl enable frps
# 重启应用
sudo systemctl restart frps
# 停止应用
sudo systemctl stop frps
# 停止自启动
sudo systemctl disable frps
# 查看应用的日志
sudo systemctl status frps

然后,配置linux系统的客户端A和客户端B,客户端的配置文件同样在/usr/local/frp路径下,需要注意的是配置文件为frpc.ini:
前面在腾讯云的防火墙处添加了端口7001和7002,下面将会用到:
首先,cd /usr/local/frp,并通过sudo vim frpc.ini打开客户端的配置文件:
对于客户机A:

[common]
server_addr = xxx.xxx.xx.xxx ####此处是腾讯云给的公网ip
server_port = 7000

[ssh]
type = tcp ####协议
local_ip = 127.0.0.1 ####本机的环回地址
local_port = 22 ####ssh端口
remote_port = 7001 ####腾讯云防火墙对客户机A开放的端口

对于客户机B:

[common]
server_addr = xxx.xxx.xx.xxx ####此处是腾讯云给的公网ip
server_port = 7000

[ssh1]#########这里需要注意改为ssh1,如果还有第三个客户机则第三个为ssh2或者其他ssh3都可以
type = tcp ####协议
local_ip = 127.0.0.1 ####本机的环回地址
local_port = 22 ####ssh端口
remote_port = 7002 ####腾讯云防火墙对客户机B开放的端口###此处需要注意

此后,在/usr/local/frp路径下运行一下./frpc -c ./frpc.ini,这是一个临时的运行命令,ctrl+c进行取消,
添加一下frpc的自启动服务:
终端命令行输入:sudo vim /usr/lib/systemd/system/frpc.service
(其实下载下来的文件夹内带有启动服务:cd /usr/local/frp/systemd,sudo vim frpc.service将下面的内容复制到里面即可,两种方法都可以使用)
(如果有重名的自启动服务,可以cd /etc/systemd/system/multi-user.target.wants,到该路径下查看,并使用sudo rm 将重复的或多余的启动服务删除;使用systemctl disable frpc停止自启动,这里的frpc是自启动文件名)
内容同样有以下两种,第一种不行换第二种:

[Unit]
Description=frpc server daemon
Documentation=https://github.com/fatedier/frp
After=network-online.target

[Service]
ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini
Type=simple
User=nobody
Group=nogroup
WorkingDirectory=/tmp
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target
[Unit]
Description=frpc service
After=network-online.target

[Service]
Type=simple
ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

然后,启动该服务:

# 启动frpc
sudo systemctl start frpc
# 自启动frpc
sudo systemctl enable frpc
# 重启应用
sudo systemctl restart frpc
# 停止应用
sudo systemctl stop frpc
# 停止自启动
sudo systemctl disable frps
# 查看应用的日志
sudo systemctl status frpc

到此,服务器与客户机的配置就完成了,在宿舍的电脑上打开终端通过以下两条命令即可连接客户机A和客户机B:

ssh name_A@xxx.xxx.xx.xxx -p 7001
ssh name_B@xxx.xxx.xx.xxx -p 7002

注意:
name_A 是客户机A 的用户名,name_B是客户机B的用户名,xxx.xxx.xx.xxx 是腾讯云给的公网ip.
由于我的客户机A是双系统,还需要配置客户机A的windows,如下:
同样下载windows版本的frp,下载后将其解压,并重命名为frp,放在指定位置,我放在D盘下了,打开frpc.ini进行配置:

[common]
server_addr = xxx.xxx.xx.xxx
server_port = 7000

[ssh4]
type = tcp
local_ip = 127.0.0.1
local_port = 3389 #windows的远程端口为3389,linux是22
remote_port = 7003

然后可以利用管理员模式打开PowerShell,进入到frp文件下并运行.\frpc.exe -c frpc.ini,若成功的话,可以考虑把frpc.exe注册成服务。
即:
使用winsw 工具可以将frpc注册为windows系统中的服务,下载地址:https://github.com/kohsuke/winsw/releases,下载将exe文件重命名为winsw.exe,并放在frpc.ini相同的路径下,并在该路径下编写winxw.xml文件,内容如下:

<service>
    <id>frpc</id>
    <name>frpc</name>
    <description>frp用于外网访问</description>
    <executable>D:\frp\frpc.exe</executable>
    <arguments>-c frpc.ini</arguments>
    <logmode>reset</logmode>
</service>

然后win+R,cmd到frp路径下,使用winsw.exe install命令将其注册为服务,并通过winsw.exe start启动服务。可以在此电脑-管理-服务中看到该服务处于自启动状态的。
在这里插入图片描述

主要有以下几种:

//注册服务
winsw.exe install
//卸载服务
winsw.exe uninstall
//启动服务
winsw.exe start
//停止服务
winsw.exe stop
//重启服务
winsw.exe restart
//查看状态
winsw.exe status

然后需要在windows中将远程打开!!!!
在这里插入图片描述

利用另外一台windows输入win+R,输入mstsc进行,在弹出的页面填写公网ipxxx.xxx.xx.xxx:7003,在弹出的页面输入用户名和密码即可连接。
如果使用linux进行连接的话,可以使用freerdp功能进行连接。具体可以看看:

xfreerdp -f host:port -u username -p password
-f:表示全屏(切换全屏的快捷键为:Ctrl + Alt + Enter)
host:远程服务器地址
port:端口,默认为 3389
-u username:用户名
-p password:密码

我没有搞通,但我尝试了另一种方法,可行:
在linu端:

sudo apt-get install rdesktop

然后直接输入:

rdesktop -f -a 16  192.168.1.112
  -u用户名
  -p密码
  -n客户端主机名(显示windows任务管理器中的连接客户端名)
  -g桌面大小( 宽* 高)[也可以用 x(小写的X)]
  -f全屏模式,从全屏模式切换出来按Ctrl+Alt+Enter
  -a连接颜色深度(最高到16位),一般选16才会显示真彩色(window7支持32位)
  -0数字0表示连接上windows控制台,等效mstsc/console命令

参考:

1.frp实现内网穿透 | frp服务端配置 | frp客户端配 https://cloud.tencent.com/developer/article/1748214
2.使用frp工具实现内网穿透以及配置多个ssh和web服务 https://www.cnblogs.com/chywx/p/10939966.html
3.快速搭建frp的http和ssh的内网穿透 https://www.spacevast.com/archives/%E5%BF%AB%E9%80%9F%E6%90%AD%E5%BB%BAfrp%E7%9A%84http%E5%92%8Cssh%E7%9A%84%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F
4.10分钟使用腾讯轻量应用服务器与frp开启内网穿透实现ssh https://www.cnblogs.com/kalicener/p/15835512.html
5.使用 Systemd 设置 frp 开机启动 https://notfound.cn/posts/systemd-frp/
6.linux下使用 FreeRDP 连接 Windows 远程桌面(转) https://www.cnblogs.com/zdf123/p/6401845.html
7.ubuntu远程桌面连接windows系统https://www.cnblogs.com/brainworld/p/7755779.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

记录linux的内网穿透frp操作 的相关文章

  • Java的命名规范

    Java的命名规范 一 包命名 包名命名 xff0c 统一使用小写字母 包名名的路径建议符合所有开发的系统模块的定义 xff0c 以便看了包名就明白是哪个模块 xff0c 从而直接到对应包里找相应的实现 由于Java面向对象的特征 xff0
  • 二叉搜索树的第 k 大节点

    二叉搜索树的第 k 大节点 1 参考资料 https leetcode cn com problems er cha sou suo shu de di kda jie dian lcof 2 题目描述 题目描述 给定一棵二叉搜索树 xff
  • 第 4 章 Spring

    第 4 章 Spring 1 Spring Aop 顺序 1 1 Aop 常用注解 Spring 中的 5 个通知 64 Before 前置通知 目标方法之前执行 64 After 后置通知 目标方法之后执行 xff08 始终执行 xff0
  • 有人说

    1 只要123 xff0c 不要456 xff1a 麦肯锡要求公司员工 xff0c 凡事要在最短的时间内表达清楚 他认为 xff0c 一般情况下人们最多记得住一二三 xff0c 记不住四五六 xff0c 所以凡事要归纳在3条以内 2 职场要
  • x11vnc 在 Debian 更新 编译 安装

    目前 Debian 和 Ubuntu 的 x11vnc 版本是固定在了 0 9 13 这是原作者的最后更新的版本 github仓库 目前有 x11vnc 0 9 16 版本 xff0c 这是属于社区版本 xff0c 修复了原作者最后一版的一
  • Linux rime小狼毫输入法 配置

    系统 xff1a LXD Ubuntu KDE 输入法方案 xff1a fcitx 43 rime 不知为何 xff0c 使用 fcitx config 面板配置这rime输入法 xff0c 配置文件一直无法保存 xff08 保存后 xff
  • Centos7.6操作系统安装+Bond配置(600GB磁盘版本)

    1 安装前准备工作 注意 xff1a Centos操作系统是开源操作系统 xff0c 涉及的补丁漏洞需都需要由开源社区来维护 1 准备centos7 6操作系统镜像 CentOS 7 x86 64 DVD 1810 iso 2 操作系统盘需
  • css选择器几种查找方式整理

    css 选择器 1 通过标签查找 通过p标签获取 print soup select 39 p 39 使用的bs4 select 方法 xff0c selenium driver find elements By CSS SELECTOR
  • 混合使用C和C++

    混合使用C和C 43 43 总述问题使用常见方式参考1推荐方式 Legacy参考 最近在看项目代码 xff0c 经常看到header file中 xff0c 开头 xff1a span class token macro property
  • 机会留给有准备的人

    通过这次考试 xff0c 发现自己很多不足 xff0c 关上书完全是空白 xff0c 努力吧 xff0c 还有机会
  • STM32使用串口printf乱码问题解决方法

    使用stm32系列单片机串口打印问题 xff0c 在使用HAL库重新定义printf为串口输出后 xff0c 输出的内容全都是乱码 xff0c 试了网上的方法后还是乱码 像这样的 最后发现是串口调试助手和keil的文字编码方式不同 xff0
  • 非分区表迁移到分区表

    这几周DW部分common表刷新速度很慢 xff0c 经分析是数据量过大 xff0c 这两天都在想优化的方式 xff0c 定下来从分区入手 目前ODS通过kettle同步过来的数据都是非分区的 xff0c 部分大表都在2亿以上 xff0c
  • 2020 kali linux KDE桌面安装+美化

    安装KDE桌面 KDE Plasma Desktop xff08 最小化的等离子桌面 xff09 安装 xff1a span class token function apt get span span class token functi
  • 李俊刚:我是如何在OpenHarmony完成ap6275s WiFi驱动的HDF适配工作的?

    编者按 xff1a 在 OpenHarmony 生态发展过程中 xff0c 涌现了大批优秀的代码贡献者 xff0c 本专题旨在表彰贡献 分享经验 xff0c 文中内容来自嘉宾访谈 xff0c 不代表 OpenHarmony 工作委员会观点
  • 关于cin.getline,getline(cin,string),fgets输入的初探

    Blog用于记录个人学习编程 1 cin getline的输入 include lt iostream gt include lt string gt using namespace std int main char s 10 char
  • 【高效办公】一、ubuntu之间共享桌面

    1 被共享的设备 修改设置 在ubuntu桌面发行版打开屏幕共享功能 xff0c 步骤如下 xff1a 设置 gt 共享 gt 屏幕共享 打开总开关 允许连接控制屏幕 需要密码 xff08 自己设置密码 xff0c 最多8位 xff09 网
  • Android 关于MVP的一些思考与总结

    关于MVP的概念 xff0c 或者MVP相对传统MVC的好处 xff0c 这些这里就不多讲了 xff0c 网上的资料随便一搜就是一大把 最近刚好项目重构 xff0c 参考网上一些文章之后 xff0c 结合自身的理解 xff0c 本次简单的总
  • MC下载Forge/Optifine不想有广告怎么办

    众所周知 xff0c Forge和Optifine下载都有广告 xff0c adfoc us在中国访问还有点问题 xff0c 所以有没有什么办法能不看广告呢 xff1f 这里用Forge1 18 2和Optifine1 18 2 U H6演
  • MC1.12.2开服教程

    本文写于 2020 年 xff0c 可能有点老 xff0c 以后有时间会重写 注意 xff1a 电脑需要安装Java8 可以到java com下载 一 下载最新版CatServer 下载的应该是CatServer xxxxxxx unive
  • 桌面以及文件资源管理器无限重启的解决

    问题描述 开机之后 xff0c 电脑桌面一直再鬼畜重启 xff0c 点击开始windows图标不动 任务栏无法点击 Ctrl 43 ALT 43 Delete打开任务管理器 xff0c explorer xff08 文件资源管理器 xff0

随机推荐

  • Minecraft Forge&Optifine安装方法

    注 此博客用于Java版 xff0c 基岩版不能用 记得安装jre 或jdk 8 文章目录 从官网上下载安装程序第一步安装ForgeOptifine 从启动器里下载 从官网上下载安装程序 第一步 下载Forge安装程序或Optifine安装
  • MC基础教程#2 加载器、模组、光影、材质包、数据包下载及安装(国际Java版)

    MC基础教程系列第二期出了 和上一期隔了两年 加载器 下载 Forge 老牌加载器 xff0c 新版本 1 13 43 不太好用 官网 https files minecraftforge net net minecraftforge fo
  • 在Windows中安装MinGW-w64最新版本(目前12.1.0)

    在我的上篇文章中 xff0c 只有 0 的人点了赞 咋一人没有啊 xff01 所以如果觉得做的还行的话可以给我点个赞 收个藏 xff0c 这对我真的很重要 xff01 emm 找了很多教程 基本都是从 sourceforge 上下的 8 1
  • VSCode 配置 C++ 环境

    开学了 xff0c 后面更新速度会更慢 xff0c 望周知 接上回 https blog csdn net orangebench11 article details 126111356 先说一下 这个教程不是给完整json复制粘贴 是要跟
  • 使用 FFmpeg 转换视频/音频格式 | 开源 免费 | 不用套壳软件

    在我的上篇文章中 xff0c 只有 不到0 43 的人点了赞 所以如果觉得做的还行的话可以给我点个赞 收个藏 xff0c 这对我真的很重要 xff01 QWQ 注 xff1a FFmpeg 有很多功能 xff0c 这里只用来转换格式 前言
  • 【MC】新加载器 Quilt 好用吗?和 Fabric 相比好在哪?

    在今年四月 2022 4 20 xff0c 一个船新加载器 Quilt 发布了第一个测试版 Quilt officially entered its first beta today attracting an influx of new
  • 科学上最令人舒服的十种颜色(RGB)

    这是科学上最令人舒服的十种颜色 xff0c 我将RGB整理了一下 xff0c 大家做软件的时候可以考虑这个配色 xff0c 看着真的很舒服 19CAAD 8CC7B5 A0EEE1 BEE7E9 BEEDC7 1 R 25 G 202 B
  • Android Beam 文件传输失败分析与解决

    最近在修改Android7 0原生平台的一些bug xff0c 其中有关Android Beam传输文件的一些问题还是蛮多的 所以特地找时间总结下曾经踏过的坑 1 传输的文件名包含中文时 xff0c 导致传输失败 可能是由于Google未考
  • 【IDEA】下载插件失败Failed to Download

    下载插件的时候又莫名其妙报错了 xff0c 报错信息还挺让人困惑的 xff0c failed to download xff0c 然后 response 200 OK What the hell 确实挺奇怪的 xff0c 看图吧 这个报错太
  • OpenCV经典人脸识别算法(特征脸,Fisherface,LBP)

    引言 OpenCV中有三个经典的人脸识别的算法 xff0c 各有优缺点 参考链接很详细 xff0c 只提炼重要内容 参考1 参考2 经典人脸识别算法 1 EigenFace 征脸识别的局限性 要让系统准确识别需要保证人脸图像满足 xff1a
  • Ubuntu 16.04 安装onos 2.2.0

    之前使用了别人分享的安装好的p4虚拟机 xff0c 应该是这个人的 xff0c 不过我记得的是用的谷永普的 xff0c 当时还是从微云上下载的 xff0c 但是找不到了 不过无所谓 xff0c 本文不讲p4的安装 xff0c 有需要的 xf
  • WindowsServer2012r2远程桌面多用户同时远程连接设置

    安装远程桌面服务下子项远程桌面会话主机 远程桌面授权 xff1a 点击左下角服务器管理器 xff0c 选择添加角色和功能 安装完成后会自动重启服务器 xff0c 如报错找不到文件 xff0c 请指定备用源路径 2 配置远程桌面连接数及激活许
  • 从企业广泛应用要求如入手推荐Java学习思路

    第一 xff1a 先学习Java的核心库 xff08 JavaSE xff09 JavaSE的内容包括 xff1a 环境搭建 基础语法 面向对象 数组 集合 常用类 IO流 反射机制 网络编程 第二 xff1a MySQL数据库搞定一门数据
  • jupyterLab打开后出现Config option `template_path` not recognized by `ExporterCollapsibleHeadings`相关问题

    jupyterLab打开后出现 template path 相关问题 之前在anaconda中装了TensorFlow pytorch OpenCV几个环境 xff0c 由于使用OpenCV较多 xff0c 在OpenCV里面装了一些插件
  • 记录换源操作

    记录一下换源操作 1 清华源 conda config span class token operator span add channels https span class token operator span span class
  • 论文《基于深度学习的表面缺陷检测方法综述》学习笔记

    基于深度学习的表面缺陷检测方法综述 学习笔记 前段时间完成了 基于图像的零部件缺陷识别系统设计 毕业课程设计 xff0c 过程中收获了很多 xff0c 老师也分享了很多论文 xff0c 在此记录一下学习的收获 本文的论文引用 xff1a 陶
  • 记录关于标记工具LabelIMG生成txt文件时的相关问题

    在做基于深度学习的目标检测时 xff0c 对数据图片标记时出现了一些问题 xff0c 特此记录一下 在对数据图片的目标标记时 xff0c 有很多的标记工具 xff0c 而我钟爱LabelIMG这一工具 在此附上github链接 xff1a
  • 记录关于利用txt文件划分训练集、测试集与验证集

    利用txt文件划分训练集 测试集与验证集 在基于深度学习的目标检测任务中 xff0c 往往需要将数据图片划分成训练集 验证集与测试集 xff0c 在此记录一种笨办法 xff0c 各位大佬可忽略 训练集 xff1a 日常学习 验证集 xff1
  • python读取像素值

    记录一下利用python读取像素值 xff0c 并将像素值保存在txt文档中 xff0c 可使用matlab将txt文档转换为像素矩阵 代码如下 xff1a span class token comment 将mask图转换为像素值 xff
  • 记录linux的内网穿透frp操作

    记录linux的内网穿透frp操作 由于本人在宿舍偶尔需要查看实验室内电脑程序结果及传输一些文件 xff0c 不得不利用frp内网穿透 xff0c 需要准备以下三台电脑 xff0c 如果有多个客户端 xff0c 也可以进行配置 xff1a