我这个环境呢,学校实验室的服务器是两块 3090 的 ubuntu,可以看我本专栏之前的文章,你能更细致的了解到我都干了些啥。realVNC 确实是实现了只要能联网就能用图形化的功能。但是这一放假不在同一个省份,250公里,图形界面反应太慢了。于是内网穿透咱就得用起来了呀~

内网穿透 (fast reverse proxy, frp),是一个高性能反向代理应用,可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转,暴露到公网中。通过在具有公网 IP 的节点上部署 frp 服务端,可以轻松地将内网服务穿透到公网,同时提供诸多专业的功能特性。

作者是中国人哦~

这是 Github 项目主页,这是官方文档。你要有一个公网 IP 节点,一般咱就是嫖个租个云服务器,这边需要读者自己了解一下阿里云、腾讯云、百度云、金山云、京东云等等云服务,咱就用华为云来举例子,因为阿里云免费到期了,华为云有免费活动

是租一个最便宜的计算型服务器就好,通常就叫弹性云服务器ECS,各种云服务的类型大概翻翻看看介绍,基本上就都理解的差不多了。有搭网站的、GPU的、做电商的、数据库的,大差不离,名字也是百花齐放啊。

现在你就有一台公网节点了~


接下来就要在公网 IP 节点服务器和内网服务器上安装 frp 服务的 service 端和 client 端了,把对应版本的服务下载到服务器上。一般咱就都是 linux_amd64 那个版本

root@ecs-curledgoat:~# ls -al
total 8680
drwx------  5 root root    4096 Jan 24 20:21 .
drwxr-xr-x 25 root root    4096 Jan 24 18:26 ..
-rw-r--r--  1 root root     158 Jan 24 18:32 .bash_history
-rw-r--r--  1 root root    3106 Apr  9  2018 .bashrc
drwx------  3 root root    4096 Feb 24  2021 .cache
-rw-r--r--  1 root root 8848900 Jan 24 20:21 frp_0.38.0_linux_amd64.tar.gz
drwx------  3 root root    4096 Feb 24  2021 .gnupg
-rw-r--r--  1 root root     148 Aug 17  2015 .profile
drwx------  2 root root    4096 Jan 24 16:01 .ssh
-rw-------  1 root root     120 Jan 24 20:14 .Xauthority

可以看到咱这边已经有了,然后解压出来,

root@ecs-curledgoat:~# tar -zxvf frp_0.38.0_linux_amd64.tar.gz
frp_0.38.0_linux_amd64/
frp_0.38.0_linux_amd64/frpc_full.ini
frp_0.38.0_linux_amd64/frps.ini
frp_0.38.0_linux_amd64/frps_full.ini
frp_0.38.0_linux_amd64/LICENSE
frp_0.38.0_linux_amd64/frpc
frp_0.38.0_linux_amd64/systemd/
frp_0.38.0_linux_amd64/systemd/frps@.service
frp_0.38.0_linux_amd64/systemd/frpc.service
frp_0.38.0_linux_amd64/systemd/frps.service
frp_0.38.0_linux_amd64/systemd/frpc@.service
frp_0.38.0_linux_amd64/frpc.ini
frp_0.38.0_linux_amd64/frpsroot@ecs-curledgoat:~# cd frp_0.38.0_linux_amd64/
root@ecs-curledgoat:~/frp_0.38.0_linux_amd64# ls -al
total 23188
drwxr-xr-x 3 1001  121     4096 Oct 25 21:01 .
drwx------ 6 root root     4096 Jan 24 20:24 ..
-rwxr-xr-x 1 1001  121 10219520 Oct 25 20:58 frpc
-rw-r--r-- 1 1001  121     9699 Oct 25 21:01 frpc_full.ini
-rw-r--r-- 1 1001  121      126 Oct 25 21:01 frpc.ini
-rwxr-xr-x 1 1001  121 13471744 Oct 25 20:58 frps
-rw-r--r-- 1 1001  121     5010 Oct 25 21:01 frps_full.ini
-rw-r--r-- 1 1001  121       26 Oct 25 21:01 frps.ini
-rw-r--r-- 1 1001  121    11358 Oct 25 21:01 LICENSE
drwxr-xr-x 2 1001  121     4096 Oct 25 21:01 systemd

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


接下来写配置文件。在公网机器上修改 frps.ini 文件,在内网机器上修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x:

# frps
[common]
bind_port = 7000
# frpc
[common]
tls_enable = true #  frpc启动报错login to server failed: EOF时,添加这一行
server_addr = x.x.x.x
server_port = 7000[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

一定要注意,你云服务器的 7000 6000 端口一定要开放,在云服务器的安全策略中是可以配置的。你也可以根据自己的喜好设置不同的端口。


通过 systemd 启动服务并且配置开机自启,frp 的压缩包里有 systemd 目录,我们使用其中的单元文件 frpc.servicefrps.service 来配置,当然也可以使用单元模板文件

frps.service 的文件内容如下,注释是后期补上去的

[Unit]
Description=Frp Server Service # 服务描述
After=network.target # frps 将会在 network.service 启动完毕之后再启动[Service]
Type=simple # 不论进程是否启动成功,systemctl start 都执行成功
User=nobody # 设置进程在执行时使用的用户
Restart=on-failure # on-failure 表示仅在服务进程异常退出时重启
RestartSec=5s # 设置在重启服务前暂停多长时间
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini # 在启动该服务时需要执行的命令行[Install]
WantedBy=multi-user.target # 用于 systemctl enable 时创建软连接

将这个文件拷贝到 /etc/systemd/system/ 目录下。并根据配置文件中的 ExecStart=/usr/bin/frps -c /etc/frp/frps.inifrpsfrps.ini 文件放置到对应的路径下。这个非常重要! 否则 systemd 无法通过 frps.service 配置文件所给出的路径去执行 frps 服务。

启动 frps 服务

> sudo systemctl start frps.service

查看 frps 服务的状态 (如果服务运行正常,小圆点会是绿色的,Markdown 的代码编辑显示不出来)

> sudo systemctl status frps.service
● frps.service - Frp Server ServiceLoaded: loaded (/etc/systemd/system/frps.service; enabled; vendor preset: enabled)Active: active (running) since Mon 2022-01-24 22:19:29 CST; 14s agoMain PID: 13201 (frps)Tasks: 6 (limit: 4658)CGroup: /system.slice/frps.service└─13201 /usr/bin/frps -c /etc/frp/frps.iniJan 24 22:19:29 ecs-curledgoat systemd[1]: Started Frp Server Service.
Jan 24 22:19:29 ecs-curledgoat frps[13201]: 2022/01/24 22:19:29 [I] [root.go:200] frps uses config file: /etc/frp/frps.ini
Jan 24 22:19:29 ecs-curledgoat frps[13201]: 2022/01/24 22:19:29 [I] [service.go:192] frps tcp listen on 0.0.0.0:7000
Jan 24 22:19:29 ecs-curledgoat frps[13201]: 2022/01/24 22:19:29 [I] [root.go:209] frps started successfully

停止 frps:

> sudo systemctl stop frps.service

开启 frps 服务开机自启动:

> systemctl enable frps.service
> Created symlink /etc/systemd/system/multi-user.target.wants/frps.service → /etc/systemd/system/frps.service.

禁用 frps 服务开机自启动:

> sudo systemctl disable frps.service
Removed /etc/systemd/system/multi-user.target.wants/frps.service.

客户端的 frpc 配置是完全一样的,就不再重复给出了。


SSH 连接内网服务器时,使用 内网服务器用户名@外网服务器地址:服务器端口(上例中的7000)

给实验室服务器配置内网穿透,避免内网尴尬,在家也能用服务器~相关推荐

  1. 如何从外网穿透到内网

    内网,也叫局域网.从范围上来讲,内网就是小部分的网络.如,最小最简单的内网就是二台电脑用网线连接起来,就是一个内网.一般的特定环境,都是内网,如学校的校园网:公司单位的局域网等.内网IP地址常见的有如 ...

  2. 玩转内网穿透(1):内网穿透是什么?有什么用

    文章目录 1 什么是内网穿透? 2 内网穿透有什么用? 3 有哪些免费/收费的商业化内网穿透工具? 4 自己搭建内网穿透需要准备哪些东西? 1 什么是内网穿透? 非学术的说法: 通常个人电脑无论是连接 ...

  3. 【Nas/群晖/服务器】FRP内网穿透实现外网访问

    一般来说,在同一局域网下的终端设备可以相对自由地互相访问.但是,如果想要通过外网远程访问家中或者公司局域网中的服务器或者Nas,这种情况该怎么办呢? 解决的方法大致分为3种: 1. QuickConn ...

  4. 使用内网穿透实现外网访问本地接口

    java 内网穿透-实现外网访问本地IP接口 概念–所谓内网穿透,简单来说就是提供一个域名绑定内网IP和端口来实现外网访问内网. 业务场景,由于本人从事物联网开发经常需要对接一下硬件,人在公司但是需要 ...

  5. ssh连接linux_使用内网穿透访问内网ssh图文教程

    使用内网穿透访问内网ssh图文教程 穿透内网Linux系统22端口(SSH)教程 此教程可实现在外网SSH连接处于内网的Linux设备 1.下载网云穿linux版本 可使用wget下载或直接在官网下载 ...

  6. 《工具箱-内网穿透》FRP内网穿透(实现外网访问内网服务)

    FRP内网穿透 一.环境: 内网服务器 Centos 外网服务器 Centos 模拟场景:使用虚拟机安装Centos系统模拟内网服务器,外网服务器是正常使用云服务器 适用于:Company内部有自己的 ...

  7. 无需公网IP,内网穿透实现外网远程桌面办公 3-3

      系列文章 无需公网IP,内网穿透实现外网远程桌面办公 1-3 无需公网IP,内网穿透实现外网远程桌面办公 2-3 无需公网IP,内网穿透实现外网远程桌面办公 3-3 上一篇: 无需公网IP,内网穿 ...

  8. 内网穿透实现外网访问内网SQL数据库

    使用工具 花生壳 使用场景 没有公网IP的场景下,任何需要在外网接入内网主机的服务,这里针对远程管理SQL数据库做说明. 基础配置 1.安装SQL数据库. 2.确认已开启数据库远程连接的允许. 3.开 ...

  9. 搭建本地服务器,并免费内网穿透实现外网访问

    本篇教程主要将如何快速地搭建本地服务器,以及使用免费的内网穿透工具,实现外网访问内网服务器,将本地网站发布到外网可访问,方便进行微信公众号.小程序开发本地调试等. 本篇教程分两部分来讲: 搭建本地服务 ...

  10. VPS自己搭建frp/frps内网穿透实现外网访问局域网设备

    如果你家里有一台黑群晖,想在外面也能访问.但大家也知道公网 IPv4 地址现在已经所剩无几了,网络运营商一般是不会给你公网 IPv4 地址的.当然,你也可以使用第三方的内网穿透(比如花生壳),如果实在 ...

最新文章

  1. 《XNA高级编程:Xbox 360和Windows》1-1
  2. 使用硬件定时器软模拟多个定时器(8.15改进版)
  3. SAP生产订单预留(上)
  4. 64位ubuntu安装交叉编译器出现的问题。nuc972工程中的问题
  5. GPU Raycasting的两种实现方法
  6. Java springcloud B2B2C o2o多用户商城 springcloud架 (二): 配置管理
  7. 阿里员工:只有两百万现金和一套房,这样干着没意思
  8. STM32CubeIDE自平衡小车教程4.配置串口并实现字符的输出
  9. 简单的使用JS读取本地的文件
  10. Android ListView notifyDataSetChanged()不刷新数据
  11. php 微信公号授权登入,laravel实现微信公众号授权登录实战
  12. android编程实例-音乐播放器之歌词显示
  13. windows安装cx_oracle的坑
  14. unity种四种光源
  15. HDU 6447 YJJ's Salesman
  16. 力扣122题:买卖股票的最佳时机 II
  17. 【wireshark】如何获取一个设备的IP地址
  18. 异常检测|深度学习(李宏毅)(二十一)
  19. DJANGO后台ADMIN下拉三级联动,纯JS,没有AJAX数据库回显,目前为止最简单的做法
  20. Python 正则表达式详解(re 库)

热门文章

  1. CSS中z-index的属性
  2. python循环输出一句话_执行下列 Python语句后的输出结果是( ),循环执行了 1 次。i=-1;while(i0): i *=iprint(i)_学小易找答案...
  3. #OpenCV学习之图片读取,显示, 色彩空间变化,保存
  4. 江南愤青关于对互联网金融的一点看法
  5. 出其不意小妙招(持续更新中)
  6. 阿城的三王(棋王 树王 孩子王)
  7. 第009天:APP的网络连接
  8. 在Linux上运行黑魂3服务器端
  9. NOIP(CSP-J)信息学奥赛_普及组第十四课--穷举
  10. Spring Boot制作个人博客-后端管理(博客管理)