开源方案RuoYi-Cloud-Plus详解——公网内网穿透到虚拟机环境(持续更新)

开源项目RuoYi-Cloud-Plus学习笔记——主目录(持续更新)https://blog.csdn.net/grd_java/article/details/146400626

一、虚拟机和镜像下载

目前截止25年10月12号,VMware Workstation已经免费,大家可以直接去官网下载最新版安装。参考文章https://blog.csdn.net/2501_90980289/article/details/148897568

嫌麻烦的可以直接访问我分享的百度网盘链接下载VMware Workstation 17pro虚拟机和Ubuntu 24版本的镜像(一个是名称包含desktop的,有可视化界面的,一个是没有可视化界面)


https://pan.baidu.com/s/1MfUCNKQhcEfcyxrB-3YzKw?pwd=ebw2


有了虚拟机,我们就需要系统镜像了,Ubuntu 24.04.3 LTS 桌面版(有可视化界面)官方下载:https://cn.ubuntu.com/download/desktop


在这里插入图片描述

如果上面的网站进不去的话,阿里云提供了各类系统的镜像服务https://developer.aliyun.com/mirror/


在这里插入图片描述


这里我选择使用Ubuntu系统,进入下载地址


在这里插入图片描述


选择Ubuntu安装源(ubuntu-releases)


在这里插入图片描述


点击其提供的下载地址


在这里插入图片描述


选择24.04版本,无论选择哪个,都会是最新版本


在这里插入图片描述


然后下载iso镜像即可,我这里选择带桌面,有图形界面的版本ubuntu-24.04.3-desktop-amd64.iso


在这里插入图片描述


同理如果你想选择centos7,可以选择https://mirrors.aliyun.com/centos/7/isos/x86_64/


在这里插入图片描述


二、创建虚拟机


创建新的虚拟机,并且选择自定义配置


在这里插入图片描述


选择硬件兼容性,高版本向下兼容


在这里插入图片描述


操作系统可以稍后安装,先配置硬件


在这里插入图片描述


选择自己需要的操作系统,我这里选择Ubuntu 64位


在这里插入图片描述


设置虚拟机名称,和虚拟机位置


在这里插入图片描述


给虚拟机分配cpu资源,先要搞清楚我们cpu有多少个逻辑处理器和内核数量,其中插槽代表我们CPU处理器的数量


在这里插入图片描述
在这里插入图片描述


我们的家用主机一般都是1个P(处理器数量,插槽),所有我们可以多配点C内核数量,而不是加P的数量,除非你要模拟多处理器环境。


在这里插入图片描述


我的内存是64G的,所有直接选择分配32G上去


在这里插入图片描述


选择网络类型为桥接网络模式(NAT也可以)


桥接模式让虚拟机成为局域网中的独立设备,与宿主机同网段(如192.168.1.x),可直接与局域网内其他设备互访,适合需要低延迟或对外提供服务的场景‌。


NAT模式则通过宿主机共享上网,虚拟机使用私有IP(如192.168.x.x),外部无法直接访问,适合开发测试或需隔离的场景‌


在这里插入图片描述


选择I/O,用系统推荐的即可


在这里插入图片描述


磁盘类型也选择系统推荐的


在这里插入图片描述


给虚拟机分配磁盘,我这里选择创建新的虚拟磁盘(说明:分配大小不是直接从你电脑拿出一块空间,是可以配置的,我们可以选择最大容量,也就是你虚拟机使用过程中用多少,实际就用多少,上限为你设置的值。当然也可以选择直接分配这么多空间,效率更高。)


在这里插入图片描述


选择立即分配磁盘空间,会直接将分配空间容量使用,而选择拆分多个文件,会动态分配空间,初始很小,数据越多,它越大。


在这里插入图片描述


选择虚拟磁盘位置


在这里插入图片描述


点击"完成"后,检查自己的电脑是否开启虚拟化(win10系统可以直接在任务管理器查看,win7可以百度一下怎么开启)


在这里插入图片描述
在这里插入图片描述

三、安装系统


点击刚才创建的虚拟机的CD/DVD,选择我们刚下载的镜像


在这里插入图片描述


编辑虚拟机设置-选项-高级-为启用了Hyper-V的主机禁用侧通道缓解,勾选上


在这里插入图片描述


启动虚拟机即可,等待一会后,语言按照自己需求进行选择


在这里插入图片描述


辅助的一些设置,一般默认即可


在这里插入图片描述


键盘布局使用默认的US即可


在这里插入图片描述


先选择不连接因特网


在这里插入图片描述


选择不进行更新


在这里插入图片描述


选择安装Ubuntu


在这里插入图片描述


交互式安装


在这里插入图片描述


只安装默认的一些组件应用


在这里插入图片描述


不安装专有软件


在这里插入图片描述


选择擦除当前磁盘所有内容进行安装Ubuntu系统,如果你不想删除现有磁盘内容,就选第二个选项


在这里插入图片描述


设置用户名密码,并选择登录的时候需要输入密码


在这里插入图片描述


时区选择上海


在这里插入图片描述


选择install安装即可


在这里插入图片描述

安装成功后,需要重启系统,此时我们已经将iso文件安装到物理磁盘了,所有需要改一下虚拟机设置。


在这里插入图片描述


进入虚拟机设置


在这里插入图片描述


将CD/DVD里面的启动时连接选项取消掉。


在这里插入图片描述


然后返回虚拟机内部,按回车即可


在这里插入图片描述


跳过使用Ubuntu Pro


在这里插入图片描述


不分享系统数据


在这里插入图片描述


点击finish完成即可


在这里插入图片描述


然后打开浏览器,访问百度测试一下网络


在这里插入图片描述

四、内网穿透

1、云服务器配置

首先,确保你有一台云服务器,拥有固定的公网ip


在这里插入图片描述


连接到我们的服务器,输入cd /命令进入根目录,输入ls命令查看目录


在这里插入图片描述

1.1 frp下载

https://github.com/fatedier/frp/releases,我这里是Linux系统,所以我下载Linux系统的版本。


在这里插入图片描述


  • 创建/home/frp目录(存放目录您可以根据自己需求更改位置),加上-p参数,避免目录存在而报错
sudo mkdir -p /home/frp
  • 进入目录
cd /home/frp
  • 下载 frp 压缩包
sudo wget https://github.com/fatedier/frp/releases/download/v0.65.0/frp_0.65.0_linux_amd64.tar.gz

如果使用命令无法下载,就我们手动下载后,用Xftp工具上传到服务器即可


在这里插入图片描述


在这里插入图片描述

  • 解压下载好的文件
sudo tar -xzf frp_0.65.0_linux_amd64.tar.gz
  • 查看解压后内容
ls

在这里插入图片描述

1.2 配置并启动

  • 解压后进入文件夹
cd frp_0.65.0_linux_amd64

在这里插入图片描述


这里有几个文件,c结尾的frpc和frpc.toml是客户端Client,代表被控设备,我们这里是云服务是Server服务端,所以删除这两个文件

  • 删除c结尾的文件
rm -f frpc
rm -f frpc.toml

在这里插入图片描述

  • vim工具配置frps.toml文件
vim frps.toml

输入的内容如下

#frps.toml当中的内容(直接复制此文本):
#-----------------客户端和服务端绑定的端口-----------------#
#将在控制端通过公网ip+此端口号的形式进行穿透访问
bindPort = 7000
#-----------------客户端和服务端绑定的端口-----------------#
#-----------------控制面板Dashboard配置-----------------#
# Dashboard 监听的地址,0.0.0.0 表示允许所有 IP 访问(默认为 0.0.0.0)
webServer.addr = "0.0.0.0"
# 将通过公网ip+此端口号访问frp控制面板(默认为 7500)
#例如在浏览器网址输入http://<你的服务器IP>:7500(例如http://1.2.3.4:7500)
  webServer.port = 7500
  # 访问控制面板Dashboard的账号和密码(根据自己需要更改)
  webServer.user = "admin"
  webServer.password = "admin"
  #-----------------控制面板Dashboard配置-----------------#
  #-----------------frp身份认证配置-----------------#
  # 下面两行是 frp 中用于客户端与服务端之间身份认证的核心配置,它们定义了如何验证连接的合法性,防止未经授权的客户端接入你的 frp 服务器。
  # auth.method:指定认证方式。"token" 表示使用 Token 静态密钥认证。这是最常用、最简单的认证方式,适用于大多数场景。
  # auth.token:设置用于身份验证的共享密钥(Token)。客户端(frpc)连接服务端(frps)时,必须提供相同的 token,否则连接会被拒绝。这个值可以是任意字符串,但建议使用足够长且随机的字符串以提高安全性(例如:aB3kQ9xL2mR8nT7w)
  #身份认证方式
  auth.method="token"
  #使用token下设置静态密钥
  auth.token = "aB3kQ9xL2mR8nT7w"
  #-----------------frp身份认证配置-----------------#
  #-------------更多配置内容请自行访问frp官方文档查看-------------#

编写完毕后,按下esc键进入普通模式,输入:wq保存并退出编辑

  • 配置文件中,我们使用了7000和7500端口,需要在服务器防火墙开启此端口

进入安全组,配置规则,快速添加一个规则,或者选择旁边手动添加一个规则,我这里选择手动添加


在这里插入图片描述


添加7500后同理添加一个7000


在这里插入图片描述


在这里插入图片描述

  • 端口开发完成后,使用命令启动服务
./frps -c frps.toml

出现如下4行提示表示成功


在这里插入图片描述


因为我们将管理dashboard面板配置在了7500端口,所以现在访问公网ip:7500端口即可进入管理面板,输入我们刚才配置文件中配置的用户名和密码即可进入如下页面


在这里插入图片描述

1.3 systemd配置


参考官方文档,推荐我们使用systemd进行frp的管理(这里只演示frps服务端的配置,frpc客户端也是同样的步骤)


在这里插入图片描述

Ubuntu系统一般会自带systemd,如果没有需要自行安装

# 使用 yum 安装 systemd(CentOS/RHEL)
yum install systemd
# 使用 apt 安装 systemd(Debian/Ubuntu)
apt install systemd

systemd启动后台进程挂载服务并设置开机自启


  • 创建service文件
# 服务端frps
vim /etc/systemd/system/frps.service
# 客户端frpc
vim /etc/systemd/system/frpc.service
  • 复制如下配置,然后esc到普通模式,:wq保存并退出
[Unit]
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type=simple
#--------------------------#
#这是启动地址,需要根据你的实际地址做修改,如果你是跟着本文一步一步来的,那么直接复制
# 客户端这里frps改成frpc
ExecStart = /home/frp/frp_0.65.0_linux_amd64/frps -c /home/frp/frp_0.65.0_linux_amd64/frps.toml
#--------------------------#
ExecStop=/bin/kill $MAINPID
Restart=always
RestartSec=5
[Install]
WantedBy = multi-user.target
  • 运行frps
#客户端把frps改成frpc
systemctl start frps
  • 查看运行状态
#客户端把frps改成frpc
systemctl status frps

在这里插入图片描述

  • 其它相关命令
# 重新加载Units,如果上面你的配置文件修改了,需要这个命令
sudo systemctl daemon-reload
# 启动frp
sudo systemctl start frps
# 停止frp
sudo systemctl stop frps
# 重启frp
sudo systemctl restart frps
# 查看frp状态
sudo systemctl status frps
  • Ctrl+C终止查看后,软件开机自启动
sudo systemctl enable frps

在这里插入图片描述

  • 查看是否开启成功
systemctl is-enabled frps

在这里插入图片描述

2、虚拟机配置

步骤和上面服务端配置基本一样

2.1 用xshell和xftp远程连接虚拟机

这一步主要是为了上传frp压缩包到虚拟机里面


进入虚拟机,点击编辑选项卡,选择虚拟网络编辑器


在这里插入图片描述


控制面板中,可以查看我们当前上网的网卡


在这里插入图片描述


配置虚拟机桥接到我们的网卡


在这里插入图片描述


确保我们目标虚拟机网络适配器配置,勾选了桥接模式和复制物理网络连接状态


在这里插入图片描述


回到虚拟机,进入命令行模式


在这里插入图片描述


buntu没有默认提供ssh服务,因此首先安装ssh服务。如图,ssh和openssh-server, 二者缺一不可。可以使用sudo apt-get install xxx语句来安装,用whereis进行检查。


在这里插入图片描述

sudo apt-get install ssh
sudo apt-get install openssh-server

如果安装完后该服务没有自动启动,则考虑手工启动:

sudo /etc/init.d/ssh start

关闭防火墙

sudo ufw disable:关闭防火墙
sudo ufw default allow: 外来访问默认允许
sudo ufw allow 22:允许访问22端口

安装net-tools


在这里插入图片描述

sudo apt install net-tools

使用命令ifconfig查看ip地址inet,我这里是192.168.0.184


在这里插入图片描述

此时进入xshell,新建一个连接,主机输入我们上面的ip地址,端口号22


在这里插入图片描述


输入虚拟机的用户名和密码即可连接成功


在这里插入图片描述

切换到root用户


忘了密码就用命令sudo passwd root重新设置密码


开启root权限登录

cd /etc/ssh
sudo vim sshd_config

找到PermitRootLogin 解除注释,改为 yes
在这里插入图片描述

重启ssh

sudo /etc/init.d/ssh start

通过xshell可以直接使用xftp进行连接,方便后续传输文件,记住用root用户登录才能上传
在这里插入图片描述

2.2 配置并启动


1、先将frp压缩包放到虚拟机上


在这里插入图片描述


2、解压

sudo tar -xzf frp_0.65.0_linux_amd64.tar.gz

在这里插入图片描述


3、进入文件夹,删除frps和frps.toml,因为我们这里是Client客户端


在这里插入图片描述


4、编辑frpc.toml文件,大家根据下面的代码片,自行配置即可

vim frpc.toml
#frpc.toml当中的内容(直接复制此文本):
#---------------------配置服务器连接服务---------------------#
#你的云服务器公网ip
serverAddr = "8.130.xxx.xxx"
#连接到云服务器端口,需要和frps.toml配置文件中端口一致
serverPort = 7000
#配置连接认证方式,需要和云服务器的frps.toml配置文件中端口一致
auth.method = "token"
#配置连接密钥,需要和云服务器的frps.toml配置文件中端口一致
auth.token = "aB3kQ9xL2mR8nT7w"
#---------------------配置服务器连接服务---------------------#
#---------------------配置穿透连接服务(本机/本地网络穿透)---------------------#
#开放端口连接
[[proxies]]
#设置连接名称(根据自己需求)
name = "test-tcp1"
#设置连接种类(根据自己需求)
type = "tcp"
#配置本机网络穿透
localIP = "127.0.0.1"
#本机被穿透端口(根据自己需求)
localPort = 8080 # 这里改成22,就可以通过公网+6100端口,远程用xshell连接虚拟机了
#访问端口(根据自己需求)
remotePort = 6100
#127.0.0.1地址指代本机/本地网络,例如本机的数据库、ssh、Nginx、Python 服务等等
#意思就是说当你在其他设备访问公网+6100端口时,则会访问到被控机的127.0.0.1+8080端口以完成网络穿透
#---------------------配置穿透连接服务(本机/本地网络穿透)---------------------#
#---------------------配置穿透连接服务(本地局域网穿透)---------------------#
#开放端口连接
[[proxies]]
#设置连接名称(根据自己需求)
name = "test-tcp2"
#设置连接种类(根据自己需求)
type = "tcp"
#配置本机网络穿透(根据自己需求)
localIP = "192.168.1.123"
#本机被穿透端口(根据自己需求)
localPort = 80
#访问端口(根据自己需求)
remotePort = 6200
#192.168.1.123根据自己需求更改为局域网内的网络设备,例如局域网的NAS、摄像头等等局域网当中的设备
#意思就是说当你在其他设备访问公网+6200端口时,则会访问到被控机局域网当中的192.168.1.123+80端口以完成内网局域网的网络穿透
#---------------------配置穿透连接服务(本机网络)---------------------#
#---------------------配置文件穿透服务---------------------#
#共享文件访问
[[proxies]]
#设置连接名称(根据自己需求)
name = "G_drive"
#设置连接种类(根据自己需求)
type = "tcp"
#访问端口(根据自己需求)
remotePort = 6001
[proxies.plugin]
#设置连接类别
type = "static_file"
# 设置要对外穿透暴露的目录(根据自己需求)
localPath = "G:\\"
# 设置访问路径名,当访问http://x.x.x.x:6001/123/的时候则会访问本地的对外穿透暴露的目录(根据自己需求)
stripPrefix = "123"
#设置用户名和密码
httpUser = "1234"  # 用户名
httpPassword = "12341234"  # 密码
#意思就是说当你在其他设备访问公网+6001/123/时(http://x.x.x.x:6001/123/),则会访问到被控机的"G:\\"文件夹下,以完成本地文件夹的对外穿透服务
#---------------------配置文件穿透服务---------------------#
#-------------这里只列举三种常见服务,其余服务请翻阅frp文档进行配置-------------#

注意:上面配置文件中开启的端口,例如6001,需要去云服务器防火墙中开启端口(参考上面云服务器配置中的配置)

最后,启动客户端即可

./frpc -c frpc.toml

2.3 通过公网ip使用xshell访问虚拟机

首先我们xshell访问虚拟机需要22端口,所以我们内网穿透需要配置22号端口,这里我将22号端口映射到云服务器的6100端口,此时就可以通过公网ip的6100端口穿透到虚拟机22号端口


上一小节给出的配置中,将映射从8080改为22号端口


在这里插入图片描述


记住一定要把自己的公网ip配置好


在这里插入图片描述


此时通过xshell建立连接即可,记住主机填公网ip,端口号是我们配置文件中配置的6100
在这里插入图片描述


此时就会通过公网穿透到虚拟机的22号端口上了


在这里插入图片描述

posted on 2025-11-12 10:51  ljbguanli  阅读(0)  评论(0)    收藏  举报