打开设置,在网络和Internet中选择Windows防火墙,进入高级设置,在防火墙属性,将入站连接改为允许:
(, 下载次数 Times of downloads: 81)
入站规则中找到文件和打印机共享,因为我们使用IPV4登录,将如下选项启用
(, 下载次数 Times of downloads: 84)
这时,ssh服务便开启了,我们获取此时的移动端ip地址,打开cmder,键入ipconfig,显示如下
(, 下载次数 Times of downloads: 84)
显示如下,因为笔记本使用WLAN,故我们需要红线标记的IPV4地址,记下。
公网IP在购买的云服务器上有写,计算服务器以同样的方法可以获得(因为cmder和Linux终端使用的命令相同)
因为我的腾讯云服务器和计算服务器使用的Linux系统相同,故开启ssh的方法相同,我们以云服务器的配置为例。
服务器中一般默认安装了openssh—server,可以使用
- yum list installed | grep openssh-server
复制代码命令查看,之后键入
进入配置文件。
PermitRootLogin yes #设置是否允许root登录,默认允许
(, 下载次数 Times of downloads: 81)
PasswordAuthentication yes 取消注释
(, 下载次数 Times of downloads: 89)
:wq保存后退出,键入
启用服务。
检查是否已经启动。
将sshd服务添加之自启动列表中,并查看是否开启自启动sshd服务。
- systemctl enable sshd.service
- systemctl list-unit-files | grep sshd
复制代码
(, 下载次数 Times of downloads: 78)
保证第二个是enable即可。
此时,ssh配置完成,记下此时的公网IP和计算服务器IP进行下一步内网穿透。
3 内网穿透
首先进行一步便利性操作——域名映射。在windows端,进入C:\Windows\System32\drivers\etc,找到hosts文件,code打开
在最后加入云服务器公网IP并在空格后写如自己喜欢的名字
(, 下载次数 Times of downloads: 77)
这样,ssh登录时便可使用自己喜欢的名字代替IP地址了。Linux中hosts文件在/etc/hosts,操作方法相同
去github上下载frp,选择Linux_amd64,下载。解压后通过code编辑。其中frps用于云服务器,frpc用于计算服务器。对于frps部分,只需在frps.ini中 [ common ]下一行加入token = XXXXXXX,X随便取,但需要保证frps和frpc中token相同即可。
(, 下载次数 Times of downloads: 86)
这里使用的是默认的7000端口,如有其他需要可取目录下的frps_full.ini查阅使用。
之后将安装包发送到云服务器上即可,这里保存在了/home目录下。发送方法可以查看云服务器的控制台,一般都有说明。运行命令
WebShell中出现三行结果,均为[I]则表示配置成功
编辑frpc。通过code打开,编辑frpc.ini在[ common ]下一行加入token = XXXXXXX,X随便取,但需要保证frps和frpc中token相同即可,将第三行的server_addr = 修改为公网IP,这里使用默认端口6000
(, 下载次数 Times of downloads: 84)
将文件发送到计算服务器中,我保存在了/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)状态即可。
5 文件传输
本来想使用code中的Remote-SSH插件实现,但是疯狂失败,后面又考虑使用命令行指令scp实现传输,结果只能win to linux 单向传输,穿不回来(可能和我win本身设置有问题)。最后迫不得已,使用WinSCP帮助实现文件传输。同样简洁方便,也不会占用过多硬盘空间。下载链接。在window端安装,一路回车就ok。 打开后新建会话,文件协议选择SCP,主机名称填写公网IP,端口号为上文设置的6000,输入要登陆的计算服务器的用户名和密码,保存就好。之后想要传输文件时鼠标拖动完事。
(, 下载次数 Times of downloads: 72)
(, 下载次数 Times of downloads: 89)
如此,内网穿透后远程登录和文件传输工作就搞定了,只要保证有电,联网,起码国内随时随地都可以跑计算化学的任务了!(实现边旅边做实验的美好愿望)
6 总结
本文使用frp内网穿透工具实现远程访问计算服务器和文件传输。可能不适用校园网的情况,但是自家的小宽带肯定没问题!
水平有限,操作错误的地方还望各位前辈不吝赐教。