Frp內網穿透搭建,家庭主機對外提供接口,支持ssh訪問


Frp內網穿透搭建,家庭主機對外提供接口,支持ssh訪問

1.使用場景:

需求1.家中服務器 ubuntu 主機,跑接口服務,需要對外暴漏,
需求2.同時需要在外網ssh遠程

​ 關鍵詞: frp內網穿透斐訊K3C 使用frp服務ubuntu開啟sshservice

​ 以下是記錄:

2.所需工具:

1.公網VPS一台

​ 搭建frp服務,這里使用TX雲為例,需要配置安全組打開指定端口

​ 可以使用Xshell正常登錄

​ [申請,注冊VPS,不在本文討論范圍,請自行搜索]

2.路由器

​ 支持Frp設置,這里使用斐訊K3C為例,使用openwrt也可以

​ 注意,frp版本要和服務器一致]

​ 如果使用主機設備當作Frp客戶端,大致方式一致,可以參考官方文檔,或者搜搜

3.本地Ubuntu 主機

​ 家中Ubuntu 主機,部署接口服務,支持外網訪問,同時支持外網ssh到主機 ,后面需要裝sshserver

4.其他

​ Xshell 工具,免費授權下載地址

3.部署步驟

1.VPS 安裝 Frp 服務

​ Xshell登錄vps,查看vps架構,一般是x86_64 ,輸入 arch 查看

root@VM-16-5-ubuntu:~/frp/frp_0.21.0# arch
x86_64

打開 frp 首頁,右側選擇 Releases 66 ,或者直接打開下載地址

選擇適合的平台,一般是 frp_0.38.0_linux_amd64.tar.gz

注意,這里的版本是0.38.0,后續路由器版本不一致,無法識別,需要降級

下載后,上傳到 vps,解壓 ,

使用Xshell,新建項目目錄,cd 到項目目錄,直接把 下載文件到xshell窗口,等待上傳完畢

配置 frps.ini 文件,可以使用 寶塔或者vim ,注意這個文件,后面客戶端配置需要和它保持一致

配置參數:基本都在注釋里了

[common]
frps綁定端口 (必選)
bind_port = 7000
認證密碼,客戶端須與服務器一致
token = 123456
儀表盤端口,只有設置了才能使用儀表盤(即后台)
dashboard_port = 7500
儀表盤訪問的用戶名密碼,如果不設置,則默認都是 admin
dashboard_user = admin
dashboard_pwd = admin

最后,重要一步,啟動frp服務

frpc -c ./frpc.ini

看到 start proxy success 表示成功

這樣啟動服務,窗口關閉就會停止,可以使用后台啟動

sudo nohup /root/frp/frp_0.21.0/frps -c /root/frp/frp_0.21.0/frps.ini &

如果提示 沒有nohup,請安裝

2.路由器配置Frp客戶端映射

frp服務端配置完畢,可以嘗試打開面板,查看是否可以正常登錄,用戶名密碼 admin 剛才配置的

frp面板地址:vps地址:7500

這里的7500,是在上面配置的,可以修改

注意:如果打不開?,請檢查vps安全策略,需要放行端口號,打開防火牆-添加規則-添加 7500 和 7000 端口

配置完畢效果

接下來配置客戶端

我使用的路由器frp插件,直接在路由器配置,如果使用frp客戶端,配置方式差不多,請參照官方文檔

路由器配置,打開路由器后台,找到frp服務,復制粘貼以下配置

frp客戶端配置:

[common]
server_addr = xxx.xxx.xxx.xxx
server_port = 7000
token = 123456

[web]
type = tcp
local_ip = 192.168.2.157
local_port = 8080
remote_port = 8080

[ssh]
type = tcp
local_ip = 192.168.2.157
local_port = 22
remote_port = 6022

參數解釋

[common]
server_addr = xxx.xxx.xxx.xxx 服務器地址,就是你vps地址
server_port = 7000 服務器端口號,保持和vps 剛才配置的frps.ini一致
token = 123456 服務密碼,保持和vps剛才配置的frps.ini一致

[web] 這就是名字,在面板顯示,以視區分,看下圖面板名字
type = tcp 連接方式,一般就選tcp,其他我也不會
local_ip = 192.168.2.157 這里是本地主機地址,例如就是我ubuntu主機地址,設備自己可以在wifi信息中查看
local_port = 8080 本地端口映射,意思就是,ubuntu主機暴漏的端口
remote_port = 8080 遠端端口映射,意思就是,vps主機端口

[ssh] 備注名字
type = tcp
local_ip = 192.168.2.157
local_port = 22
remote_port = 6022

local_port和 remote_port 開始不好理解,這里解釋下
我理解就是,假如本地主機ubuntu需要暴漏8080接口提供tomcat服務,在外網訪問vps主機8080端口,vps會請求本地主機8080端口
當然,斷后不一定是一樣的,后面配置的 6022對應22端口就是例子
當ssh請求vps6022端口,可以請求到主機22端口[設置ssh默認端口]

簡單畫個圖,希望能幫助理解

打開Frp面板查看frp服務端和客戶端綁定狀態

斐訊路由器- 功能設置-示例

順利到這里,基本就配置成功了

3.測試
1.8080端口

​ 本地主機ubuntu,安裝docker,開啟tomcat服務,暴漏8080端口,

​ 先測試局域網可以正常訪問,

​ 將電腦切換到手機熱點,訪問 vps:8080 ,可以正常訪問到本地主機的tomcat頁面,證明成功

2..遠程shell到家中主機

​ 剛才已經將本地主機22端口暴漏

​ 需要訪問家中主機,只需要xshell配置,服務器地址 : vps地址:6022

​ 用戶名密碼: ubuntu 用戶賬戶和密碼

​ 這里發現,連不上 。。。。

​ 因為,一般ubuntu主機只安裝ssh客戶端,不安裝服務端

sudo apt install openssh-server

安裝完成后,SSH服務將自動啟動。要驗證安裝是否成功並且SSH服務正在運行,請鍵入以下命令,該命令將顯示SSH服務器狀

sudo systemctl status ssh

再次xshell遠程主機,順利的話,成功!

4.附錄:

1.禁止服務器休眠

發現ubuntu會自動休眠

參考:服務器ubuntu 20.04關閉自動休眠模式

查看是否開啟休眠模式
systemctl status sleep.target
yaron@yaron-T420s:~$ systemctl status sleep.target

返回結果
● sleep.target - Sleep
Loaded: loaded (/lib/systemd/system/sleep.target; static; vendor preset: enabled)
Active: inactive (dead)
Docs: man:systemd.special(7)

執行關閉休眠功能的命令,如下
yaron@yaron-T420s:~$ sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
[sudo] yaron 的密碼:
Created symlink /etc/systemd/system/sleep.target → /dev/null.
Created symlink /etc/systemd/system/suspend.target → /dev/null.
Created symlink /etc/systemd/system/hibernate.target → /dev/null.
Created symlink /etc/systemd/system/hybrid-sleep.target → /dev/null.

再次查看
yaron@yaron-T420s:~$ systemctl status sleep.target
● sleep.target
Loaded: masked (Reason: Unit sleep.target is masked.)
Active: inactive (dead)
yaron@yaron-T420s:~$

2.服務后台運行

​ 開啟定制任務或者后台運行

sudo nohup /root/frp/frp_0.21.0/frps -c /root/frp/frp_0.21.0/frps.ini &

3.xshell配置


感謝以下作者:

FRP內網穿透搭建與使用

Frps、nginx內網穿透安裝與配置

Frp介紹 Frp官方文檔 下載地址

Tcping下載地址 帶端口Ping測試

在Ubuntu上啟用SSH

編輯器支持markdown有點別扭,很多代碼引用還要自己改? 用的Typora


免責聲明!

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



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