记录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

记录linux的内网穿透frp操作相关推荐

  1. 内网穿透-Frp(1)使用樱花Frp(Sakura Frp)进行免费的内网穿透操作步骤

    背景介绍:因需要在4G路由器(openwrt,mips架构)上提高页面和视频流展示,需要在公网能访问的,问题:4G卡不能固定IP,所以没办法使用公网+端口映射方式进行:故采取内网穿透frp方式进行公网 ...

  2. 内网穿透------frp配置(服务端客户端配置)超详细的那种~~~

    强调:配置文件中每行代码最后一定不要留空格!!! 配置文件中尽量不要有注释,必须写的话,要用符合的语法写: 分号; 第一步:云服务器上域名解析添加(前提是有域名已经备案) 这里有对应操作截图文件 第二 ...

  3. 内网穿透 --- frp

    中文文档:https://github.com/fatedier/frp/blob/dev/README_zh.md 手机+frp内网穿透搭建随身携带的服务器:https://blog.csdn.ne ...

  4. 使用内网穿透frp做远程桌面连接

    索引 安装服务端 以windows为服务端安装 以CentOS为服务端安装 安装客户端 开始连接远程 登录控制台 CentOS服务端设置开机自启动 Windows客户端/服务端设置开机自启 参考文章: ...

  5. linux/windows内网穿透(fpr免费开源软件)

    前提条件 一台有公网IP的服务器 Frp介绍 frp 是一个开源.简洁易用.高性能的内网穿透和反向代理软件,支持 tcp, udp, http, https等协议.frp 项目官网是 github.c ...

  6. Linux搭建内网穿透服务器【超级无脑】

    什么叫"内网穿透"? 假如我在局域网中有一台电脑,并且部署了一些web服务希望所有人都能访问它.但这台电脑只有局域网ip,并没有公网ip,那么只有同一局域网内的设备才能找到这台电脑 ...

  7. 内网穿透 frp : 隐藏通信隧道技术

    1 frp介绍 注意事项: 1)服务器端和内网机器端下载的版本要相同,否则可能会影响内网穿透 2)根据服务器系统选择合适的脚本 脚本主要分为服务端与客户端文件 1.外网服务器端用到的是Frps和Frp ...

  8. windows 下frp服务启动_内网穿透frp linux服务端搭建和windows客户端使用

    一.Linux 服务端搭建 1.下载安装 wget --no-check-certificate https://raw.githubusercontent.com/clangcn/onekey-in ...

  9. Armbian魔百盒折腾记4(内网穿透frp、异地组网等)慢更中

    好久没发文了. 有时在外面突然想连接一下盒子,但苦于没公网,于是各种折腾,终于勉强实现了. 先写frp,有精力再慢慢更吧. 一.Frp一键部署 本来想以一个实例讲讲的,这段时间事情太多了,先略. 就说 ...

最新文章

  1. plsql测试oracle存储过程,oracle存储过程基本结构的编写与plsql测试执行
  2. easypoi导出数值型_SpringBoot使用EasyPoi进行数据导入导出Excel(一)
  3. 【Mybatis】resultMap继承
  4. Ajax+Node.js前后端交互最佳入门实践(04)
  5. 转: telnet命令学习
  6. C#中数据库事务、存储过程基本用法
  7. 机器学习模型评估指标总结
  8. ubuntu 1610本地安装wordpress
  9. redis与mysql性能对比、redis缓存穿透、缓存雪崩
  10. 2021-08-08 WPF控件专题 StackPanel 控件详解
  11. Keepalived主主虚拟路由器与虚拟服务器
  12. O - Buns(混合背包)
  13. 终于等到你!江苏9月1日开始软考报名
  14. 我胡汉三又回来了之拼多多笔试复盘
  15. Zotero使用OneDrive云存储附件(OneDrive+Zotero)
  16. “CreateProcess error=206, 文件名或扩展名太长” 错误解决办法
  17. 13行Python代码实现一个神经网络(Part 2 - 梯度下降法)
  18. 通过WIFI双向透传串口向Arduino Uno 无线上传(更新)程序
  19. java物流系统_java 物流管理系统
  20. 二叉树输出(凹入表示法)

热门文章

  1. 读取绘制visio文件
  2. 什么是码率(mbps)
  3. Competition4_t3
  4. 足球赛积分管理系统c语言,足球赛计时计分器课程设计报告.doc
  5. Android怎么自定义充电铃声,充电提示音怎么设置
  6. SP10707 COT2 - Count on a tree II【树上莫队】
  7. Python:实现double factorial iterative双阶乘迭代算法(附完整源码)
  8. 阴天(唐伯虎点秋香版)2铃声 阴天(唐伯虎点秋香版)2手机铃声免...
  9. 扬帆开局|香港电讯与国家(深圳·前海)新型互联网交换中心合作项目正式启动
  10. 百度地图(常用方法)