使用socat做端口轉發

最近買的云上mongo數據庫但是數據庫不支持外網訪問,準備做iptables轉發但是一直不成功,騰訊云官方給予的解釋是受服務器內啟動的docker影響 做iptables轉發會沖突,所以只能另想辦法,我發現使用socat做轉發也很好用,所以記錄一下開源給大家。

socat介紹:

socat 是一個功能強大的多功能網絡工具,它可以在兩個數據流之間建立連接,同時可以轉換它們的特性。它的名字源自于 "SOcket CAT",意味著它可以像 cat 命令一樣,但用于網絡連接。

以下是 socat 的一些主要特點和功能:

  1. 多協議支持: socat 支持多種不同的協議,包括 TCP、UDP、IPv4、IPv6、UNIX 套接字等。

  2. 連接兩個數據流: socat 可以連接兩個數據流,這兩個數據流可以是文件、套接字、管道等。

  3. 端口轉發: 你可以使用 socat 在不同的主機之間進行端口轉發,使得網絡服務可以在不同主機之間進行通信。

  4. 代理和中繼: 你可以使用 socat 作為代理或中繼,將數據流從一個位置轉發到另一個位置,這在網絡調試和故障排除時非常有用。

  5. 加密和認證: socat 支持 SSL 和 TLS 加密,以及基本的認證功能,可以確保數據在傳輸過程中的安全性。

  6. 虛擬串口: 在某些情況下,socat 還可以創建虛擬串口,模擬物理串口的功能,用于串口通信和調試。

總的來說,socat 是一個非常靈活和強大的工具,可以在網絡和系統管理、開發和調試等方面發揮重要作用。

tcp端口轉發:

注:我在192.168.1.10這臺服務器執行下面的命令讓端口轉發到內網IP:10.106.0.20的6379端口上,執行完下面的命令就可以在訪問192.168.1.10:20001端口就可以轉發到內網IP的6379端口上,也就可以使用外網訪問我們的內網數據庫。

socat TCP4-LISTEN:20001,fork TCP4:10.106.0.20:6379? &

執行完命令我們可以使用netstat -lntp 查看本地是否啟動一個為20001的端口

然后我們使用命令:telnet?10.106.0.20:6379 27017 測試能否連通服務器如下圖表示成功

注:如果是云上服務器記得開啟服務器安全組20001端口,和后端服務器允許服務器192.168.1.10訪問6379端口。

#TCP4-LISTEN表示監聽一個TCP4端口(IPv4),fork表示每個連接都創建一個新進程處理數據流,TCP4:10.106.0.20:6379表示將數據轉發到目標主機B的6379端口。這樣,所有發送到主機A的20001端口的數據流都會被轉發到主機B上的6379端口。會在A主機監聽20001端口,所有訪問A:20001端口的,會返回B:6379的資源。

UDP端口轉發:

除了TCP端口轉發,socat還支持UDP端口轉發。假設有一臺主機A,它的IP地址為192.168.100.10,上面運行著一個DNS服務器,監聽在53端口。現在需要將53端口的UDP數據流轉發到另一臺主機B上的5353端口,可以使用以下命令:

socat UDP4-LISTEN:53,fork UDP4:192.168.100.20:5353? &

其中,UDP4-LISTEN表示監聽一個UDP4端口(IPv4),UDP4:192.168.100.20:5353表示將數據轉發到目標主機B的5353端口。

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

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

相關文章

JAVA_4

JAVA_4 一、JAVA內存總體架構二、棧的特點如下三、堆的特點如下四、方法區(又叫靜態區,也是堆)特點如下五、this的本質 一、JAVA內存總體架構 多個線程里面有:程序計數器、虛擬機棧、本地方法棧方法區:運行時常量池堆…

FPGA相關論文閱讀

一、Achieving 100Gbps Intrusion Prevention on a Single Server 論文名稱中文翻譯:在單臺服務器上實現100Gbps吞吐量的入侵防御檢測。 文章中的Mixed-1和Norm-1 二、Distributed Password Hash Computation on Commodity Heterogeneous Programmable Platforms…

【回溯 字典樹(前綴樹)】212. 單詞搜索 II

本文涉及知識點 回溯 字典樹(前綴樹) LeetCode212. 單詞搜索 II 給定一個 m x n 二維字符網格 board 和一個單詞(字符串)列表 words, 返回所有二維網格上的單詞 。 單詞必須按照字母順序,通過 相鄰的單元…

第3周 后端微服務基礎架構與前端項目聯調配備

第3周 后端微服務基礎架構與前端項目聯調配備 1. 微服務項目層次設計與Maven聚合1.1 項目層次設計1.2 父項目pom1.2.1 打包方式 1.3 創建通用 ************************************************************************************** 1. 微服務項目層次設計與Maven聚合 1.1…

電商平臺遭遇DDOS、CC攻擊有什么防護方案

電商平臺遭遇DDOS、CC攻擊有什么防護方案?在數字化浪潮的推動下,電商平臺已成為現代商業的重要組成部分,為消費者提供便捷、多樣的購物體驗。然而,隨著業務的發展,電商平臺也面臨著日益嚴峻的網絡安全挑戰,…

Tower for Mac:Git管理的新境界

Tower for Mac,讓您的Git管理進入新境界!這款專為Mac用戶打造的Git客戶端,憑借其出色的性能和豐富的功能,成為眾多開發者的首選工具。 Tower不僅支持常規的Git操作,如提交、推送和拉取,還提供了許多高級功能…

四、VGA項目:聯合精簡幀+雙fifo+sobel算法 實現VGA顯示

前言:該項目實際上是在很多基礎的小練習上合成起來的,例如涉及到uart(rs232)的數據傳輸、雙fifo流水線操作、VGA圖像顯示,本次內容在此基礎上又增添了sobel算法,能實現圖像的邊沿監測并VGA顯示。 文章目錄…

簡單的DbUtils工具類【精細】

目錄 單條通用增刪改方法 1.創建maven項目,并加載依賴 2.創建數據庫連接工具類(Dbutils類) 3.創建一個執行器(SqlExecutor類) 4.通用(增,刪,改)方法 1.創建方法 2.創建userInfo實體類 3.創建測試類,測試增,刪&#xf…

探索數據結構:樹與二叉樹

?? 歡迎大家來到貝蒂大講堂?? 🎈🎈養成好習慣,先贊后看哦~🎈🎈 所屬專欄:數據結構與算法 貝蒂的主頁:Betty’s blog 1. 樹 1.1. 樹的定義 樹是一種非線性的數據結構,它是由n&a…

ORA-609頻繁出現在alert.log,如何解決?

ORA-609就alertlog中比較常見的一個報錯,雖然并沒有太大的影響,但是頻繁的出現在alert log也是很讓人厭煩的事情,本文介紹如何排查解決ORA-609問題。 1.ORA-609官方定義 could not attach to incoming connection Cause Oracle process cou…

【SRC實戰】前端脫敏信息泄露

挖個洞先 https://mp.weixin.qq.com/s/xnCQQCAneT21vYH8Q3OCpw “ 以下漏洞均為實驗靶場,如有雷同,純屬巧合 ” 01 — 漏洞證明 一、前端脫敏,請求包泄露明文 “ 前端脫敏處理,請求包是否存在泄露? ” 1、獲取驗…

|Python新手小白中級教程|第二十八章:面向對象編程(類定義語法私有屬性類的繼承與多態)(4)

文章目錄 前言一、類定義語法二、私有方法和私有屬性1.私有屬性2.私有方法 三、類“繼承”1.初識繼承2.使用super函數調用父類中構造的東西 四、類“多態”1.多態基礎2.子類不同形態3.使用isinstance函數與多態結合判斷類型 總結 前言 大家好,我是BoBo仔吖&#xf…

6818Linux內核開發移植

Linux內核開發移植 Linux內核版本變遷及其獲得 Linux是最受歡迎的自由電腦操作系統內核, 是一個用C語言寫成, 并且符合POSIX標準的類Unix操作系統 Linux是由芬蘭黑客Linus Torvalds開發的, 目的是嘗試在英特爾x86架構上提供自由免費的類Un…

Task Office for Mac v9.0激活版:任務管理新境界

還在為繁瑣的任務管理而煩惱嗎?Task Office for Mac為您帶來全新的任務管理體驗。簡潔明了的界面設計,讓您輕松上手;強大的任務管理和項目管理功能,讓您輕松掌握任務進度;多用戶協作功能,讓團隊協作更加高效…

ubuntu24.04安裝ros

ubuntu24.04安裝ros 踩坑 踩坑 目前安裝人數比較少,沒有較為詳細的博客,參考官網的鏈接 http://docs.ros.org/en/rolling/Installation/Ubuntu-Install-Debians.html 同時在如下的一步中會找不到網址報錯,此時可以參考https://blog.51cto.c…

Excel辦公技巧之下拉菜單

在日常辦工中,經常需在單元格中輸入特定的值,此時我們可以使用下拉菜單解決,輸入錯誤和錯誤值,可以一勞永逸的解決固定數據輸入問題。 使用Excel下拉菜單時,它在數據輸入和驗證方面發揮著重要作用通過點擊單元格的下拉…

學習筆記-Vue3中Hook函數

什么是Hook函數 Hook翻譯過來是鉤子的意思,其本質上是一組可復用的函數。簡單理解來說,你能夠在不同的組件中,實現相同的代碼邏輯,以達到代碼復用、提高維護性的效果。那為何叫’鉤子’呢,我的理解是: 它可…

商業數據分析--時間序列圖及趨勢分析

繪制時間序列圖,并指出存在什么樣的狀態如上兩圖: 可見狀態:從時間序列圖可以看出,這些數據存在明顯的季節性波動,每年的第4季度值都最高,而第2季度值最低。同時也存在一些下降的趨勢。 通過引進虛擬變量,建立多元線性回歸模型。答: 通過引入虛擬變量,我們可以建立如下的…

Oracle數據庫之多表查詢、層次查詢(五)

目錄 前言 Oracle 的連接條件的類型 多表查詢 1. 使用JOIN關鍵字 2. 使用WHERE子句進行多表查詢 3. 子查詢 4. EXISTS關鍵字 5. 集合運算 6. 注意事項: 層次查詢 前言 Oracle 的連接條件的類型 等值連接不等值連接外連接自連接 多表查詢 在Oracle數據…

商場學習之微服務

前言 寒假前在新電腦上配置了java環境,maven倉庫,node,js,navicat,MySQL,linux,vmware等環境,創建了6個mysql數據庫,77張表。 如此多的表,字段,去手寫基礎…