ReturnTmp's Blog ReturnTmp's Blog
首页
基础课程
编程语言
框架技术
运维笔记
人工智能
随笔摘录
  • 友链
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

ReturnTmp

分享有趣好玩的计算机知识
首页
基础课程
编程语言
框架技术
运维笔记
人工智能
随笔摘录
  • 友链
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • Jenkins | VuePress博客自动化部署
  • 三步教你轻松安装配置 Linux Anaconda 环境
  • Windows SSH 远程连接 Linux
  • VuePress 数学公式支持
  • 一文教你如何防御数据库渗透入侵
  • WSL2 Ubuntu20.04 配置 CUDA
  • 前端开发部署运维笔记
  • 运维监控指南
  • 如何使用『Nginx』配置后端『HTTPS』协议访问
  • 华为云云耀云服务器L实例评测|搭建您的私人影院网站
  • 华为云云耀云服务器L实例评测|服务器反挖矿防护指南
  • 华为云云耀云服务器L实例评测|Git 私服搭建指南
  • VSCode『SSH』连接服务器『GUI界面』传输
  • 『硅云』海外云服务器购买指南
  • GitHub Unfork 指南
  • 摆脱推荐算法,实现万物皆可『RSS』
  • Drone 指南
  • 教你如何『SSH』远程连接『内网』服务器
    • 前言
    • 方案
    • 介绍
    • 安装部署
      • 下载
      • 配置
    • 系统配置
      • 服务端
      • 客户端
    • 补充
      • 1
      • 2
    • 参考链接
  • 『GitHub Actions』静态博客部署指南
  • Nginx 配置路径解析
  • 『pnpm』多项目环境迁移指南
  • Nginx 403 forbidden 问题
  • 你知道『SSH』为什么安全吗
  • 手把手教你如何给『Linux』打补丁
  • KVM Anolis OS 环境搭建
  • Docker 快速搭建 MySQL 高可用集群
  • RabbitMQ 入门指南(安装,配置,应用)
  • linux JDK8 环境配置
  • 发布策略
  • Spring Cloud Gateway + Nacos 灰度发布
  • Nginx 负载均衡集群 节点健康检查
  • 前端监控搭建
  • 运维监控系统
  • MySQL 可视化监控
  • MySQL 死锁问题排查与解决
  • Zookeeper Windows 安装配置(单机 - 集群)
  • 阿里云服务器镜像迁移
  • git clone 失败问题
  • Couldn't find ffmpeg or avconv 问题
  • 运维笔记
ReturnTmp
2023-10-09
目录

教你如何『SSH』远程连接『内网』服务器

# 前言

最近博主实验室要搬家,因为服务器只有连接内网才能使用,所以搬走之后就无法在公网连接使用服务器,确实是让人非常苦恼,所以本文将会主要讲解如何使用公网服务器 SSH 连接内网服务器

系统配置

  • 内网服务器:Ubuntu 18.04
  • 公网服务器:CentOS 7.9

# 方案

下面汇总公网访问内网服务的各种方式

1、使用 TeamViewer 等远程桌面。但是需要双方都要安装TeamViewer软件,且版本要一致。虽然可用,但是比较麻烦

2、使用花生壳软件进行DDNS解析。虽然可用,但免费版本有带宽限制,使用效果不理想。

3、搭建 frp 服务器进行内网穿透。可以达到不错的速度,且可以开放任何想要的端口,可以让处于内网或防火墙后的设备对外界提供服务,它支持HTTP、TCP、UDP等众多协议,推荐使用。

综上所述,本文将会在公网服务器搭建 frp 服务,进行内网穿透,达到 SSH 连接内网服务器的效果

image-20231009221113810

# 介绍

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,且支持 P2P 通信。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网

注:内网穿透,简单地说就是内网的数据让外网可以获取,可以映射到公共网络上,这样就可以在公共网络上访问内网的数据。

官网仓库:fatedier/frp (github.com) (opens new window)

官方文档:文档 | frp (gofrp.org) (opens new window)

# 安装部署

本文对应官方文档:通过 SSH 访问内网机器 | frp (gofrp.org) (opens new window)

# 下载

我们需要分别在客户端和服务端下载 frp 安装包

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
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
1
2
3
4
5
6
7
8
9

其中 frpc 是内网服务器用的,frps 是公网服务器用的

# 配置

最后我们需要填写配置文件,首先我们修改公网服务器上的 frps.ini 文件

# frps
[common]
bind_port = 7000
1
2
3

然后在内网服务器上修改 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

1
2
3
4
5
6
7
8
9
10
11
12
13

注:公网服务器需要开启 6000 7000 端口防火墙和安全组配置

最后分别启动客户端和服务端

# 服务端
./frps -c ./frps.ini
# 客户端
./frpc -c ./frpc.ini
1
2
3
4

然后我们在本地使用 SSH 访问内网机器,假设使用 test 用户连接

ssh -oPort=6000 test@x.x.x.x
# 或是
ssh test@x.x.x.x:6000
1
2
3

frp 会将请求 x.x.x.x:6000 的流量转发到内网机器的 22 端口

# 系统配置

最后我们可以通过 systemd 启动服务并且配置开机自启,方便后续操作

官方配置文档:使用 systemd | frp (gofrp.org) (opens new window)

# 服务端

首先我们可以在 frp 服务端创建并编辑 frps.service 文件

vim /etc/systemd/system/frps.service
1

写入内容

[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
1
2
3
4
5
6
7
8
9
10
11
12
13

其中复制文件命令如下

cp ./frps /usr/bin/frps
mkdir /etc/frp
cp ./frps.ini  /etc/frp/frps.ini
1
2
3

常用命令

# 启动frp
systemctl start frps
# 停止frp
systemctl stop frps
# 重启frp
systemctl restart frps
# 查看frp状态
systemctl status frps
1
2
3
4
5
6
7
8

配置 frps 开机自启

systemctl enable frps
1

# 客户端

此处与服务端配置基本类似,所以简单叙述

vim /etc/systemd/system/frpc.service
1
[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
1
2
3
4
5
6
7
8
9
10
11
sudo cp ./frpc /usr/bin/frpc
sudo mkdir /etc/frp
sudo cp ./frpc.ini  /etc/frp/frpc.ini
1
2
3
sudo systemctl start frpc
sudo systemctl enable frpc
1
2

# 补充

由于我的服务器配置比较低,自建 frp 服务会出现缓慢卡顿,因此下面我将会提供一些免费 frp 服务,供大家使用

# 1

官网:SakuraFrp (natfrp.com) (opens new window)

每月流量有限制(签到可以领流量),但是带宽比较高

# 2

官网:FRP内网穿透-基于frp的免费内网穿透服务-免费frp内网穿透-免费frp服务器 (opens new window)

不限流量,但是带宽比较低(1M),但是每天都需要重新创建

# 参考链接

  • 如何从外网SSH连接内网服务器? - 知乎 (zhihu.com) (opens new window)
  • 如何在家连接实验室服务器 - 知乎 (zhihu.com) (opens new window)
  • 机器学习 - 在家如何访问内网机器? - 个人文章 - SegmentFault 思否 (opens new window)
  • 怎么在家远程连接实验室的服务器-火山引擎 (volcengine.com) (opens new window)
  • 给实验室服务器配置内网穿透_内网使用realvnc-CSDN博客 (opens new window)
  • 如何让你的 Web 项目实现内网穿透 (freecodecamp.org) (opens new window)
编辑 (opens new window)
上次更新: 2023/10/14, 10:01:13
Drone 指南
『GitHub Actions』静态博客部署指南

← Drone 指南 『GitHub Actions』静态博客部署指南→

最近更新
01
百度网盘加速
03-24
02
新版 PyCharm 设置 Conda 虚拟环境
03-24
03
腾讯云域名转到阿里云
03-24
更多文章>
Theme by Vdoing | Copyright © 2023-2024 ReturnTmp | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式