1.准备工作

一台云服务(需要有公网IP

本地主机的VmWare虚拟机(linux),我用的是CentOS7。

2.配置

2.1服务端配置

新建opt/frp文件夹,可自行决定存放位置,但需要记得。
mkdir /opt/frp进入文件夹
cd /opt/frpwget下载frp服务压缩包,这里是0.34版本,注意客户端与服务端需保持版本一致。
wget https://github.com/fatedier/frp/releases/download/v0.34.0/frp_0.34.0_linux_amd64.tar.gz解压
tar -zxvf frp_0.34.0_linux_amd64.tar.gz进入目录
cd frp_0.34.0_linux_amd64查看服务端配置文件
cat frps.ini[common]
bind_port = 7000
#不需要更改,有需要用vi自行更改。运行
./frps -c frps.ini

#frpc.ini服务端默认端口为7000,可以通过frpc.ini更改。

#如果无法执行操作,添加777权限,chmod 777 frps.ini

此时不可以ctrl+c或者关闭终端,否则程序会自动结束,可以新建终端通过ps aux | grep frpc.ini 查看进程是否运行。

2.2客户端配置

我这里的客户端是本地主机Vmware里的虚拟机,此处必须保证服务端和客户端frp服务版本一致。

新建frp目录
mkdir /opt/frp进入frp
cd /opt/frpwget下载压缩包
wget https://github.com/fatedier/frp/releases/download/v0.34.0/frp_0.34.0_linux_amd64.tar.gz解压
tar -zxvf frp_0.34.0_linux_amd64.tar.gz进入目录
cd frp_0.34.0_linux_amd64更改配置文件
vim frpc.ini

更改frpc.ini文件

server_addr:公网IP

server_port = 7000 服务端运行frps的端口,可以更改,但必须与服务端的frps.ini一致。

remote_port:公网映射端口,如果有多台客户端,每个客户端需要使用不同的端口号。

[common]
server_addr = *.*.*.* #公网ip
server_port = 7000 服务端运行frps的端口,必须与服务端的frps.ini一致[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000 # 实现映射,公网IP:6000会映射到本客户端的22端口

如果有多个虚拟机,需要改变映射端口6001、6002...,并且[ssh]需要更改,例如[ssh_1]、[ssh_2]...,否则会报错,[ssh] start error: proxy name [ssh] is already in use。

前台方式运行客户端frp

./frpc -c frpc.ini

2.3测试

注意:需要在云服务器开放服务端和客户端端口,需要在云平台的安全组中设置,此处需要开放7000、6000端口。

外网任何一台机器都可以通过SSH协议连接。

SSH -p 6000 root@公网IP

3.自动化设置

3.1程序后台运行

ctrl+c结束frp服务

以后台不关闭形式启动frp,这样即使ctrl+c或者关闭终端,frp服务仍然会在后台运行。首次运行不推荐使用这种方式,因为这种形式启动后有报错信息不会显示。

服务端:nohup ./frps -c frps.ini &

客户端:nohup ./frpc -c frpc.ini &

以客户端为例:

那如何结束nohup进程呢?

需要用到ps aux | grep frp查询进程号,使用kill -9 进程号结束进程,此时进程号为27905.

3.2开机自启动服务

客户端:

结束frpc进程,使用kill -9 进程号结束进程,按照以下步骤进行。

1,将frpc的自带系统文件 复制到系统文件夹 /usr/lib/systemd/system/内cp /opt/frp/frp_0.34.0_linux_amd64/systemd/frpc.service /usr/lib/systemd/system/frpc.service2,frpc.service内容如下,无需更改。[Unit]Description=Frp Client ServiceAfter=network.target[Service]Type=simpleUser=nobodyRestart=on-failureRestartSec=5sExecStart=/usr/bin/frpc -c /etc/frp/frpc.iniExecReload=/usr/bin/frpc reload -c /etc/frp/frpc.ini[Install]WantedBy=multi-user.target2,按照frpc.service内的命令配置,将frpc启动文件何frpc.ini配置文件复制到指定路径,frpc是命令位置。mkdir /etc/frpcp /opt/frp/frp_0.34.0_linux_amd64/frpc.ini /etc/frp/frpc.inicp /opt/frp/frp_0.34.0_linux_amd64/frpc /usr/bin/frpc3,配置生效刷新配置文件systemctl daemon-reload设置开机自启动,确保frpc和frpc.ini文件复制成功才能执行该命令systemctl enable frpc查看状态,这里发现服务是dead或者inactive是正常现象systemctl status frpc重启reboot4,如果启动失败。应该是文件的权限问题。可以将frpc.service,frpc.ini,frpc这几个文件的权限设为 777

设置开机自启动,确保frpc和frpc.ini文件复制成功才能执行该命令,否则会出现服务无法停止现象,即使你kill进程程序仍然会自动重启,(我由于frpc文件没有cp成功)不断循环错误,除非你删除/etc/frp/frpc.ini文件或者systemctl disable frpc后kill进程。

systemctl list-unit-files | grep frpc 可以查看进程是否设置开机自启动

frpc.service核心:

ExecStart=/usr/bin/frpc -c /etc/frp/frpc.ini,相当于在使用了./frpc -c frpc.ini,只要你的ExecStart的地址与frpc.ini文件位置跟你实际存放对的位置一致即可,你甚至可以直接更改ExecStart的地址而不去复制frpc.ini。我们这里不更改配置文件内容,而是根据配置文件将frpc.ini文件复制到对应地址。

服务端:

服务端同理,不更改frps.service,复制frps.ini到ExecStart对应的地址即可,其他步骤均一致。

frp服务实现内网穿透SSH远程内网虚拟机相关推荐

  1. 使用frp端口映射实现内网穿透(SSH、HTTP服务)

    使用frp端口映射实现内网穿透(SSH.HTTP服务) 一.下载 通过内网穿透的原理和实现方式的学习我们已经明白了内网穿透的原理,想要实现内网穿透就需要让内网实现与具有公网IP的设备进行绑定. 我们这 ...

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

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

  3. 【内网穿透服务器】使用FRP实现内网穿透,远程访问内网服务器

    使用FRP实现内网穿透,远程访问内网服务器 frp 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, http, https 等协议类型,并且 web 服务支持 ...

  4. 内网穿透在家远程连接公司电脑

    说在前面------以下内容均建立在你有一台外网服务器的基础上进行.阿里云.腾讯云什么的都可以. 本文讲述: 1.在任何地方通过ssh连接公司或者家中的服务器 2.在任何地方通过远程桌面连接公司或者家 ...

  5. win10内网穿透实现远程桌面连接

    一.前情提要 在学校的时候曾经看到过同学在实验室用远程桌面控制宿舍自己的电脑,这样不仅能随时使用自己电脑上的文件,还省得把电脑带来带去又麻烦又重,当时也研究过,但没成功,这不新冠肺炎疫情导致开学时间一 ...

  6. FRP内网穿透映射本地内网80端口到云服务器

    FRP内网穿透映射本地内网80端口到云服务器 如题,我的配置中本地服务器和云服务器都为ubuntu20.04,但CentOS同样适用. PS:怎么把网页部署到本地80端口请找别的教程,本文重点在内网穿 ...

  7. 无需公网IP,SSH远程内网linux服务器

    通常内网服务器没有公网IP,外网无法直接访问.我们可以通过一个公网服务器发起连接,来实现外网远程访问内网的服务器. 我这里用的是cpolar内网穿透,支持http/https/tcp协议,可以永久免费 ...

  8. 远程办公利器——利用cpolar内网穿透在家远程公司内网电脑

       系列文章 Windows用户如何安装使用cpolar内网穿透? Windows用户如何将cpolar内网穿透配置成后台服务,并开机自启动? 远程办公利器--利用cpolar内网穿透在家远程公司内 ...

  9. 【Minecraft开服教学】使用 MCSM 面板一键搭建我的世界服务器 并使用内网穿透公网远程联机

    文章目录 前言 1.Mcsmanager安装 2.创建Minecraft服务器 3.本地测试联机 4. 内网穿透 4.1 安装cpolar内网穿透 4.2 创建隧道映射内网端口 5.远程联机测试 6. ...

最新文章

  1. Netflix 如何使用机器学习来提升流媒体质量
  2. 数据结构-----AVL树的旋转操作
  3. c语言 将url图片存到本地_python爬虫:爬取男生喜欢的图片
  4. MySQL占用系统进程_MySQL的Sleep进程占用大量连接解决方法
  5. 八伟大的工具,Windows用户永远都不想错过
  6. opencv-api adaptiveThreshold
  7. python上传大文件s3_aws s3上传大文件的4种方法
  8. Graham 三参数表示法 详解
  9. sql安装过程中,为 SQL Server 代理服务提供的凭据无效。若要继续操作,请为 SQL
  10. 2022年中青杯数学建模B题初步思路
  11. matlab 保存.fig文件后无法保存的问题
  12. 创业者两大特征:喜欢折腾与坚持不懈
  13. 从一个置顶CPT广告学习计算广告设计要点
  14. 快递查询 教你一个方法使用物流单号查询物流信息
  15. LIDAR系列之2:用激光雷达检测车道线
  16. 解决回溯法 - 回溯到底是个什么东西(含有大量经典例题加详细分析)
  17. [矩阵论] Unit 6. 矩阵的 Kronecker 积与 Hadamard 积 - 知识点整理
  18. 计算机桌面网络连接,我电脑开机进入桌面后要等近5分钟右下角才会出现网络连接图标,进而才能上网,为什么?...
  19. ESP32 关于HTTPS的使用
  20. 前端HTML5开发工具有哪些呢?

热门文章

  1. 基于 jquery ui 扩展Widget
  2. Java-Swing内嵌网页判断网址类型
  3. 【五一创作】iSH修改hostname(主机名)【美化】【短篇技术类文章】
  4. jquery when Deferred
  5. 详述数据中心内部通风的几种形态
  6. 店铺首页图片css,店铺装修-CSS中的背景样式
  7. 手机学习利器Qpython
  8. 厉建宇的阿里巴巴离职信
  9. JS实现数字自动转换人民币金额(自动格式化输入的数字/千位分隔符)
  10. Ad Mucher最新有效注册,升级方式