jetson orin nano super AI模型部署之路(十)使用frp配置內網穿透,隨時隨地ssh到機器

為什么要內網穿透?

我們使用jetson設備時,一般都是在局域網內的電腦去ssh局域網內的jetson設備,但是這種ssh或者VNC僅限于局域網之間的設備。

如果你出差了,或者不在jetson設備的局域網內,想再去ssh或者VNC我們的jetson設備,就需要對jetson設備做內網穿透。內網穿透后,我們不管在哪里,主要有網絡,就可以直接ssh或者VNC到我們處在局域網內的jetson設備。

一:frp簡介

frp 采用 Golang 編寫,支持跨平臺,僅需下載對應平臺的二進制文件即可執行,沒有額外依賴。

frp 是一個專注于內網穿透的高性能的反向代理應用,支持 TCP、UDP、HTTP、HTTPS 等多種協議。可以將內網服務以安全、便捷的方式通過具有公網 IP 節點的中轉暴露到公網。

市面上一些主流的內網穿透工具有:Ngrok,Natapp,花生殼,Ssh、autossh,Frp,Lanproxy,Spike。

使用frp只需要自己有一臺公網IP的云主機即可,成本相對很低。我自己使用的是華為云的38元/年的機器,很便宜。而且frp速度快。

二:安裝frp

1:準備

一臺公網服務器(配置無要求網絡穩定就行),服務器端,如公網IP:123.32.12.32。

內網客戶端(就是我們的jetson設備),客戶端,如內網IP:192.168.152.103。

2.下載和安裝frp

2.1 linux x86公網服務器安裝和配置

對于linux x86平臺的公網服務器,需要下載amd64平臺版本,可以使用wget下載。

# 下載
wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_amd64.tar.gz
# 解壓
tar -zxvf frp_0.44.0_linux_amd64.tar.gz
cd frp_0.44.0_linux_amd64/

進入文件夾,有兩個名稱文件frpc(c結尾代表client)和frps(s結尾代表server),分別是服務端程序和服務端配置程序。在這里我們只需要使用frps服務器端文件即可。

下面配置服務器端

這里是為服務端配置frp 只關注frps和frps.ini即可,原始最簡單配置為。

cat frps.ini
[common]
#隧道通道,服務器和客戶端通過此端口通訊
bind_port = 7000

對于服務器端,這樣就可以用。先不配置其他的。

接下來要啟動服務器端,在啟動之前,要開啟對應端口的防火墻,這里我們要開啟7000和6000兩個端口。這個需要從云服務廠商的UI界面上開啟,例如我的華為云界面。

啟動服務器端

./frps -c frps.ini

可以看到已經開啟成功。

2.2 jetson arm64平臺內網設備安裝和配置

因為jetson設備是arm64架構,和服務器的x86_64不一樣,因此我們這里也要下載arm64版本的frp。

wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44.0_linux_arm64.tar.gz
# 解壓
tar -zxvf frp_0.44.0_linux_arm64.tar.gz
cd frp_0.44.0_linux_arm64

jetson作為frp的客戶端,在jetson上要使用frpc的程序。
下面只需要修改server_addr就可以

vim frpc.ini
[common]
server_addr = 123.32.12.32
server_port = 7000[ssh]
type = tcp
#本機IP
local_ip = 127.0.0.1
#本機需要映射的端口22(此端口為ssh端口,WSL2有可能設置為2222或其他端口,這里需要注意)
local_port = 22
#遠程服務器映射的端口為6000
remote_port = 6000

啟動客戶端

./frpc -c frpc.ini

客戶端也正常啟動成功。

2.3 測試能否通過公網ssh到局域網的jetson

我們用另外一臺設備,在局域網也可,手機用數據網絡也可。這時候的ssh路徑是 個人設備 -> 公網服務器 -> jetson。

例如我的jetson用戶名是yan,上面我們配置了遠程服務器映射的端口為6000,這個6000是指我們ssh到公網機器的端口,7000是frps和frpc通信的端口。

所以我的ssh指令是:

#ssh -p <frp配置的遠程端口> <jetson的用戶名><公網的IP>
ssh -p 6000 yan@123.32.12.32

密碼為jetson的yan用戶的密碼。 注意密碼不是公網云機器的密碼,用戶名也不是公網云機器的用戶名。這里用戶名和密碼都要使用jetson設備的。

三、額外配置(可不選)

原始配置簡單,但是如果需要其他功能,可自行添加,如下:

1:服務器端配置

vim frps.ini

修改如下:

[common]
bind_port = 7000
#http服務端口
vhost_http_port = 8088
#https服務端口
vhost_https_port = 8443
# dashboard網頁管理界面,以及設置賬戶密碼(非必須,未配置則直接進入)
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = admin
#客戶端需要設置一樣的token值才能鑒權通過
token = 12345678

2:客戶端配置

vim frpc.ini

修改如下:

[common]
server_addr = 123.32.12.32
server_port = 7000
#token和服務器一致
token = 12345678[ssh]
type = tcp
#本機IP
local_ip = 127.0.0.1
#本機需要映射的端口22(此端口為ssh端口,WSL2有可能設置為2222或其他端口,這里需要注意)
local_port = 22
#遠程服務器映射的端口為6000
remote_port = 6000[web]
type = http
#本地http服務端口,默認80,按需配置
local_port = 80
# 綁定域名,注:配置http,必須需要域名,否則報錯。如沒有,可采用普通的tcp模式映射。
custom_domains = xxx[zabbix]
type = tcp
local_ip = 127.0.0.1
#本機需要映射的端口22
local_port = 10050
#遠程服務器映射的端口為6000
remote_port = 11050

3:啟動測試
分別啟動客戶端和服務器端

./frps -c frps.ini

客戶端運行啟動:

./frpc -c frpc.ini

瀏覽器打開web管理界面,http://123.32.12.32:7500/,輸入賬戶密碼,可查看端口映射相關情況。

同時訪問:http://123.32.12.32:8088,即可訪問跳轉到到內網192.168.152.103機器的http服務。

四、后臺啟動和開機自動啟動

后臺跑直接使用nohup

服務器

nohup ./frps -c frps.ini >/dev/null 2>&1 &

jetson客戶端

nohup ./frpc -c ./frpc.ini >/dev/null 2>&1 &

想要終止進程的話,
先找到進程:

ps -aux|grep frp| grep -v grep

然后再殺掉進程即可:

kill -9 進程號

設置自動啟動

1、服務端配置frps.ini

[common]
bind_port = 7000
# tls_enable=true	# recommend add

在/etc/systemd/system/目錄下創建服務文件

cd /etc/systemd/system/
sudo vim frps.service

填入以下信息,ExecStart自行替換為你自己的frp啟動命令

[Unit]
Description=frpc
After=network.target
Wants=network.target[Service]
Restart=on-failure
RestartSec=5
ExecStart=/home/username/Software/frp/frps -c /home/username/Software/frp/frps.ini[Install]
WantedBy=multi-user.target
# 刷新服務列表
systemctl daemon-reload
# 設置開機自啟
systemctl enable frps.service
# 啟動服務
systemctl start frps.service
# 查看服務狀態
systemctl status frps.service

2、客戶端配置frpc.ini

在/etc/systemd/system/目錄下創建服務文件

cd /etc/systemd/system/
sudo vim frpc.service

填入以下信息,ExecStart自行替換為你自己的frp啟動命令

[Unit]
Description=frpc
After=network.target
Wants=network.target[Service]
Restart=on-failure
RestartSec=5
ExecStart=/data/module/frp_0.48.0_linux_amd64/frpc -c /data/module/frp_0.48.0_linux_amd64/frpc.ini[Install]
WantedBy=multi-user.target
# 刷新服務列表
systemctl daemon-reload
# 設置開機自啟
systemctl enable frpc.service
# 啟動服務
systemctl start frpc.service
# 查看服務狀態
systemctl status frpc.service

執行上述命令服務就可以設置開機自啟并啟動服務

服務可能會在開機時啟動失敗。因此在設置開機自啟命令時,最好在[Service]中定義Restart和RestartSec。

下面是一些常用的systemctl命令

# 關閉開機自啟
systemctl disable frpc.service
# 停止服務
systemctl stop frpc.service
# 重啟服務
systemctl restart frpc.service
# 查看狀態
systemctl status frpc.service
# 查看是否設置開機自啟
systemctl is-enabled frpc.service

五、一臺服務器內網穿透多臺jetson或者其他客戶端

單個ssh配置成功,想配置多個,一樣的操作,在另一臺機器進行下載frp,之后只需要修改frpc.ini文件,修改格式如下:

[common]
server_addr = 39.105.97.50
server_port = 7000[ssh001] # 不能重復
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6009 # 不能重復

主要就是注釋#不能重復 部分進行修改就可以。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/904962.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/904962.shtml
英文地址,請注明出處:http://en.pswp.cn/news/904962.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

VScode密鑰(公鑰,私鑰)實現免密登錄【很細,很全,附帶一些沒免密登錄成功的一些解決方法】

一、 生成SSH密鑰對 ssh-keygen 或者 ssh-keygen -t rsa -b 4096區別&#xff1a;-t rsa可以明確表示生成的是 RSA 類型的密鑰-b參數將密鑰長度設置為 4096 位默認&#xff1a;2048 位密鑰不指定-t參數&#xff0c;ssh -keygen默認也可能生成 RSA 密鑰【確保本機安裝ssh&#…

解釋器和基于規則的系統比較

解釋器&#xff08;Interpreter&#xff09;和基于規則的系統&#xff08;Rule-Based System&#xff09;是兩種不同的軟件架構風格&#xff0c;分別適用于不同的應用場景。它們在設計理念、執行機制和適用領域上有顯著差異。以下是它們的核心對比&#xff1a; 1. 解釋器&#…

DB4S:一個開源跨平臺的SQLite數據庫管理工具

DB Browser for SQLite&#xff08;DB4S&#xff09;是一款開源、跨平臺的 SQLite 數據庫管理工具&#xff0c;用于創建、瀏覽和編輯 SQLite 以及 SQLCipher 數據庫文件。 功能特性 DB4S 提供了一個電子表格風格的數據庫管理界面&#xff0c;以及一個 SQL 查詢工具。DB4S 支持…

printf調試時候正常,運行時打印不出來

問題是在添加了 printf 功能后&#xff0c;程序獨立運行時無法正常打印輸出&#xff0c;而調試模式下正常。這表明問題可能與 printf 的重定向實現、標準庫配置、或編譯器相關設置有關。 解決&#xff1a; 原來是使用 Keil/IAR&#xff0c;printf可能需要啟用 MicroLIB 或正確…

輕松制作高質量視頻,實時生成神器LTX-Video重磅登場!

探索LTX-Video&#xff1a;實時視頻生成跨越新高度 在如今這個視覺內容主導的數字時代&#xff0c;視頻生成成為推動創意表達的關鍵。而今天&#xff0c;我們將帶您深入探索LTX-Video&#xff0c;一個強大的開源項目&#xff0c;致力于通過尖端技術將視頻生成提升到一個全新的…

分布式事務快速入門

分布式事務基本概念 使用分布式事務的場景&#xff1a;分布式場景下的跨數據庫事務 分布式事務誕生的理論&#xff1a;CAP和Base 3種一致性&#xff1a; 強一致性 &#xff1a;系統寫入了什么&#xff0c;讀出來的就是什么。 弱一致性 &#xff1a;不一定可以讀取到最新寫入…

nvme Unable to change power state from D3cold to D0, device inaccessible

有個thinkpad l15 gen4筆記本&#xff0c;使用較少&#xff0c;有一塊三星m2和東芝14t硬盤&#xff0c;想安裝飛牛nas系統作為家庭照片庫&#xff0c;制作飛牛啟動盤&#xff0c;發現安裝飛牛需要全盤格式化&#xff0c;電腦本身的系統還是需要保留的&#xff0c;故想到再安裝一…

Unity Shaders and Effets Cookbook

目錄 作者簡介 審稿人簡介 前言 我是偏偏 Unity Shaders and Effets Cookbook 第一章&#xff1a;Diffuse Shading - 漫反射著色器 第二章&#xff1a;Using Textures for Effects - 著色器紋理特效的應用 第三章&#xff1a;Making Your Game Shine with Specular - 鏡…

部署RocketMQ

部署環境&#xff1a;jdk8以上&#xff0c;Linux系統 下載和安裝指令&#xff1a; wget https://archive.apache.org/dist/rocketmq/4.9.4/rocketmq-all-4.9.4-bin-release.zip 顯示下載成功&#xff1a; --2025-05-10 11:34:46-- https://archive.apache.org/dist/rocketm…

使用FastAPI和React以及MongoDB構建全棧Web應用04 MongoDB快速入門

一、NoSQL 概述 1.1 了解關系數據庫的局限性 Before diving into NoSQL, it’s essential to understand the challenges posed by traditional Relational Database Management Systems (RDBMS). While RDBMS have been the cornerstone of data management for decades, th…

高精度之加減乘除之多解總結(加與減篇)

開篇總述&#xff1a;精度計算的教學比較雜亂&#xff0c;無系統的學習&#xff0c;且存在同法多線的方式進行同一種運算&#xff0c;所以我寫此篇的目的只是為了直指本質&#xff0c;不走教科書方式&#xff0c;步驟冗雜。 一&#xff0c;加法 我在此講兩種方法&#xff1a; …

氣象大模型光伏功率預測中的應用:從短期,超短期,中長期的實現與開源代碼詳解

1. 引言 光伏功率預測對于電力系統調度、能源管理和電網穩定性至關重要。隨著深度學習技術的發展,大模型(如Transformer、LSTM等)在時間序列預測領域展現出強大能力。本文將詳細介紹基于大模型的光伏功率預測方法,涵蓋短期(1-6小時)、超短期(15分鐘-1小時)和中長期(1天-1周…

玩轉Docker(一):基本概念

容器技術是繼大數據和云計算之后又一炙手可熱的技術&#xff0c;而且未來相當一段時間內都會非常流行。 本文將對其基本概念和基本使用做出介紹。包括容器生態系統、容器的原理、怎樣運行第一個容器、容器技術的概念與實踐、Docker鏡像等等 目錄 一. 鳥瞰容器生態系統 1. 容器…

計算機視覺與深度學習 | 基于數字圖像處理的裂縫檢測與識別系統(matlab代碼)

???????????????????????????????? 基于數字圖像處理的裂縫檢測與識別系統 ??????????????????????????**系統架構設計****1. 圖像預處理**目標:消除噪聲+增強裂縫特征**2. 圖像分割**目標:提取裂縫區域**3. 特征…

推薦一款免費開源工程項目管理系統軟件,根據工程項目全過程管理流程開發的OA 辦公系統

在當今的工程項目管理領域&#xff0c;許多企業和團隊面臨著諸多難題。傳統的管理方式往往依賴于人工記錄和分散的工具&#xff0c;導致項目進度難以實時把控&#xff0c;任務分配不夠清晰&#xff0c;合同管理混亂&#xff0c;事件提醒不及時&#xff0c;財務管理缺乏系統性&a…

Proser:在使用中改進

上位機接收到下位機發送的協議&#xff0c;解析出工作模式&#xff0c;然后依據此模式切換到相應的界面。為了調試這個功能&#xff0c;由Proser提供的Block與Sequence生成器相當有用&#xff1a; 使用Block生成器&#xff1a;忽略掉不感興趣的數據使用Sequence生成器&#xf…

C語言_程序的段

在 C 語言程序中,內存通常被分為多個邏輯段,每個段存儲不同類型的數據。理解這些段的結構和功能,有助于你更高效地編寫、調試和優化程序。以下是 C 語言程序中主要的內存段及其特點: 1. 代碼段(Text Segment) 存儲內容:編譯后的機器指令(程序代碼)。特性: 只讀:防止…

【桌面】【輸入法】常見問題匯總

目錄 一、麒麟桌面系統輸入法概述 1、輸入法介紹 2、輸入法相關組件與服務 3、輸入法調試相關命令 3.1、輸入法診斷命令 3.2、輸入法配置重新加載命令 3.3、啟動fcitx輸入法 3.4、查看輸入法有哪些版本&#xff0c;并安裝指定版本 3.5、重啟輸入法 3.6、查看fcitx進程…

Node.js 24.0 正式發布:性能躍升與開發體驗全面升級

Node.js v24.0.0 震撼發布&#xff01;V8 13.6、npm 11、權限模型穩定化等重磅更新 2025年5月6日 —— Node.js 社區迎來重大里程碑&#xff01;Node.js v24.0.0 正式發布&#xff0c;帶來一系列激動人心的新特性、性能優化和 API 改進。本次更新涵蓋 V8 JavaScript 引擎升級至…

MySQL 查詢優化全攻略:從原理到實戰

為什么查詢優化如此重要&#xff1f; 在當今數據驅動的時代&#xff0c;數據庫性能直接影響著用戶體驗和業務效率。根據統計&#xff0c;網頁加載時間每增加1秒&#xff0c;轉化率可能下降7%&#xff0c;而數據庫查詢往往是性能瓶頸的關鍵所在。作為最流行的開源關系型數據庫之…