本帖最后由 wxsxjj 于 2022-8-31 11:35 编辑
自己的小型服务器远程登录与文件传输
0 前言 最近自己组装了一台8375C双路服务器,计算环境搭建好之后便着手与远程登录,网络上教程不少但感觉缺少一个一口气讲完,适合我这种几乎电脑小白的教程。结合我自己走过的弯路,在论坛和大家分享一下我的经历,使用frp内网穿透工具,优雅的访问远程服务器和文件传输的方法。
1 准备工作
window10笔记本,centos系统的轻量级应用服务器,Rocky 8系统的计算服务器。github下载frp,win中安装cmder&WinSCP
因为我的笔记本是win10系统,系统非专业版不自带虚拟机故不考虑,云服务器可以去阿里云/腾讯云上租一个1C2G或者2C2G的轻量级应用服务器,找新人专享很便宜,安装Linux系统,反正主要用公网IP。当然,自己买一个公网IP也行。cmder是因为我想用linux的指令行,而且比powershell和cmd好看太多了,很方便,文本编辑器使用VS code,因为之前想用Remote SSH插件但是失败了,主要也是因为很好看。cmder的配置可以参考sob老师的博文《量子化学程序ORCA的安装方法》http://sobereva.com/451。
2 开启SSH服务
我们一共有三台电脑:远程控制的window10笔记本,云服务器,计算服务器。云服务器与计算服务器开启方法相同,故我们分别介绍window10和Linux开启SSH的方法。适用于目标服务器为window系统
window10系统中,打开设置搜索添加可选功能,搜索OpenSSH,安装如下两个应用(OpenSSH 服务端;OpenSSH 客户端)
使用快捷指令win+s,搜索计算机管理,在服务选项下找到OpenSSH相关的两个服务,开启并选择自动
打开设置,在网络和Internet中选择Windows防火墙,进入高级设置,在防火墙属性,将入站连接改为允许: 入站规则中找到文件和打印机共享,因为我们使用IPV4登录,将如下选项启用 这时,ssh服务便开启了,我们获取此时的移动端ip地址,打开cmder,键入ipconfig,显示如下 显示如下,因为笔记本使用WLAN,故我们需要红线标记的IPV4地址,记下。 公网IP在购买的云服务器上有写,计算服务器以同样的方法可以获得(因为cmder和Linux终端使用的命令相同) 因为我的腾讯云服务器和计算服务器使用的Linux系统相同,故开启ssh的方法相同,我们以云服务器的配置为例。 服务器中一般默认安装了openssh—server,可以使用 - yum list installed | grep openssh-server
复制代码命令查看,之后键入 进入配置文件。 监听22端口 PermitRootLogin yes #设置是否允许root登录,默认允许 PasswordAuthentication yes 取消注释 :wq保存后退出,键入
启用服务。
检查是否已经启动。
将sshd服务添加之自启动列表中,并查看是否开启自启动sshd服务。 - systemctl enable sshd.service
- systemctl list-unit-files | grep sshd
复制代码保证第二个是enable即可。
此时,ssh配置完成,记下此时的公网IP和计算服务器IP进行下一步内网穿透。
3 内网穿透 首先进行一步便利性操作——域名映射。在windows端,进入C:\Windows\System32\drivers\etc,找到hosts文件,code打开 在最后加入云服务器公网IP并在空格后写如自己喜欢的名字 这样,ssh登录时便可使用自己喜欢的名字代替IP地址了。Linux中hosts文件在/etc/hosts,操作方法相同 去github上下载frp,选择Linux_amd64,下载。解压后通过code编辑。其中frps用于云服务器,frpc用于计算服务器。
对于frps部分,只需在frps.ini中 [ common ]下一行加入token = XXXXXXX,X随便取,但需要保证frps和frpc中token相同即可。 这里使用的是默认的7000端口,如有其他需要可取目录下的frps_full.ini查阅使用。 之后将安装包发送到云服务器上即可,这里保存在了/home目录下。发送方法可以查看云服务器的控制台,一般都有说明。运行命令 WebShell中出现三行结果,均为[I]则表示配置成功
编辑frpc。通过code打开,编辑frpc.ini在[ common ]下一行加入token = XXXXXXX,X随便取,但需要保证frps和frpc中token相同即可,将第三行的server_addr = 修改为公网IP,这里使用默认端口6000 将文件发送到计算服务器中,我保存在了/opt文件中。执行命令 出现三行结果均为[I]即可 此时可以看到此三行命令同样出现在WebShell中,表示内网穿透成功。 打开云服务器的控制台,修改防火墙。上文有关的端口为6000和7000,故我们只需将此端口添加到防火墙中。不同服务器的操作方法不尽相同,可以在控制台的说明。 此时,我们可以在window笔记本上,通过cmder使用命令
远程登录计算服务器了。密码为计算服务器中设置的密码。同样可以设置免密登录,此处不再赘述。
4 frp开机自启 此时我们需要frp自带的systemd文件夹中的内容,然而我下载的0.44.0版本没有自带,我把需要的代码贴在本文。
对于frps端,打开frps.service,将frps的路径修改为实际路径,个人习惯将User改为root - [Unit]
- Description=Frp Server Service
- After=network.target
- [Service]
- Type=simple
- User=nobody
- Restart=on-failure
- RestartSec=5s
- ExecStart=/usr/bin/frps -c /etc/frp/frps.ini
- LimitNOFILE=1048576
- [Install]
- WantedBy=multi-user.target
复制代码
复制此内容,在云服务器中键入命令 - vim /usr/lib/systemd/system/frp.service
复制代码将上述内容复制谈贴过去,:wq保存退出。分别键入命令 - #刷新配置
- systemctl daemon-reload
- #启动服务
- systemctl start frp
- #设置开机自动启动
- systemctl enable frp
- #查看服务状态
- systemctl status frp
复制代码最后显示为最后为active(running)状态即可。 配置C端。打开frpc.service,,同样将fprc路径修改为实际路径,修改用户 - [Unit]
- Description=Frp Client Service
- After=network.target
- [Service]
- Type=simple
- User=nobody
- Restart=on-failure
- RestartSec=5s
- ExecStart=/usr/bin/frpc -c /etc/frp/frpc.ini
- ExecReload=/usr/bin/frpc reload -c /etc/frp/frpc.ini
- LimitNOFILE=1048576
- [Install]
- WantedBy=multi-user.target
复制代码复制内容。在计算服务器端键入 - vim /usr/lib/systemd/system/frp.service
复制代码 将复制的内容粘贴过去,再次键入上文配置fprs的相同命令,最后为active(running)状态即可。如此,frp的自启动便设置好了。
5 文件传输 本来想使用code中的Remote-SSH插件实现,但是疯狂失败,后面又考虑使用命令行指令scp实现传输,结果只能win to linux 单向传输,穿不回来(可能和我win本身设置有问题)。最后迫不得已,使用WinSCP帮助实现文件传输。同样简洁方便,也不会占用过多硬盘空间。下载链接。在window端安装,一路回车就ok。 打开后新建会话,文件协议选择SCP,主机名称填写公网IP,端口号为上文设置的6000,输入要登陆的计算服务器的用户名和密码,保存就好。之后想要传输文件时鼠标拖动完事。 如此,内网穿透后远程登录和文件传输工作就搞定了,只要保证有电,联网,起码国内随时随地都可以跑计算化学的任务了!(实现边旅边做实验的美好愿望)
6 总结 本文使用frp内网穿透工具实现远程访问计算服务器和文件传输。可能不适用校园网的情况,但是自家的小宽带肯定没问题! 水平有限,操作错误的地方还望各位前辈不吝赐教。
**补充说明当一切调试好后,可以将计算服务器关闭root登录,一定程度上提高安全性。即进入vim /etc/ssh/sshd_config,将PermitRootLogin yes中yes改为no即可。
|