内网穿透 - 在公网访问内网主机

背景

家中有一台装有 Linux 系统的开发板(树莓派等),通过局域网连接网络,由于内网中的设备只有内网 IP,无法通过外网访问。此时可以使用反向代理的方法,借助一台接入外网的 VPS,来实现内网穿透。

具体操作

目标

​ 实现在外网通过 SSH 访问内网中的 Linux 开发板。

设备

  1. 具有固定 IP 的 VPS (此处使用阿里云主机)
  2. 需要进行内网穿透的 Linux 开发板(包括树莓派等,局域网方式接入,需要进行穿透)

软件

​ 使用 frp,frp 包括两个可运行程序:frpc (客户端) 和 frps (服务器端)。

vps 配置

登录阿里云主机 106.15.250.195 (下载的 frp 版本需要根据设备类型来选择)

mkdir -p /etc/frp
cd /etc/frp
wget https://github.com/fatedier/frp/releases/download/v0.32.1/frp_0.32.1_linux_386.tar.gz
tar -xzvf frp_0.32.1_linux_386.tar.gz
cd frp_0.32.1_linux_386/
vi frps.ini

frps.ini 配置

[common]
bind_port = 7000
token = 123456789

配置完成后启动 frps

./frps -c frps.ini

内网设备配置

由于当时不太清楚这个开放板的处理器类型,导致无法选择 frp 版本,所以先查看下开发板处理器信息。

# Print certain systeminformation
uname -a
# 系统处理器的体系结构
uname -p 
# CPU硬件的配置
more /proc/cpuinfo

通过上述任意一种都可以查看处理器类型,得到的是 aarch64 执行状态,也就是 ARMv8,所以可以选择 frp 的 linux-arm 版本进行下载,完成后进行 frpc.ini 的配置:

[common]
server_addr = 106.15.250.195
server_port = 7000
token = 123456789

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 7022
  • [common] 填入 VPS 信息,port 是 frps 运行时的端口,token 需要保持一致。
  • [ssh] 将内网的 22 端口映射到 VPS 的 7022 端口。访问 106.15.250.195:7022,相当于访问当前设备的 22 端口。

配置完成后启动 frpc

./frpc -c frpc.inin

连接测试

经过上述两步,已经可以实现在外网访问内网主机。

ssh -p 7022 [email protected]

References

内网穿透:在公网访问你家的 NAS https://zhuanlan.zhihu.com/p/57477087

FRP 简单入门安装配置教程 https://www.iplaysoft.com/frp.html

uname 命令参数及功能 https://blog.csdn.net/wonxxx/article/details/41627939

猜你喜欢

转载自www.cnblogs.com/crayonsea/p/12716946.html