腾讯云主机上部署FRP+Teamviewer穿透内网进行远程运维

简介: 腾讯云主机上部署FRP+Teamviewer穿透内网进行远程运维

640.jpg

一、frp 介绍


frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议 可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性,这包括:

1、客户端服务端通信支持 TCP、KCP 以及 Websocket 等多种协议。

2、采用 TCP 连接流式复用,在单个连接间承载更多请求,节省连接建立时间。

3、代理组间的负载均衡。

4、端口复用,多个服务通过同一个服务端端口暴露。

5、多个原生支持的客户端插件(静态文件查看,HTTP、SOCK5 代理等),便于独立使用 frp 客户端完成某些工作。

6、高度扩展性的服务端插件系统,方便结合自身需求进行功能扩展。

7、服务端和客户端 UI 页面。


二、TeamViewer 介绍


TeamViewer 是一个能在任何防火墙和 NAT 代理的后台用于远程控制的应用程序,桌面共享和文件传输的简单且快速的解决方案。

为了连接到另一台计算机,只需要在两台计算机上同时运行 TeamViewer 即可,而不需要进行安装(也可以选择安装,安装后可以设置开机运行)。

该软件第一次启动在两台计算机上自动生成伙伴 ID。只需要输入你的伙伴的 ID 到 TeamViewer,然后就会立即建立起连接


三、需求描述


但由于 Teamviewer 个人版本如果频繁使用的话,会被经常检测到用于商业用途

下面介绍在腾讯云主机上部署FRP+Teamviewer穿透内网进行远程运维,使用 Teamviewer LAN 呼入方式来规避这个问题


640.png

四、具体操作步骤


1、下载 frp Linux64 位版本

下载地址:https://github.com/fatedier/frp/releases


640.png


2、云主机上安装部署 frps 服务端


为了演示方便,我这边开通按量付费的腾讯云主机一台 公网 IP 119.45.176.177

640.png

640.png


640.png

640.png


1)云主机配置 yum 源


mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos7_base.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.cloud.tencent.com/repo/epel-7.repo
yum clean all
yum makecache


640.png


2)上传 frp Linux64 位版本安装包,解压,重命名


yum install lrzsz -y
cd /opt
rz 上传
tar -zxf frp_0.34.0_linux_amd64.tar.gz
mv frp_0.34.0_linux_amd64 frp


640.png

640.png

3)vi 编辑 frps.ini


cd /opt/frp/
vi frps.ini
[common]
bind_addr = 0.0.0.0
bind_port = 7111
log_file = /opt/frp/logs/frps.log
log_level = info
log_max_days = 3
authentication_method = token
authenticate_heartbeats = false
authenticate_new_work_conns = false
token = QCloud@FRP2020

640.png

4)修改 systemd/frps.service 文件中 ExecStart 脚本段为 frps 以及 frps.ini 实际路径


/opt/frp/frps -c /opt/frp/frps.ini
frps.service 文件拷贝/usr/lib/systemd/system/目录下到并注册为系统服务
cp /opt/frp/systemd/frps.service /usr/lib/systemd/system/frps.service
systemctl enable frps.service
systemctl start frps.service
若有防火墙,需要防火墙放通如下端口
firewall-cmd --zone=public --add-port=7111/tcp --permanent
firewall-cmd --zone=public --add-port=5398/tcp --permanent
firewall-cmd --zone=public --add-port=7122/tcp --permanent
firewall-cmd --reload

640.png

5)云主机安全组规则需要放通相关端口

640.png


6)排错


问题:/opt/frp/logs/frps.log 不产生日志

原因:由于 frps 服务是 nobody 用户运行的

解决办法:chown -R nobody /opt/frp/logs/

然后重启 service frps restart 这里日志才会写入到/opt/frp/logs/frps.log 中


3、内网机器安装并配置 frpc 客户端


1)内网机器安装并配置 FRP


tar -zxf frp_0.34.0_linux_amd64.tar.gz
mv frp_0.34.0_linux_amd64 frp

640.png


2)修改 frpc.ini


[common]
server_addr = 119.45.176.177
server_port = 7111
log_file = /opt/frp/logs/frpc.log
log_level = info
log_max_days = 3
authentication_method = token
authenticate_heartbeats = false
authenticate_new_work_conns = false
token = QCloud@FRP2020
[192.168.31.80_ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7122
[192.168.31.51_teamviewer]
type = tcp
local_ip = 192.168.31.51
local_port = 5938
remote_port = 5938

640.png


3)、修改 systemd/frpc.service 文件中 ExecStart 脚本段为 frpc 以及 frpc.ini 实际路径


640.png

4)、注册开机自启动服务,并启动 frpc 服务


cp /opt/frp/systemd/frpc.service /usr/lib/systemd/system/frpc.service
systemctl enable frpc.service
mkdir /opt/frp/logs
touch /opt/frp/logs/frpc.log
chown -R nobody /opt/frp/logs
systemctl start frpc.service
tail -f /opt/frp/logs/frpc.log


640.png


4、内网机器配置 Teamviewer


1)开启 LAN 呼入

640.png

2)设置无人值守密码


640.png


5、外网 Teamviewer 测试连接


输入公网 IP 地址进行呼入连接

640.png

640.png

640.png

6、外网 SSH 连接测试


使用 119.45.176.177 7122 连接到内网 192.168.31.80 的 SSH


640.png


640.png


五、总结


1、因为 teamview 只能监听 5938 端口,不能自定义端口,所以 Teamviewer 受控端的 5938 frpc 配置文件 frpc.ini 中 local_port = 5938 与 remote_port = 5938 要一致

2、云主机安全组规则以及 CentOS7 内置 firewalld 要放开相关端口

相关文章
|
19天前
|
Web App开发 弹性计算 运维
快速部署1Panel运维面板
1Panel是一款Linux服务器管理面板,提供Web界面进行主机监控、文件、数据库和容器管理。本文介绍如何通过计算巢快速部署1Panel面板。
快速部署1Panel运维面板
|
1月前
|
运维 监控 JavaScript
【阿里云云原生专栏】Serverless架构下的应用部署与运维:阿里云Function Compute深度探索
【5月更文挑战第21天】阿里云Function Compute是事件驱动的无服务器计算服务,让用户无需关注基础设施,专注业务逻辑。本文详述了在FC上部署应用的步骤,包括创建函数、编写代码和部署,并介绍了运维功能:监控告警、日志管理、版本管理和授权管理,提供高效低成本的计算服务。
243 6
|
1月前
|
运维 Linux Docker
ChatGLM3在Docker环境部署(1),Linux运维电话面试技巧
ChatGLM3在Docker环境部署(1),Linux运维电话面试技巧
|
1月前
|
运维 Linux Docker
ChatGLM3在Docker环境部署,Linux运维免打包多渠道统计如何实现
ChatGLM3在Docker环境部署,Linux运维免打包多渠道统计如何实现
|
1月前
|
运维 Kubernetes 持续交付
构建高效自动化运维体系:基于容器技术的持续集成与部署实践
【5月更文挑战第13天】 在现代软件开发周期中,持续集成(CI)和持续部署(CD)已成为提升开发效率、保障产品质量的关键环节。随着云计算和微服务架构的普及,容器技术如Docker和Kubernetes为运维领域带来了革命性的变革。本文旨在探讨如何利用容器技术构建一个高效、可靠的自动化运维体系,实现从代码提交到产品发布的全过程自动化管理。通过深入分析容器化技术的核心原理,结合实际案例,我们将阐述如何优化持续集成流程、确保自动化测试的覆盖率、以及实现无缝的持续部署。
36 2
|
1月前
|
运维 监控 Linux
如何在Linux上部署1Panel运维管理面板并远程访问内网进行操作
如何在Linux上部署1Panel运维管理面板并远程访问内网进行操作
76 0
如何在Linux上部署1Panel运维管理面板并远程访问内网进行操作
|
1月前
|
消息中间件 运维 监控
基于SaaS云部署、云计算的区域医院云HIS系统源码(运维管理+运营管理+综合监管)
医院云his系统采用主流成熟技术开发,B/S架构,软件结构简洁、代码规范易阅读,SaaS应用,全浏览器访问,前后端分离,多服务协同,服务可拆分,功能易扩展。多医院统一登录患者主索引建立、主数据管理,统一对外接口管理。
78 1
|
1月前
|
运维 关系型数据库 MySQL
Ansible自动化运维工具主机清单配置
Ansible自动化运维工具主机清单配置
|
1月前
|
运维 Kubernetes 监控
构建高效自动化运维系统:基于容器技术的持续集成与部署策略
【4月更文挑战第4天】在数字化转型的浪潮中,企业对于软件交付的速度和质量要求越来越高。传统的运维模式已无法满足敏捷开发和快速迭代的需求。本文旨在探讨如何利用容器技术构建一个高效的自动化运维系统,实现软件开发生命周期中的持续集成(CI)与持续部署(CD)。通过分析容器技术的核心优势,结合DevOps文化和微服务架构,我们提出了一套系统的构建策略和实践步骤。文章将详细阐述从环境搭建到流程优化的全过程,以及在此过程中可能遇到的挑战和解决方案,为运维专业人员提供参考和指导。
|
1月前
|
运维 Java 开发者
深入浅出:使用Docker容器化改善Java应用的部署与运维
在当今快速迭代的软件开发周期中,确保应用的一致性、可移植性与易于管理成为了开发与运维团队面临的重大挑战。本文旨在介绍如何通过Docker容器技术,有效地解决这些问题,特别是针对Java应用。我们将从Docker的基本概念出发,逐步深入到实际操作,展示如何将传统的Java应用容器化,以及这一过程如何帮助简化部署流程、提高应用的可靠性和可伸缩性。不同于常规的技术文章,本文试图以一种更加易于理解和实践的方式,让读者能够快速掌握容器化技术,并将其应用于日常的开发与运维工作中。
104 0