如何使用Linux服务器进行远程开发

一、前言

进行远程开发,是指的在windows系统直接操作Linux服务器,和之前在Windows上的开发方式完全保持一致,两个字:丝滑。

下面我会以Java开发为例,带大家掌握两种远程开发的方式,分为远程部署纯远程开发

二、准备工作

在学习远程开发前,我们要做一些准备工作,

1、保证网络联通

要保证Windows电脑它要能够访问到我们的虚拟机。打开虚拟机终端(Ctrl+Alt + T),输入ifconfig来查看虚拟机的ip地址。
image-20230816143153824
如果提示命令未发现,输入下面的提示命令进行安装sudo apt install net-tools进行安装
image-20230816143317482
然后再次输入ifconfig来查看ip地址:192.168.44.128
image-20230816143420168
另外一种方式,按windows键,输入IP,选择网络配置,点进去
image-20230816143928408
点击有线连接后面的设置按钮
image-20230816143949666
image-20230816144100999
回到Windows系统,Win+R,输入cmd,打开命令行,然后我们来ping虚拟机的地址
image-20230816144255673

2、Linux系统需要SSH支持

除了保证网络能ping通外,我们等会的远程开发它还依赖了SSH这样一个协议和Linux建立连接。所以我们要在咱们的Linux虚拟机内去提供这个SSH的支持

sudo apt-get install openssh-server

回车执行,输入y确认安装
image-20230816144756562
image-20230816144811801
安装完之后,输入ps -ef|grep ssh来查看SSH服务是否已经开启。看到如下图所示,说明服务已经开启

image-20230816145007066

3、安装Java环境

首先我们执行sudo apt update来更新以下我们本地软件包的安装信息,然后我们执行sudo apt install openjdk-8-jdk
image-20230816145908415
image-20230816145849068
输入Java -version来查看Java的版本
image-20230816150018464

4、安装maven环境

输入sudo apt install maven来安装我们的maven。

image-20230816150204490
安装完成后,输入mvn -v查看版本号,看到如下输出,说明已经安装成功了
image-20230816150334254
至此,我们远程开发所需的Linux环境以及准备完毕了。接下来就演示两种不同的远程开发方法

三、远程部署

1、介绍

远程部署方式的远程开发指的是:在本地自己的电脑上写代码,然后呢通过文件同步的方式,把代码同步到我们的远程Linux服务器,也就是我们的虚拟机上;最后如果要启动项目时,再用本地的电脑去连接远程的Linux服务器,通过远程执行命令的方式来编译代码、运行代码。这种方式更多的像是提高了我们从本地同步代码到服务器上的一个效率,它不算是真正意义上的远程开发。

image-20230816152021653
让我们把远程开发分为6个阶段:编写代码、文件同步、代码运行、编译构建、部署、调试。

2、远程部署方式

  • 创建一个干净的springboot项目

image-20230816154902031
本地启动,并访问:http://localhost:8080/hello
image-20230816155152834
现在我们要实现的就是能否在windows上访问Linux虚拟机上的接口

  • 配置文件同步

点击idea开发工具最上方的Tools—》Deployment—》Configuration来创建一个远程部署的配置

image-20230816160614534
点击添加,选择SFTP协议
image-20230816160749841
image-20230816160840481
image-20230816160938520
image-20230816161129797
image-20230816161153529
image-20230816161211374
然后点击apply,点击OK
image-20230816161345396
然后再右下角,点开Remote Host就可以看到远程服务器上的文件列表了

下面开始配置文件同步,实现代码自动同步到Linux服务器上:

点击Tools—》Deployment—》Configuration,进入配置,点击Mappings

image-20230816162648146
现在我们就完成了路径的一个映射

  • 校验代码同步是否生效

进入linux系统中,进入到/home/linjh/yuan-code,查看文件夹下的文件列表,目前是没有任何文件
image-20230816162835911
回到windows,在项目的根目录处点击右键,找到Deployment—》Sync with deployed to ubuntu……

image-20230816163143266
系统就会为我们列举现在没有同步到服务器上的文件
image-20230816163502691
然后关闭窗口,回到Linux服务器上,再次查看/home/linjh/yuan-code下的文件列表,会发现多了很多的文件
image-20230816163616100

  • 设置代码自动同步
    image-20230816164019050
    测试一下,在windows系统中,在项目src同级目录随便创建一个文件aaa.txt
    image-20230816164123018
    然后回到Linux服务器,再次查看/home/linjh/yuan-code下的文件列表,会发现aaa.txt文件已经自动同步了

输入cat aaa.txt查看一下文件的内容,跟windows系统写的一模一样,说明文件的内容也同步了
image-20230816164359980
但是我们在windows电脑上删除这个文件时,编译器会提示你是否要同步删除远程文件,如果每次都去询问一下是很麻烦的。所以可以在:Tools—》Deployment—》Options中设置
image-20230816164633324
勾选:删除本地文件时是否也要同步删除远程
image-20230816164912555
Options中主要用于更改文件同步的一些配置。到此文件同步设置就算完成了

  • 用Windows电脑去远程操控虚拟机运行项目

进入终端Terminal,选择右侧下拉箭头

image-20230816175643807
进入服务器代码根目录

linjh@ubuntu:~$ cd yuan-code/
linjh@ubuntu:~/yuan-code$ pwd
/home/linjh/yuan-code

执行mvn spring-boot:run通过run命令在远程服务器上调试运行了,此命令会下载maven依赖,并运行Java项目
image-20230816175923691

由于刚才只是通过run在远程服务器上调试运行,那我们怎么正式通过windows电脑来操作远程服务器完成项目的部署上线呢?

我们首先要构建项目,还是在终端目录中输入mvn clean package,稍等片刻,当我们能够看到build success这样的输出,就表示现在代码已经打包构建完毕了,我们能够在相应的目录下看到生成的jar包

image-20230817085154251

执行java -jar /home/linjh/yuan-code/target/yuan-code-0.0.1-SNAPSHOT.jar运行项目jar包,真正项目中后面还可以指定运行的环境--spring。profiles.active=prod

image-20230817085639867

截止到现在我们完成了程序的远程同步、运行、编译构建和部署

  • 如何调试在Linux虚拟机上的远程程序

​ 在日常工作中,如何调试Linux虚拟机上的远程程序,比如打个断点,查看一下变量的信息等等。其实远程调试非常简单,但是比较关键的一点,这里一定要强调一下:大家最后不要在线上的程序去调试去打断点,可能会影响这个线上用户的运行,这是一个很危险的操作。

​ 如何开启远程调试呢?其实非常简单,首先点击右上角编辑配置
image-20230817103102039
然后这里我们新增一套运行的配置。添加–》输入remote……—》Remote JVM Debug
image-20230817103305677
输入debug调试服务名称,输入远程服务器ip,选择jdk版本,idea会自动为我们生成jvm参数,点击apply,然后OK
image-20230817104022516
复制上面生成的jvm参数,然后在idea终端启动jar包。java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar /home/linjh/yuan-code/target/yuan-code-0.0.1-SNAPSHOT.jar
image-20230817104246548
image-20230817104444802
然后点击右上角的debug按钮,启动debug模式,打断点,然后访问接口测试是否进入debug模式
image-20230817104601975
image-20230817104620208
image-20230817104633376
至此远程debug调试已经完成。现在我们就可以把我们的Linux虚拟机当成我们自己的电脑一样去进行开发了。以上就是第一种远程开发的讲解。

3、纯远程开发(推荐)

  • 实现原理

image-20230817110815396

区别于刚才演示的远程部署方式,我们现在使用的纯远程开发的方式,它的实现原理是这样的:

我们直接把所有的源代码编译运行,甚至是代码编辑器本身全部都放到了服务器上,以服务器为主。而我们的本地电脑呢,仅仅是运行了一个能操作远程服务器的界面,就有点类似于我们的云游戏一样,自己的电脑不存代码,不负责任何代码的运行,把脏活累活都交给咱们的服务器去干。那么这种远程开发方式比较适用于我们自己的电脑性能不高,服务器的性能很强以及开发环境需要多人协作或者大家需要统一同一套开发环境的场景,有些大厂会有一些开发机,开发者连接到开发机进行统一的开发协作。此方式依赖于Idea工具

  • 实现步骤

进入到idea的入口页面,点击Remote Development,我们点击下面的SSH,来新建一个远程项目;点击新建项目

image-20230817105501075

新建连接

image-20230817105603135

输入host、端口号、用户名、密码,点击测试连接

image-20230817105759528

显示连接成功,点击Ok进行添加。

image-20230817105902574

下拉选择添加好的远程服务器

image-20230817105944779

然后点击检查链接并继续。选择远程项目目录,然后点击下载IDE并连接

image-20230817110318147

image-20230817110404739

输入远程服务器的密码

image-20230817110433636

下面开发工具就是在为我们在远程服务器上安装jetbrains客户端,第一次比较慢。这个客户端跟我们现在大家看到的这个已经安装好的Windows电脑上的开发工具还是不太一样

image-20230817110454448

勾选,并点击继续,安装完成,进入远程客户端界面,我们可以直接点击项目运行文件

image-20230817151942916
想要学习Linux系统虚拟机环境搭建的可参考上篇文章:一篇文章,教你使用Vmware安装Linux系统

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

双木林L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值