內網穿透 - 在公網訪問內網主機


背景

家中有一台裝有 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.ini

連接測試

經過上述兩步,已經可以實現在外網訪問內網主機。

ssh -p 7022 root@106.15.250.195

References

內網穿透:在公網訪問你家的 NAS https://zhuanlan.zhihu.com/p/57477087

FRP 簡單入門安裝配置教程 https://www.iplaysoft.com/frp.html

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM