最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

微內(nèi)網(wǎng)穿透代理工具tiny-ws-tunnel的使用

2023-02-28 08:53 作者:康寧細語  | 我要投稿

1. 使用自寫工具的原因

之前自己架設(shè)在家里的樹莓派和香橙派上的個人網(wǎng)盤,日記等服務分別使用過frpnps作為內(nèi)網(wǎng)穿透代理工具。
奈何frp沒有web控制臺,且配置略繁瑣,而nps在使用過程中發(fā)現(xiàn)不定期在沒有任何實際業(yè)務負載的情況下cpu占用率持續(xù)100%的情況。
這兩個工具使用的痛點讓我最終選擇業(yè)余時間自寫了一個微型的內(nèi)網(wǎng)穿透代理工具tiny-ws-tunnel或者簡稱twt,供自己使用。

實現(xiàn)原理圖:

twt 原理圖

2. tiny-ws-tunnel的部分特性

  • 支持?tls

  • 服務端可前置nginx或caddy等反向代理。讓反向代理支持tls

  • agent 支持 tls 證書驗證

  • agent 支持連接認證

  • 數(shù)據(jù)傳輸支持aes(aead)加密 (在不使用tls時推薦應用)

  • 數(shù)據(jù)流量統(tǒng)計

  • 支持 web api

  • buffer調(diào)優(yōu)

  • 自帶一個基于curl的管理工具腳本

  • 支持在docker中運行

  • 經(jīng)過時間考驗的tcp代理以及試用階段的udp(udp over tcp)代理

目前自己已使用了半年多時間,運行穩(wěn)定占用資源少,圓滿滿足自己的需求,并提供給公司使用。下面簡述使用方法。且后面視情況可能開源。

3. 簡明使用方式(quick start)

3.1 首先下載

github?https://github.com/yarnto/tiny-ws-tunnel-doc?的release頁面下載。包括 linux amd64 arm64 armv7 的程序包,還有windows的 amd64 程序包。
備用下載地址:https://pan.hk.zhangyt.fun/s/bRtk

綠色軟件,下載解壓即安裝。

程序包目錄結(jié)構(gòu)

以下假設(shè)所有命令都在安裝目錄下執(zhí)行

3.2 服務端啟動

通常服務端在有公網(wǎng) IP 或出口的設(shè)備上啟動

啟動腳本

啟動后如果發(fā)現(xiàn):
ERRO[0000] read conf/port-mappings.json err: open conf/port-mappings.json: no such file or directory
的錯誤日志可忽略,下面會通過twt腳本工具手動創(chuàng)建一個認證的agent key(密鑰),自動生成該文件

該命令啟動twt server,監(jiān)聽在:3699(即0.0.0.0:3699)地址,且設(shè)置了agent連接需要驗證。
簡單示例起見,此時沒有啟用單獨加密和tls。可通過./tiny-ws-tunnel server -h查看更多參數(shù),配置tls和(或)aes單獨加密。

3.2 添加一個認證的agent密鑰

添加認證的agent。用于agent連接時的認證參數(shù)使用

列表已經(jīng)添加的認證agent

3.3 啟動agent

通常 agent 在一個沒有公網(wǎng) IP 的內(nèi)網(wǎng)設(shè)備啟動,作為例子,本agent在相同地機器上啟動

說明:

  • -agentId=test-agent-1,?-key=ta1-key?指定agentId和key

  • -serverAddr="ws://127.0.0.1:3699/twt/ws"?指定要連接的server(通常是公網(wǎng)地址,https(tls)的以wss開頭)

3.4 查看已經(jīng)連接的agent

這時服務端可以通過如下命令查看已經(jīng)連接的agent
明細會有非常有用的agent狀態(tài)信息

3.5 添加一個地址端口映射(添加代理)

把公網(wǎng)server端的地址端口映射到agent所在局域網(wǎng)設(shè)備地址,本質(zhì)上是添加了一個代理。這是我們的最終目標

我們假設(shè)本地有一個httpbin的web的服務監(jiān)聽在8077端口,以下命令是在server機器上啟動一個本地:8077的代理監(jiān)聽在0.0.0.0:8078的端口上

說明:

  • listeningAddr 公網(wǎng)監(jiān)聽地址

  • targetAddr 目標地址,對于udp的代理映射,需要在地址后面加"/udp"

  • agentId agent id

  • note 簡要描述(可選)

這時我們可以檢測一下訪問本機的8078端口是否等同于訪問8077端口

上面的輸出示例,說明已經(jīng)成功了。

假設(shè)服務端啟動在外網(wǎng),agent啟動在一個能訪問外網(wǎng)server的內(nèi)網(wǎng),訪問外網(wǎng)的8078端口就相當于訪問內(nèi)網(wǎng)的8077端口,實現(xiàn)了內(nèi)網(wǎng)穿透訪問。

4. 關(guān)于前置nginx或caddy代理

前面特性描述已經(jīng)提到過使用 nginx 或 caddy 等作為前置代理。如果前置代理監(jiān)聽在標準的80和443端口,且已經(jīng)有正規(guī)的tls證書。那twt server則可以直接利用前置代理的tls,基本可以省去使用aes加密,如果不用tls則推薦使用自帶的aes加密以保護數(shù)據(jù)安全。

如下為caddy的配置示例?Caddyfile

在配置中我設(shè)置了一個頭信息?Tiny-Real-IP?是為了讓twt server知道從caddy連接過來的連接地源地址是什么。nginx的配置方式類似,就是設(shè)置一個反向代理,記得設(shè)置傳遞一個頭信息。

5. 關(guān)于web控制臺。

使用者可以根據(jù)web api自行開發(fā)web控制臺。比如我把web控制臺的界面放在了自己另一個web應用里。

關(guān)于web api的文檔后期視境況補充。

我另外一個應用的web控制臺兩張截圖,僅供參考。


微內(nèi)網(wǎng)穿透代理工具tiny-ws-tunnel的使用的評論 (共 條)

分享到微博請遵守國家法律
霍城县| 辽阳县| 长岛县| 南京市| 洮南市| 惠水县| 贵溪市| 武清区| 衡阳市| 烟台市| 三台县| 洞口县| 海阳市| 介休市| 吉安县| 旌德县| 永川市| 灵山县| 商水县| 通化市| 凉城县| 灵武市| 澜沧| 达拉特旗| 两当县| 武邑县| 邢台县| 四子王旗| 呼和浩特市| 新龙县| 镇宁| 车致| 嘉祥县| 西平县| 浮山县| 华宁县| 岐山县| 玛沁县| 白水县| 红河县| 龙门县|