教你怎样『SSH』远程连接『内网』服务器

打印 上一主题 下一主题

主题 1006|帖子 1006|积分 3018

媒介

近来博主实行室要搬家,因为服务器只有连接内网才能使用,以是搬走之后就无法在公网连接使用服务器,确实是让人非常苦恼,以是本文将会重要解说怎样使用公网服务器 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 安装包
  1. wget https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_linux_amd64.tar.gz
复制代码
然后解压安装包
  1. tar -zxvf frp_0.51.3_linux_amd64.tar.gz
复制代码
展示文件内容
  1. # ls -l
  2. total 30784
  3. -rw-r--r--. 1 1001 docker    11358 Aug 14 12:09 LICENSE
  4. -rwxr-xr-x. 1 1001 docker 14290944 Aug 14 12:04 frpc
  5. -rw-r--r--. 1 1001 docker      126 Aug 14 12:09 frpc.ini
  6. -rw-r--r--. 1 1001 docker    12669 Aug 14 12:09 frpc_full.ini
  7. -rwxr-xr-x. 1 1001 docker 17186816 Aug 14 12:04 frps
  8. -rw-r--r--. 1 1001 docker       26 Aug 14 12:09 frps.ini
  9. -rw-r--r--. 1 1001 docker     5933 Aug 14 12:09 frps_full.ini
复制代码
此中 frpc 是内网服务器用的,frps 是公网服务器用的
配置

最后我们须要填写配置文件,起首我们修改公网服务器上的 frps.ini 文件
  1. # frps
  2. [common]
  3. bind_port = 7000
复制代码
然后在内网服务器上修改 frpc.ini 文件,假设 frps 地点服务器的公网 IP 为 x.x.x.x
  1. # frpc
  2. [common]
  3. # tls_enable 防止启动报错 login to server failed: EOF
  4. tls_enable = true
  5. server_addr = x.x.x.x
  6. server_port = 7000
  7. [ssh]
  8. type = tcp
  9. local_ip = 127.0.0.1
  10. local_port = 22
  11. remote_port = 6000
复制代码
  注:公网服务器须要开启 6000 7000 端口防火墙和安全组配置
  最后分别启动客户端和服务端
  1. # 服务端
  2. ./frps -c ./frps.ini
  3. # 客户端
  4. ./frpc -c ./frpc.ini
复制代码
然后我们在本地使用 SSH 访问内网呆板,假设使用 test 用户连接
  1. ssh -oPort=6000 test@x.x.x.x
  2. # 或是
  3. ssh test@x.x.x.x:6000
复制代码
frp 会将请求 x.x.x.x:6000 的流量转发到内网呆板的 22 端口
系统配置

最后我们可以通过 systemd 启动服务并且配置开机自启,方便后续操作
官方配置文档:使用 systemd | frp (gofrp.org)
服务端

起首我们可以在 frp 服务端创建并编辑 frps.service 文件
  1. vim /etc/systemd/system/frps.service
复制代码
写入内容
  1. [Unit]
  2. # 服务名称,可自定义
  3. Description = frp server
  4. After = network.target syslog.target
  5. Wants = network.target
  6. [Service]
  7. Type = simple
  8. # 启动frps的命令,需修改为您的frps的安装路径
  9. ExecStart=/usr/bin/frps -c /etc/frp/frps.ini
  10. [Install]
  11. WantedBy = multi-user.target
复制代码
此中复制文件命令如下
  1. cp ./frps /usr/bin/frps
  2. mkdir /etc/frp
  3. cp ./frps.ini  /etc/frp/frps.ini
复制代码
常用命令
  1. # 启动frp
  2. systemctl start frps
  3. # 停止frp
  4. systemctl stop frps
  5. # 重启frp
  6. systemctl restart frps
  7. # 查看frp状态
  8. systemctl status frps
复制代码
配置 frps 开机自启
  1. systemctl enable frps
复制代码
客户端

此处与服务端配置基本雷同,以是简单叙述
  1. vim /etc/systemd/system/frpc.service
复制代码
  1. [Unit]
  2. Description = frp client
  3. After = network.target syslog.target
  4. Wants = network.target
  5. [Service]
  6. Type = simple
  7. ExecStart=/usr/bin/frpc -c /etc/frp/frpc.ini
  8. [Install]
  9. WantedBy = multi-user.target
复制代码
  1. sudo cp ./frpc /usr/bin/frpc
  2. sudo mkdir /etc/frp
  3. sudo cp ./frpc.ini  /etc/frp/frpc.ini
复制代码
  1. sudo systemctl start frpc
  2. sudo systemctl enable frpc
复制代码
参考链接



  • 怎样从外网SSH连接内网服务器? - 知乎 (zhihu.com)
  • 如安在家连接实行室服务器 - 知乎 (zhihu.com)
  • 呆板学习 - 在家怎样访问内网呆板? - 个人文章 - SegmentFault 思否
  • 怎么在家远程连接实行室的服务器-火山引擎 (volcengine.com)
  • 给实行室服务器配置内网穿透,制止内网尴尬,在家也能用服务器~_内网使用realvnc-CSDN博客
  • 怎样让你的 Web 项目实现内网穿透 (freecodecamp.org)
   本文由博客一文多发平台 OpenWrite 发布!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

三尺非寒

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表