教你如何『SSH』远程连接『内网』服务器 | 您所在的位置:网站首页 › 怎么用实验室的服务器登录 › 教你如何『SSH』远程连接『内网』服务器 |
前言
最近博主实验室要搬家,因为服务器只有连接内网才能使用,所以搬走之后就无法在公网连接使用服务器,确实是让人非常苦恼,所以本文将会主要讲解如何使用公网服务器 SSH 连接内网服务器 系统配置 内网服务器:Ubuntu 18.04公网服务器:CentOS 7.9 方案下面汇总公网访问内网服务的各种方式 1、使用 TeamViewer 等远程桌面。但是需要双方都要安装TeamViewer软件,且版本要一致。虽然可用,但是比较麻烦 2、使用花生壳软件进行DDNS解析。虽然可用,但免费版本有带宽限制,使用效果不理想。 3、搭建 frp 服务器进行内网穿透。可以达到不错的速度,且可以开放任何想要的端口,可以让处于内网或防火墙后的设备对外界提供服务,它支持HTTP、TCP、UDP等众多协议,推荐使用。 综上所述,本文将会在公网服务器搭建 frp 服务,进行内网穿透,达到 SSH 连接内网服务器的效果 介绍frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网 注:内网穿透,简单地说就是内网的数据让外网可以获取,可以映射到公共网络上,这样就可以在公共网络上访问内网的数据。 官网仓库:fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet. (github.com) 官方文档:文档 | frp (gofrp.org) 安装部署本文对应官方文档:通过 SSH 访问内网机器 | frp (gofrp.org) 下载我们需要分别在客户端和服务端下载 frp 安装包 wget https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_linux_amd64.tar.gz然后解压安装包 tar -zxvf frp_0.51.3_linux_amd64.tar.gz展示文件内容 # ls -l total 30784 -rw-r--r--. 1 1001 docker 11358 Aug 14 12:09 LICENSE -rwxr-xr-x. 1 1001 docker 14290944 Aug 14 12:04 frpc -rw-r--r--. 1 1001 docker 126 Aug 14 12:09 frpc.ini -rw-r--r--. 1 1001 docker 12669 Aug 14 12:09 frpc_full.ini -rwxr-xr-x. 1 1001 docker 17186816 Aug 14 12:04 frps -rw-r--r--. 1 1001 docker 26 Aug 14 12:09 frps.ini -rw-r--r--. 1 1001 docker 5933 Aug 14 12:09 frps_full.ini其中 frpc 是内网服务器用的,frps 是公网服务器用的 配置最后我们需要填写配置文件,首先我们修改公网服务器上的 frps.ini 文件 # frps [common] bind_port = 7000然后在内网服务器上修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x # frpc [common] # tls_enable 防止启动报错 login to server failed: EOF tls_enable = true server_addr = x.x.x.x server_port = 7000 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000注:公网服务器需要开启 6000 7000 端口防火墙和安全组配置 最后分别启动客户端和服务端 # 服务端 ./frps -c ./frps.ini # 客户端 ./frpc -c ./frpc.ini然后我们在本地使用 SSH 访问内网机器,假设使用 test 用户连接 ssh -oPort=6000 [email protected] # 或是 ssh [email protected]:6000frp 会将请求 x.x.x.x:6000 的流量转发到内网机器的 22 端口 系统配置最后我们可以通过 systemd 启动服务并且配置开机自启,方便后续操作 官方配置文档:使用 systemd | frp (gofrp.org) 服务端首先我们可以在 frp 服务端创建并编辑 frps.service 文件 vim /etc/systemd/system/frps.service写入内容 [Unit] # 服务名称,可自定义 Description = frp server After = network.target syslog.target Wants = network.target [Service] Type = simple # 启动frps的命令,需修改为您的frps的安装路径 ExecStart=/usr/bin/frps -c /etc/frp/frps.ini [Install] WantedBy = multi-user.target其中复制文件命令如下 cp ./frps /usr/bin/frps mkdir /etc/frp cp ./frps.ini /etc/frp/frps.ini常用命令 # 启动frp systemctl start frps # 停止frp systemctl stop frps # 重启frp systemctl restart frps # 查看frp状态 systemctl status frps配置 frps 开机自启 systemctl enable frps 客户端此处与服务端配置基本类似,所以简单叙述 vim /etc/systemd/system/frpc.service [Unit] Description = frp client After = network.target syslog.target Wants = network.target [Service] Type = simple ExecStart=/usr/bin/frpc -c /etc/frp/frpc.ini [Install] WantedBy = multi-user.target sudo cp ./frpc /usr/bin/frpc sudo mkdir /etc/frp sudo cp ./frpc.ini /etc/frp/frpc.ini sudo systemctl start frpc sudo systemctl enable frpc 参考链接 如何从外网SSH连接内网服务器? - 知乎 (zhihu.com)如何在家连接实验室服务器 - 知乎 (zhihu.com)机器学习 - 在家如何访问内网机器? - 个人文章 - SegmentFault 思否怎么在家远程连接实验室的服务器-火山引擎 (volcengine.com)给实验室服务器配置内网穿透,避免内网尴尬,在家也能用服务器~_内网使用realvnc-CSDN博客如何让你的 Web 项目实现内网穿透 (freecodecamp.org)本文由博客一文多发平台 OpenWrite 发布! |
CopyRight 2018-2019 实验室设备网 版权所有 |