在家如何访问内网机器?

前言

每次到放假回家,笔者都会遇到实验室服务器访问不到的困扰。因为实验室服务器没有公网 IP,在外无法直接访问,
经过一番的研究之后,终于找到了一个相对好用的内网穿透方案。之前曾尝试过TeamViewer、花生壳之类的软件,但效果都差强人意。

  1. 远程桌面使用TeamViewer。可用,但需双方都要安装TeamViewer软件,且版本要一致。
  2. 使用花生壳软件进行DDNS解析,可用,但免费版本有带宽限制,使用效果不理想。
  3. 搭建frp服务器进行内网穿透,推荐使用,可以达到不错的速度,且可以开放任何想要的端口,可以让处于内网或防火墙后的设备对外界提供服务,它支持HTTP、TCP、UDP等众多协议。

准备

需要准备的东西:

  1. 一台公网的服务器VPS,笔者使用的是阿里云服务器配置要求不用太高,网速会影响连接的质量
  2. frp软件包

教程

下载frp软件

下载frp软件并进行解压

wget https://github.com/fatedier/frp/releases/download/v0.39.1/frp_0.39.1_linux_amd64.tar.gz

解压后可看到所有文件,但我们只需要关注如下几个文件

  • frps: 服务端启动程序
  • frps.ini:服务端配置文件
  • frpc:客户端启动程序
  • frpc.ini:客户端配置文件

配置内网服务器

比如我想映射出内网的 8080 端口,那么需要怎么配置呢?

frpc.ini配置如下:

[common]
# server ip
server_addr = xxx.xxx.xxx.xxx
# server端配置的端口
server_port = 2221

[web]
type = tcp
local_ip = 127.0.0.1
# 本地要映射的端口
local_port = 8080
# server端访问的端口
remote_port = 8080
  • server_addr: 公网服务器VPS的IP。
  • server_port: 服务端设置的端口。
  • type: 代理的类型。
  • local_ip: 本地IP。
  • local_port: 内网客户端设置的端口。
  • remote_port: 内网提供给外网访问的服务端口。

配置公网服务器VPS

公网服务器上只需要修改 frps.ini 文件
frps.ini配置如下:

[common]
bind_port = 2221

修改后运行 frps,开启服务端程序,然后再内网服务器上执行 frpc 程序,若配置正确,则可连接成功。
服务端会出现以下类似信息。

2022/02/13 18:27:31 [I] [proxy.go:192] [e37bd8c0f0a34a7c] [ssh25] tcp proxy listen port [8010]
2022/02/13 18:27:31 [I] [control.go:320] [e37bd8c0f0a34a7c] new proxy [ssh25] success

因为默认阿里云服务器仅仅开放22等其他常用端口,对于自定义映射的端口可能未开放,所以需要自己开放公网服务器的映射端口,使得在公网上可以访问。
在家如何访问内网机器?_第1张图片

配置成功后即可访问http://公网服务器IP:8080,大功告成。

你可能感兴趣的:(机器学习)