计算化学公社

 找回密码 Forget password
 注册 Register
Views: 4939|回复 Reply: 23
打印 Print 上一主题 Last thread 下一主题 Next thread

[网络相关] 自己的小型服务器远程登录与文件传输

  [复制链接 Copy URL]

87

帖子

1

威望

1695

eV
积分
1802

Level 5 (御坂)

本帖最后由 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,可以使用
  1. yum list installed | grep openssh-server
复制代码
命令查看,之后键入
  1. vim /etc/ssh/sshd_config
复制代码
进入配置文件。
监听22端口
PermitRootLogin yes #设置是否允许root登录,默认允许
PasswordAuthentication yes 取消注释
:wq保存后退出,键入
  1. service sshd start
复制代码

启用服务。
  1. ps -e | grep sshd
复制代码

检查是否已经启动。
将sshd服务添加之自启动列表中,并查看是否开启自启动sshd服务。
  1. systemctl enable sshd.service
  2. 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目录下。发送方法可以查看云服务器的控制台,一般都有说明。运行命令
  1. ./frps -c ./frps.ini
复制代码
WebShell中出现三行结果,均为[I]则表示配置成功
编辑frpc。通过code打开,编辑frpc.ini在[ common ]下一行加入token = XXXXXXX,X随便取,但需要保证frps和frpc中token相同即可,将第三行的server_addr = 修改为公网IP,这里使用默认端口6000
将文件发送到计算服务器中,我保存在了/opt文件中。执行命令
  1. ./frpc -c ./frpc.ini
复制代码
出现三行结果均为[I]即可
此时可以看到此三行命令同样出现在WebShell中,表示内网穿透成功。
打开云服务器的控制台,修改防火墙。上文有关的端口为6000和7000,故我们只需将此端口添加到防火墙中。不同服务器的操作方法不尽相同,可以在控制台的说明。
此时,我们可以在window笔记本上,通过cmder使用命令
  1. ssh -p 6000 root@tencent
复制代码

远程登录计算服务器了。密码为计算服务器中设置的密码。同样可以设置免密登录,此处不再赘述。

4 frp开机自启
此时我们需要frp自带的systemd文件夹中的内容,然而我下载的0.44.0版本没有自带,我把需要的代码贴在本文。

对于frps端,打开frps.service,将frps的路径修改为实际路径,个人习惯将User改为root
  1. [Unit]
  2. Description=Frp Server Service
  3. After=network.target

  4. [Service]
  5. Type=simple
  6. User=nobody
  7. Restart=on-failure
  8. RestartSec=5s
  9. ExecStart=/usr/bin/frps -c /etc/frp/frps.ini
  10. LimitNOFILE=1048576

  11. [Install]
  12. WantedBy=multi-user.target
复制代码

复制此内容,在云服务器中键入命令
  1. vim /usr/lib/systemd/system/frp.service
复制代码
将上述内容复制谈贴过去,:wq保存退出。分别键入命令
  1. #刷新配置
  2. systemctl daemon-reload
  3. #启动服务
  4. systemctl start frp
  5. #设置开机自动启动
  6. systemctl enable frp
  7. #查看服务状态
  8. systemctl status frp
复制代码
最后显示为最后为active(running)状态即可。
配置C端。打开frpc.service,,同样将fprc路径修改为实际路径,修改用户
  1. [Unit]
  2. Description=Frp Client Service
  3. After=network.target

  4. [Service]
  5. Type=simple
  6. User=nobody
  7. Restart=on-failure
  8. RestartSec=5s
  9. ExecStart=/usr/bin/frpc -c /etc/frp/frpc.ini
  10. ExecReload=/usr/bin/frpc reload -c /etc/frp/frpc.ini
  11. LimitNOFILE=1048576

  12. [Install]
  13. WantedBy=multi-user.target
复制代码
复制内容。在计算服务器端键入
  1. 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即可。








评分 Rate

参与人数
Participants 11
威望 +1 eV +46 收起 理由
Reason
cxh19990601 + 4 谢谢
pineapple2 + 2 GJ!
ggdh + 5 GJ!
QH1995 + 5 好物!
lonemen + 5 谢谢分享
丁越 + 5 赞!
tanyazhi + 5
妙角不脆 + 5 牛!
nkulyl80 + 5 牛的!
小墨 + 5 GJ!
sobereva + 1

查看全部评分 View all ratings

509

帖子

1

威望

4249

eV
积分
4778

Level 6 (一方通行)

24#
发表于 Post on 2024-5-30 10:14:56 | 只看该作者 Only view this author
abin 发表于 2024-5-30 10:12
你用的桌面版的Linux 系统?
是否开启了,类似于待机或者节能模式?

好的,谢谢提醒 我再研究一下

2302

帖子

1

威望

5481

eV
积分
7803

Level 6 (一方通行)

23#
发表于 Post on 2024-5-30 10:12:12 | 只看该作者 Only view this author
tjuptz 发表于 2024-5-30 09:23
试了下确实很方便,但遇到一个问题,就是如果不先在linux服务器上ping一下笔记本这边,长时间没用后,笔 ...

你用的桌面版的Linux 系统?
是否开启了,类似于待机或者节能模式?

服务器用服务器版本吧,
桌面版就别折腾了。

或者问Tailscale官方,这东西不是我写的。

我这里几十台机器,没有你说的问题。
High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

509

帖子

1

威望

4249

eV
积分
4778

Level 6 (一方通行)

22#
发表于 Post on 2024-5-30 09:23:08 | 只看该作者 Only view this author
abin 发表于 2024-5-29 18:50
OmniEdge
是的,这个停止运营了。

试了下确实很方便,但遇到一个问题,就是如果不先在linux服务器上ping一下笔记本这边,长时间没用后,笔记本这边就ping不通了,但控制台还是显示connected,这种情况您遇到过吗

2302

帖子

1

威望

5481

eV
积分
7803

Level 6 (一方通行)

21#
发表于 Post on 2024-5-29 18:50:18 | 只看该作者 Only view this author
tjuptz 发表于 2024-5-29 16:26
OmniEdge 已经停止运营?我看您现在主推的时Tailscale,决定照着您的视频试一下

OmniEdge
是的,这个停止运营了。

我和Tailscale无任何利益关系好……

我只是觉得,Tailscale用起来太简单了……
不用啥技能,就可以使用了。
High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

509

帖子

1

威望

4249

eV
积分
4778

Level 6 (一方通行)

20#
发表于 Post on 2024-5-29 16:26:55 | 只看该作者 Only view this author
abin 发表于 2022-7-19 15:48
可以试试
OmniEdge

OmniEdge 已经停止运营?我看您现在主推的时Tailscale,决定照着您的视频试一下

176

帖子

0

威望

2556

eV
积分
2732

Level 5 (御坂)

19#
发表于 Post on 2022-8-28 08:27:32 | 只看该作者 Only view this author
不错,收藏

2302

帖子

1

威望

5481

eV
积分
7803

Level 6 (一方通行)

18#
发表于 Post on 2022-8-2 12:37:20 | 只看该作者 Only view this author
biogon 发表于 2022-8-2 12:24
这个没有windows原生支持

抱歉。

SSHFS的原作者已经暂停开发了,并欢迎热心人士接手。
也许使用SSHFS可能不是一个好建议。

我不晓得如何理解原生支持?

如果指微软系统标准镜像,那肯定没有。
通用的非服务器版,可能openSSH都没有。

如果说,有没有微软用户可以直接用的MSI安装包,
那肯定有的。搜索sshfs windows 第一条就有。
看协议,是免费开源的。

其实也不用这么折腾。
既然ssh都可以访问了,
微软用户,使用免费的MobaXterm ,
GUI scp,path follow, sshJump,GUI本地显示
基本都支持了。而且还是免费的。
还是专门针对微软系统开发的。

此方案未必最佳,只是提供一个可以参考的备用方案。
High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

1237

帖子

1

威望

3501

eV
积分
4758

Level 6 (一方通行)

17#
发表于 Post on 2022-8-2 12:24:51 | 只看该作者 Only view this author
abin 发表于 2022-8-2 11:43
既然可以ssh,
那就sshfs吧。

这个没有windows原生支持

2302

帖子

1

威望

5481

eV
积分
7803

Level 6 (一方通行)

16#
发表于 Post on 2022-8-2 11:43:59 | 只看该作者 Only view this author
biogon 发表于 2022-7-31 14:01
scp当然能传回来,反过来操作就行了,传文件最快捷还是win挂载nfs,直接打开文件夹拖拽就传了

既然可以ssh,
那就sshfs吧。
High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

1237

帖子

1

威望

3501

eV
积分
4758

Level 6 (一方通行)

15#
发表于 Post on 2022-7-31 14:01:47 | 只看该作者 Only view this author
scp当然能传回来,反过来操作就行了,传文件最快捷还是win挂载nfs,直接打开文件夹拖拽就传了

30

帖子

0

威望

520

eV
积分
550

Level 4 (黑子)

14#
发表于 Post on 2022-7-31 13:43:01 | 只看该作者 Only view this author
5撇到3撇 发表于 2022-7-19 23:13
感觉网上租用公网服务器的话 下载速度比较慢,一个大一点的轨迹下载慢,连接有时也不是很稳定(不知道是不 ...

我用rsync很稳定,下载数据足够了(阿里云杭州服务器,2M带宽,cpu内存最低配置)

130

帖子

0

威望

713

eV
积分
843

Level 4 (黑子)

13#
发表于 Post on 2022-7-22 00:13:52 | 只看该作者 Only view this author
wxsxjj 发表于 2022-7-20 00:42
同感,我也感觉受网络影响比较大。

如果要涉及到数据传输的话 推荐使用一个便宜些的网盘,相当于一个中介,这种比较稳定 速度也很快,实在不行就人工u盘搬运,这个方法最稳定

130

帖子

0

威望

713

eV
积分
843

Level 4 (黑子)

12#
发表于 Post on 2022-7-22 00:09:07 | 只看该作者 Only view this author
abin 发表于 2022-7-20 11:26
国内的网络, 是按照带宽来收费的.

只是用来做SSH Jumper的话,

谢谢abin老师

2302

帖子

1

威望

5481

eV
积分
7803

Level 6 (一方通行)

11#
发表于 Post on 2022-7-20 18:21:29 | 只看该作者 Only view this author
anlancx 发表于 2022-7-20 16:47
大佬 能展开说说嘛

这是专业公司做的东西。

看简介,
客户端安装后,
登录一下就行了,没有其他设定或者配置。

支持你能找到的各种系统,
比如各种路由器,NAS,服务器,各种电脑。

去他们的站点看看就晓得了。

免费的方案足够用了,
可以加入20台机器!

我记得,这家老板,
是一个能讲中文的人,
是否是中国人,不晓得。

我推荐的东西,一般都免费,
或者免费的方案,都能满足应用需求的。
而且基本都是不需要做任何配置的。

High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-27 18:19 , Processed in 0.205534 second(s), 26 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list