Docker 容器內進行 frp 內網穿透

開始之前需要有一臺可以進行公網訪問的服務器

下載安裝 frp

這個直接到 github 官網就可以下載了
在這里插入圖片描述
點擊Releases 就可以查看到可以下載的源,根據自己電腦的型號進行選擇就好了。
在這里插入圖片描述

linux服務器上下載

如果是在linux的服務器上的話可以直接通過wget進行下載
例如:

wget https://github.com/fatedier/frp/releases/download/v0.63.0/frp_0.63.0_android_amd64.tar.gz

然后你就會得到一個tar.gz的一個壓縮包
在這里插入圖片描述
然后把壓縮包進行解壓

tar -zxvf frp_0.63.0_android_amd64.tar.gz

解壓完后你就可以在本地看到一個frp_0.63.0_android_amd64的文件夾
在這里插入圖片描述
文件夾中一般有 4 個文件,frpc 開頭是進行客戶端連接的,也就是你要穿透的電腦運行的,而frps是開頭的是運行在服務端的,也就是有公網 IP 的服務器上面的

服務端配置

服務端的配置全部寫在文件frps.toml 里面(有可能是frpc.ini),最開始的設置只有一個,那就是這個服務端運行綁定的端口是哪里,這里默認是 7000 端口,我們不用改,只不過在服務器的控制臺中需要把這個端口給開放,不然客戶端無法訪問。
在這里插入圖片描述
如果你只是需要簡單的進行測試,看是否能夠跑通內網穿透,那么你就不用再進行其他的配置了。
如果你是需要長期使用的話還需要一些其他的配置,更利于我們使用,例如token防止服務器被劫持了。

同樣這些設置都是放在frps.toml里面的

# 最新設置請參考官網 https://gofrp.org/zh-cn/docs/features/common/configure/
# 服務端和客戶端的TCP通信端口, 建議1024以上端口
bind_port = 7000
# 客戶端訪問服務端的密碼
token = abcdefg
# 服務端儀表盤的端口, 可以用瀏覽器訪問查看
dashboard_port = 7500
# 服務端儀表盤的用戶密碼
dashboard_user = frp
dashboard_pwd = frp123# 日志保存設定, 保存位置、保存時長
log_file = ./frps.log
log_level = info
log_max_days = 7

如果要長期進行訪問的話建議把token設置的強一點,不容易攻破

啟動服務端

啟動服務端非常簡單,把二進制文件frps運行起來就好了。

  • 如果只是簡單的單詞運行
# 在frp的目錄下
./frps -c frps.toml
  • 如果要后臺運行
# 同樣在frp目錄下,使用nohup,控制臺的輸出會保存在當前文件夾的nohup.out文件中,查看輸出即可了。
nohup ./frps -c frps.toml &

這樣服務端就能運行起來啦!

如果啟動失敗,有可能是端口沒開放,7000端口進的查看哦,有的可能防火墻也沒開放,記得檢查。兩層一個云服務提供商的安全策略,一個就是自己服務器的防火墻

在這里插入圖片描述

客戶端配置

客戶端的配置就是frpc.toml文件
初始的內容如下:
在這里插入圖片描述
下面對配置進行說明

serverAddr = "x.x.x.x"
serverPort = 7000[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6000

啟動客戶端

# 后臺啟動
# 同樣在frp目錄下,使用nohup,控制臺的輸出會保存在當前文件夾的nohup.out文件中,查看輸出即可了。
nohup ./frpc -c frpc.toml &
# 前臺啟動
# 在frp的目錄下
./frpc -c frpc.toml

Windows 操作無異,一樣的修改配置文件,然后運行就好了

踩坑

此次進行 frp 內網穿透,目標是穿透 Docker 容器,使得我能夠通過外網直接訪問我創建的容器

前面的下載步驟,以及配置服務端很簡單,一下就配置好了,但是當我要進行連接的時候,就算我設置了Docker 容器的密碼,也是不行,總是出現 Authentication Rejected 拒絕訪問。

但是我明明都已經穿透好了,為什么不行呢?

我進行了一下對比實驗,我不進行ssh連接,看看內網穿透可不可行,就能發現到底是軟件問題,還是本身Docker就不能進行穿透了。

通過下載nginx打開端口80,發現是可以進行內網穿透的,所以問題不是在軟件上,在 Docker 鏡像的設置上面。

經過多方查找,終于找到原因:

  • Ubuntu Lastest 鏡像下載的 ssh 工具不允許通過密碼連接,所以要打開密碼連接的設置。

    • /etc/ssh/sshd_config中的 PasswordAuthentication yes 的注釋刪掉.
      在這里插入圖片描述
  • 同時,ssh 默認不運行進行root 用戶進行連接

    • 需要把/etc/ssh/sshd_config#PermitRootLogin prohibit-password 下面添加一行 PermitRootLogin yes 當然你把prohibit-password改成yes也可以,當然了這樣的話就要去掉注釋了。
      在這里插入圖片描述

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

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

相關文章

復制網頁文字到Word、WPS文字?選中后直接拖放

要把網頁、PDF或其他應用中的文字內容復制到Word、WPS文字、記事本等,不一定要先復制、再粘貼,也可以選中文字后直接拖動到目標位置即可。多次操作,可以把窗口并排再拖動。如果你經常需要在不同應用之間引用文字,不妨試一試。操作…

Starrocks中的 Query Profile以及explain analyze及trace命令中的區別

背景 本文基于Starrocks 3.5.5 現有公司因為業務的不同,可能會更加關系單個SQL 的RT,因為如果一個SQL的RT比較大的話,影響的就是這個業務,從而影響收入,所以對于這方面我們就比較關心, 而最近在基于Starro…

網絡 —— 筆記本(主機)、主機虛擬機(Windows、Ubuntu)、手機(筆記本熱點),三者進行相互ping通

背景介紹最近在筆記本電腦上的虛擬機(Ubuntu、Windows Server搭配)上部署了"WD"開源手游服務器(舊版本),手機連接上了筆記本電腦開啟的WIFI熱點,同時手機上安裝了"WD"手游客戶端。于是首先得保證網絡相互暢通才能玩游戲,…

裸露土堆識別準確率↑32%:陌訊多模態融合算法在生態監測的實戰解析

原創聲明本文為原創技術解析文章,涉及技術參數及架構描述均參考《陌訊技術白皮書》,禁止任何形式的轉載與抄襲。一、行業痛點:裸露土堆識別的現實挑戰在生態環境保護、建筑工地監管等場景中,裸露土堆的精準識別是遏制揚塵污染、防…

網站從HTTP升級到HTTPS網址方法

將網站從HTTP升級到HTTPS涉及幾個關鍵步驟,以確保安全連接以及用戶和搜索引擎的平穩過渡。獲取并安裝SSL/TLS證書:1、從CA機構授權提供商Gworg獲取SSL/TLS證書。選項包括域名驗證(DV)、組織驗證(OV)和擴展驗證(EV)證書,驗證嚴格度各不相同&am…

WaitForSingleObject 函數參數影響及信號處理分析

一、第二個參數(超時時間)的影響 DWORD result WaitForSingleObject(hHandle, 1000);中的第二個參數1000表示等待超時時間為1000毫秒(1秒),其核心影響如下: 1. 函數行為控制 立即返回:若對象已…

dbeaver導入數據及配置講解

導入數據教程: 前提.csv文件:且只能導入一個sheet點擊下一步選中導入的.csv文件對應好數據字段和表字段,感覺不需要導入的可以skip配置一下,下面有介紹:以下為你詳細解析這些數據加載相關功能的含義與作用:…

JAVA學習筆記 自增與自減的使用-006

目錄 1 基本概述 2 自增與自減的用法 2.1單獨使用 2.2 參與運算 3 思考與練習 3.1 基礎題 3.2 中等題 3.3 進階題 4 總結 源計劃:我從來不認為自己的成功過程有多心酸,只是心中不懼失敗,能夠承受別人不能接受的失望而已!…

從LCM到SomeIP,再到DDS:技術演進與工作原理剖析

文章目錄一、LCM:輕量級通信與編組庫工作原理C 代碼示例局限性二、SomeIP:面向服務的可擴展中間件工作原理C 代碼示例優勢與特點三、DDS:數據分發服務工作原理C 代碼示例優勢與應用場景四、技術演進總結在分布式系統通信領域,技術…

Redis里面什么是sdshdr,可以詳細介紹一下嗎?

文章目錄為什么 Redis 不直接使用 C 語言的字符串?sdshdr 的結構sdshdr 的不同類型sdshdr 帶來的優勢總結我們來詳細解析一下 Redis 的核心數據結構之一: sdshdr。sdshdr 是 “Simple Dynamic String header” 的縮寫,意為“簡單動態字符串頭…

RocketMq如何保證消息的順序性

文章目錄1.順序消息的全流程1.1 發送階段:消息分區1.2.存儲階段:順序寫入1.3.消費階段:串行消費2.第三把鎖有什么用?3.順序消費存在的問題和Kafka只支持同一個Partition內消息的順序性一樣,RocketMQ中也提供了基于隊列(分區)的順…

zabbix平臺無法刪除已停用主機的處理案例

在zabbix平臺上刪除已停用的主機,提示“SQL描述式執行已失敗: "DELETE FROM items WHERE (itemid IN (.....)”,無法刪除,本文為處理情況。一、問題現象在zabbix平臺上刪除已停用的主機,提示“SQL描述式執行已失敗…

【計算機網絡】6應用層

1.網絡應用模型 特性 客戶/服務器模型(Client-Server, C/S) 對等模型(Peer-to-Peer, P2P) 中心化 是(依賴服務器) 否(去中心化) 角色特點 服務器 客戶機 無中心服務器 提供計算服務 請求計算服務 每個節點(Peer)既是客戶機也是服務器 永久在線 間歇接入網絡 節點間…

基于 Spring Boot + Vue 實現人臉采集功能全流程

一、技術棧與依賴引入 后端依賴 (pom.xml) <!-- 百度AI SDK --> <dependency><groupId>com.baidu.aip</groupId><artifactId>java-sdk</artifactId><version>4.16.19</version><exclusions><exclusion><grou…

《Python基礎》第3期:使用PyCharm編寫Hello World

我們寫文檔大多用 Word、寫表格大多用 Excel、寫幻燈片大多用 PPT。 寫代碼也需要一個軟件作為編輯器&#xff08;傳說的大神用記事本寫代碼純屬玩笑了&#xff0c;越是大神越追求效率&#xff0c;用的軟件功能越強&#xff09;。 Python 現在已經有了非常多的代碼編輯器&#…

我的第一個開源項目:排序算法的多種實現方式

以 排序算法 為例&#xff0c;展示如何在 Python 中進行不同實現方式的對比項目概述本項目旨在通過 Python 實現幾種經典的排序算法&#xff0c;并通過性能對比、代碼注釋和優化手段&#xff0c;為開源社區提供參考。選擇排序、冒泡排序、快速排序和歸并排序作為主要算法&#…

5G-LEO - 用于 5g satellite 鏈接的 OpenAirInterface? 擴展

目標&#xff1a;5G-LEO 旨在加速 OAI 作為開源工具的發展&#xff0c;允許衛星通信社區交流和比較 5G NTN 結果&#xff0c;并促進研發活動的合作。擴展的OAI軟件庫被視為開發早期原型的重要工具&#xff0c;用于驗證關鍵的5G NTN設計方面&#xff0c;并為3GPP標準化過程提供及…

基于 Mybatis 框架*的完整開發流程與順序

基于 MyBatis 框架 的完整開發流程與順序一、環境準備階段1. 新建 Maven 項目&#xff08;或普通 Java 項目&#xff09;作用&#xff1a;用 Maven 統一管理依賴&#xff0c;自動下載 MyBatis、MySQL 驅動等 Jar 包操作&#xff1a;IDE&#xff08;如 IDEA&#xff09;選 Maven…

機械學習--決策樹(實戰案例)

決策樹分兩種分類和回歸&#xff0c;這篇博客我將對兩種方法進行實戰講解一、分類決策樹代碼的核心任務是預測 “電信客戶流失狀態”&#xff0c;這是一個典型的分類任務數據集附在該博客上&#xff0c;可以直接下載代碼整體結構整理代碼主要分為以下幾個部分&#xff1a;導入必…

SQL154 插入記錄(一)

描述牛客后臺會記錄每個用戶的試卷作答記錄到exam_record表&#xff0c;現在有兩個用戶的作答記錄詳情如下&#xff1a;用戶1001在2021年9月1日晚上10點11分12秒開始作答試卷9001&#xff0c;并在50分鐘后提交&#xff0c;得了90分&#xff1b;用戶1002在2021年9月4日上午7點1分…