<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

內網穿透工具的種類、原理和使用方法

jf_uPRfTJDa ? 來源:5G通信 ? 2023-08-25 10:35 ? 次閱讀

前言

本文以滲透的視角,總結幾種個人常用的內網穿透,內網代理工具,介紹其簡單原理和使用方法。

1. nps-npc

1.1 簡介

nps是一款輕量級、高性能、功能強大的內網穿透代理服務器。目前支持tcp、udp流量轉發,可支持任何tcp、udp上層協議(訪問內網網站、本地支付接口調試、ssh訪問、遠程桌面,內網dns解析等等……),此外還支持內網http代理、內網socks5代理、p2p等,并帶有功能強大的web管理端。

一臺有公網IP的服務器(VPS)運行服務端(NPS

一個或多個運行在內網的服務器或者PC運行客戶端(NPC

a7cfd484-4261-11ee-a2ef-92fbcf53809c.png

1.2 特點

Go語言編寫

支持跨平臺

支持多種協議的代理

web管理端

1.3 使用方法

https://github.com/ehang-io/nps/releases

1.4 NPS

安裝配置

找到自己服務器相應版本的server:

cd~
wgethttps://github.com/cnlh/nps/releases/download/v0.23.2/linux_amd64_server.tar.gz
tarxzvflinux_amd64_server.tar.gz
cd~/nps

在nps目錄下面會有一個nps可執行文件、conf配置目錄和web網頁目錄,我們只需要修改conf/nps.conf即可:

vimconf/nps.conf

需要改一下#web下面的幾個參數,

web_host=服務器IP或者域名
web_username=admin(登錄用戶名)
web_password=你的密碼
web_port=8080(web管理端口

修改#bridge可以更改 NPC的連接端口。比如我們拿到一臺權限受限的服務器,有防火墻,可能只有部分端口(80,443)可以出網,就需要修改成出網端口。

##bridge
bridge_type=tcp
bridge_port=443#修改連接端口
bridge_ip=0.0.0.0

啟動

#Mac/Linux
./npstest|start|stop|restart|status測試配置文件|啟動|停止|重啟|狀態

#Windows
nps.exetest|start|stop|restart|status測試配置文件|啟動|停止|重啟|狀態

1.5 NPC

./npc-server=你的IP:8024-vkey=唯一驗證密碼-type=tcp
a7ef311c-4261-11ee-a2ef-92fbcf53809c.png

新建好客戶端后,也可以在+中看到,詳細的客戶端連接命令:

a8127be0-4261-11ee-a2ef-92fbcf53809c.png

1.6 web管理端

在客戶端界面可以通過新增的方式添加客戶端連接,每一個連接的vkey都是唯一區分的。

每一個客戶端,在建立連接后,都可以建立多個不同協議的隧道,這一個個隧道就是不同的代理了。

a837186a-4261-11ee-a2ef-92fbcf53809c.png

通過不同的協議和端口就可以連接代理的內網機器。

2. frp

2.1 簡介

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

a85dcc80-4261-11ee-a2ef-92fbcf53809c.png

2.2 特點

客戶端服務端通信支持 TCP、KCP 以及 Websocket 等多種協議。

端口復用,多個服務通過同一個服務端端口暴露。

跨平臺,但是支持的比nps少一點

多種插件,提供很多功能

2.3 使用方法

1). 通過 rdp 訪問家里的機器

修改 frps.ini 文件,為了安全起見,這里最好配置一下身份驗證,服務端和客戶端的 common 配置中的token參數一致則身份驗證通過:

#frps.ini
[common]
bind_port=7000
#用于身份驗證,請自行修改,要保證服務端與客戶端一致
token=abcdefgh

啟動 frps:

./frps -c ./frps.ini

修改 frpc.ini 文件,假設 frps 所在服務器的公網 IP 為 x.x.x.x:

#frpc.ini
[common]
server_addr=x.x.x.x
server_port=7000
#用于身份驗證,請自行修改,要保證服務端與客戶端一致
token=abcdefgh

[rdp]
type=tcp
local_ip=127.0.0.1
local_port=3389
remote_port=6000

啟動 frpc:
./frpc -c ./frpc.ini

通過 rdp 訪問遠程的機器,地址為:x.x.x.x:6000

開機自啟

針對 Windows 系統,為了便于使用,可以配置一下開機的時候靜默啟動。

在 frpc.exe 的同級目錄創建一個 start_frpc.vbs:

'start_frpc.vbs
'請根據實際情況修改路徑
CreateObject("WScript.Shell").Run"""D:ProgramFilesfrp_windows_amd64frpc.exe"""&"-c"&"""D:ProgramFilesfrp_windows_amd64frpc.ini""",0

復制 start_frpc.vbs 文件,打開以下目錄,注意將


改為你的用戶名:

C:UsersAppDataRoamingMicrosoftWindowsStartMenuProgramsStartup

鼠標右擊,粘貼為快捷方式即可。

2). 通過 SSH 訪問公司內網機器

frps 的部署步驟同上。

啟動 frpc,配置如下:

#frpc.ini
[common]
server_addr=x.x.x.x
server_port=7000
#用于身份驗證,請自行修改,要保證服務端與客戶端一致
token=abcdefgh

[ssh]
type=tcp
local_ip=127.0.0.1
local_port=22
remote_port=6000

通過 SSH 訪問內網機器,假設用戶名為 test:

ssh -oPort=6000 test@x.x.x.x

3). 通過自定義域名訪問部署于內網的 Web 服務

有時想要讓其他人通過域名訪問或者測試我們在本地搭建的 Web 服務,但是由于本地機器沒有公網 IP,無法將域名解析到本地的機器,通過 frp 就可以實現這一功能,以下示例為 http 服務,https 服務配置方法相同, vhost_http_port 替換為 vhost_https_port, type 設置為 https 即可。

修改 frps.ini 文件,設置 http 訪問端口為 8080:

#frps.ini
[common]
bind_port=7000
vhost_http_port=8080
#用于身份驗證,請自行修改,要保證服務端與客戶端一致
token=abcdefgh

啟動 frps:

./frps -c ./frps.ini

修改 frpc.ini 文件,假設 frps 所在的服務器的 IP 為 x.x.x.x,local_port 為本地機器上 Web 服務對應的端口, 綁定自定義域名www.yourdomain.com:

#frpc.ini
[common]
server_addr=x.x.x.x
server_port=7000
#用于身份驗證,請自行修改,要保證服務端與客戶端一致
token=abcdefgh

[web]
type=http
local_port=80
custom_domains=www.yourdomain.com

啟動 frpc:

./frpc -c ./frpc.ini

將www.yourdomain.com的域名 A 記錄解析到 IPx.x.x.x,如果服務器已經有對應的域名,也可以將 CNAME 記錄解析到服務器原先的域名。

通過瀏覽器訪問http://www.yourdomain.com:8080即可訪問到處于內網機器上的 Web 服務。

4). 對外提供簡單的文件訪問服務

通過static_file插件可以對外提供一個簡單的基于 HTTP 的文件訪問服務。

frps 的部署步驟同上。

啟動 frpc,啟用static_file插件,配置如下:

#frpc.ini
[common]
server_addr=x.x.x.x
server_port=7000
#用于身份驗證,請自行修改,要保證服務端與客戶端一致
token=abcdefgh

[test_static_file]
type=tcp
remote_port=6000
plugin=static_file
#要對外暴露的文件目錄
plugin_local_path=/tmp/file
#訪問url中會被去除的前綴,保留的內容即為要訪問的文件路徑
plugin_strip_prefix=static
plugin_http_user=abc
plugin_http_passwd=abc

通過瀏覽器訪問http://x.x.x.x:6000/static/來查看位于/tmp/file目錄下的文件,會要求輸入已設置好的用戶名和密碼。

常用功能

(1)統計面板

通過瀏覽器查看 frp 的狀態以及代理統計信息展示。

注:Dashboard 尚未針對大量的 proxy 數據展示做優化,如果出現 Dashboard 訪問較慢的情況,請不要啟用此功能。

需要在 frps.ini 中指定 dashboard 服務使用的端口,即可開啟此功能:

[common]
dashboard_port=7500
#dashboard用戶名密碼,默認都為admin
dashboard_user=admin
dashboard_pwd=admin

打開瀏覽器通過http://[server_addr]:7500訪問 dashboard 界面,用戶名密碼默認為admin。

(2)加密與壓縮

這兩個功能默認是不開啟的,需要在 frpc.ini 中通過配置來為指定的代理啟用加密與壓縮的功能,壓縮算法使用 snappy:

#frpc.ini
[ssh]
type=tcp
local_port=22
remote_port=6000
use_encryption=true
use_compression=true

如果公司內網防火墻對外網訪問進行了流量識別與屏蔽,例如禁止了 SSH 協議等,通過設置use_encryption = true,將 frpc 與 frps 之間的通信內容加密傳輸,將會有效防止流量被攔截。

如果傳輸的報文長度較長,通過設置use_compression = true對傳輸內容進行壓縮,可以有效減小 frpc 與 frps 之間的網絡流量,加快流量轉發速度,但是會額外消耗一些 CPU 資源。

(3)TLS

從 v0.25.0 版本開始 frpc 和 frps 之間支持通過 TLS 協議加密傳輸。通過在frpc.ini的common中配置tls_enable = true來啟用此功能,安全性更高。

為了端口復用,frp 建立 TLS 連接的第一個字節為 0x17。

注意:啟用此功能后除 xtcp 外,不需要再設置 use_encryption。

(4)代理限速

目前支持在客戶端的代理配置中設置代理級別的限速,限制單個 proxy 可以占用的帶寬。

#frpc.ini
[ssh]
type=tcp
local_port=22
remote_port=6000
bandwidth_limit=1MB

在代理配置中增加bandwidth_limit字段啟用此功能,目前僅支持MB和KB單位。

(5)范圍端口映射

在 frpc 的配置文件中可以指定映射多個端口,目前只支持 tcp 和 udp 的類型。

這一功能通過range:段落標記來實現,客戶端會解析這個標記中的配置,將其拆分成多個 proxy,每一個 proxy 以數字為后綴命名。

例如要映射本地 6000-6005, 6007 這 6 個端口,主要配置如下:

#frpc.ini
[range:test_tcp]
type=tcp
local_ip=127.0.0.1
local_port=6000-6006,6007
remote_port=6000-6006,6007

實際連接成功后會創建 8 個 proxy,命名為test_tcp_0, test_tcp_1 ... test_tcp_7。

3. ew

3.1 簡介

EW 是一套便攜式的網絡穿透工具,具有 SOCKS v5服務架設和端口轉發兩大核心功能,可在復雜網絡環境下完成網絡穿透。但是,現在工具已經不更新了。。。

a895e02a-4261-11ee-a2ef-92fbcf53809c.png

3.2 特點

輕量級,C語言編寫

可以設置多級代理

跨平臺

但是只支持Socks5代理

3.3 使用方法

以下使用方法均摘自:http://rootkiter.com/EarthWorm/

以下所有樣例,如無特殊說明代理端口均為1080,服務均為SOCKSv5代理服務.

該工具共有 6 種命令格式(ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran)。

1. 正向 SOCKS v5 服務器

$./ew-sssocksd-l1080

2. 反彈 SOCKS v5 服務器

這個操作具體分兩步:
a) 先在一臺具有公網 ip 的主機A上運行以下命令:

$./ew-srcsocks-l1080-e8888

b) 在目標主機B上啟動 SOCKS v5 服務 并反彈到公網主機的 8888端口

$./ew-srssocks-d1.1.1.1-e8888

成功。

3. 多級級聯

工具中自帶的三條端口轉發指令, 它們的參數格式分別為:

$./ew-slcx_listen-l1080-e8888
$./ew-slcx_tran-l1080-f2.2.2.3-g9999
$./ew-slcx_slave-d1.1.1.1-e8888-f2.2.2.3-g9999

通過這些端口轉發指令可以將處于網絡深層的基于TCP的服務轉發至根前,比如 SOCKS v5。首先提供兩個“二級級聯”本地SOCKS測試樣例:

a)lcx_tran的用法

$./ew-sssocksd-l9999
$./ew-slcx_tran-l1080-f127.0.0.1-g9999

b)lcx_listen、lcx_slave的用法

$./ew-slcx_listen-l1080-e8888
$./ew-sssocksd-l9999
$./ew-slcx_slave-d127.0.0.1-e8888-f127.0.0.1-g9999

再提供一個“三級級聯”的本地SOCKS測試用例以供參考

$./ew-srcsocks-l1080-e8888
$./ew-slcx_slave-d127.0.0.1-e8888-f127.0.0.1-g9999
$./ew-slcx_listen-l9999-e7777
$./ew-srssocks-d127.0.0.1-e7777

數據流向:SOCKS v5 -> 1080 -> 8888 -> 9999 -> 7777 -> rssocks

4. ngrok

4.1 簡介

ngrok 是一個反向代理,通過在公共端點和本地運行的 Web 服務器之間建立一個安全的通道,實現內網主機的服務可以暴露給外網。ngrok 可捕獲和分析所有通道上的流量,便于后期分析和重放,所以ngrok可以很方便地協助服務端程序測試。

4.2 特點

官方維護,一般較為穩定

跨平臺,閉源

有流量記錄和重發功能

4.3 使用方法

進入ngrok官網,注冊ngrok賬號并下載ngrok;

根據官網給定的授權碼,運行如下授權命令;

./ngrok authtoken 1hAotxhmORtzCYvUc3BsxDBPh1H_****

./ngrok http 80即可將機器的80端口http服務暴露到公網,并且會提供一個公網域名。

a8bc92b0-4261-11ee-a2ef-92fbcf53809c.png

可以通過官網的UI界面查看數據包和流量等等(但是要付費==、)

a8f5b306-4261-11ee-a2ef-92fbcf53809c.png

還可以通過一些命令將內網的文件和其他TCP服務 暴露到公網中。

有授權的設置文件共享

ngrokhttp-auth="user:password"file:///Users/alan/share

無授權的設置文件共享

ngrokhttp"file:///C:UsersalanPublicFolder"

將主機的3389的TCP端口暴露到公網

ngroktcp3389

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 服務器
    +關注

    關注

    12

    文章

    8185

    瀏覽量

    82742
  • 客戶端
    +關注

    關注

    1

    文章

    282

    瀏覽量

    16397
  • SSH
    SSH
    +關注

    關注

    0

    文章

    176

    瀏覽量

    16092
  • vps
    vps
    +關注

    關注

    1

    文章

    85

    瀏覽量

    11935

原文標題:3. ew

文章出處:【微信號:5G通信,微信公眾號:5G通信】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    請問花生殼怎么進行內網穿透的?

    花生殼是怎么進行內網穿透的,能不能用來***,還是只有組建內網的功能。
    發表于 04-18 06:02

    使用花生殼做內網穿透GPRS模塊不能連接到服務器

    通過串口向模塊發送指令,連接至服務器。電腦這邊,我用調試工具建立服務端口(已經內網穿透,應該可以被連接),GPRS模塊是客戶端。這樣理解本質上,是通過花生殼軟件將內網
    發表于 04-26 02:30

    內網穿透詳解-基于NATAPP&NatAssist測試

    本帖最后由 1406093611 于 2019-11-13 22:41 編輯 內網穿透詳解-基于NATAPP&NatAssist TCP測試【前言】最近做一個4G模塊
    發表于 09-13 12:14

    搭建自己的IOT平臺---內網穿透

    相信大部分小伙伴在搭建環境的時候都是用虛擬機來搭建的,如果想實現外網訪問內網的話,還是比較麻煩的。在這里我就針對這個問題,寫一篇教程,教大家用最簡單的方式實現內網穿透,能做到外網訪問內網
    發表于 12-09 23:14

    廣和通ADP-L610-Arduino模塊實現基于內網穿透的TCP通信--吳豐藝--大連海事大學

    廣和通ADP-L610-Arduino模塊實現基于內網穿透的TCP通信原帖鏈接:https://blog.csdn.net/fgfgfdg8/article/details/118000795前言
    發表于 12-08 09:46

    晶體管的種類使用方法

    晶體管的種類使用方法 ??? 具有信號放大功能的3個端子的半導體器件。作為電流載體,有利用電子及空穴兩個載子的雙極晶體
    發表于 03-01 10:54 ?6931次閱讀

    inlets:一個基于 WebSocket 隧道實現的內網穿透工具

    ? 【導語】:inlets 是一個基于 WebSocket 隧道實現的內網穿透工具,可以將本地服務暴露到公網。 簡介 inlets 利用反向代理和 Websocket 隧道,將內部或開發中的服務通過
    的頭像 發表于 02-02 11:45 ?8733次閱讀
    inlets:一個基于 WebSocket 隧道實現的<b class='flag-5'>內網</b><b class='flag-5'>穿透</b><b class='flag-5'>工具</b>

    P2P內網穿透工具的使用

    由于國內網絡環境問題, 普遍家庭用戶寬帶都沒有分配到公網 IP(我有固定公網 IP, 嘿嘿); 這時候一般我們需要從外部訪問家庭網絡時就需要通過一些魔法手段, 比如 VPN、遠程軟件(向日葵…)等; 但是這些工具都有一個普遍存在的問題: 慢+卡!
    的頭像 發表于 11-24 10:21 ?1344次閱讀

    如何使用花生殼搭建內網穿透

    花生殼的內網穿透原理就是通過花生殼服務器把他們的公網IP地址進行翻譯,轉換成為一種私有的地址,然后在花生殼服務器上,類似做端口映射,通過不同的端口來訪問不同的內網電腦,這一切都是通過互聯網來實現的。這里我們介紹一下如何通過花生殼
    的頭像 發表于 12-09 11:29 ?1138次閱讀

    常用的內網穿透工具原理和使用方法

    nps是一款輕量級、高性能、功能強大的內網穿透代理服務器。目前支持tcp、udp流量轉發,可支持任何tcp、udp上層協議(訪問內網網站、本地支付接口調試、ssh訪問、遠程桌面,內網d
    發表于 07-10 11:20 ?850次閱讀
    常用的<b class='flag-5'>內網</b><b class='flag-5'>穿透</b><b class='flag-5'>工具</b>原理和<b class='flag-5'>使用方法</b>

    什么是nps?常見內網穿透工具有哪些?

    nps是一款輕量級、高性能、功能強大的內網穿透代理服務器。 目前支持tcp、udp流量轉發,可支持任何tcp、udp上層協議(訪問內網網站、本地支付接口調試、ssh訪問、遠程桌面,內網
    發表于 08-31 10:32 ?1298次閱讀
    什么是nps?常見<b class='flag-5'>內網</b><b class='flag-5'>穿透</b><b class='flag-5'>工具</b>有哪些?

    內網穿透可以帶給物聯網什么呢?

    內網穿透可以帶給物聯網什么呢?
    的頭像 發表于 10-14 15:14 ?424次閱讀

    神器!實現內網穿透的幾款工具

    frp 是一個專注于內網穿透的高性能的反向代理應用,支持 TCP、UDP、HTTP、HTTPS 等多種協議??梢詫?b class='flag-5'>內網服務以安全、便捷的方式通過具有公網 IP 節點的中轉暴露到公網。
    的頭像 發表于 11-25 10:22 ?745次閱讀
    神器!實現<b class='flag-5'>內網</b><b class='flag-5'>穿透</b>的幾款<b class='flag-5'>工具</b>

    內網穿透工具FRP的快速入門

    在計算機網絡中,內網穿透是一種通過公網建立安全通道,使得位于內網的計算機和服務可以被外部網絡訪問。對程序員而言,內網穿透可以幫助你干什么呢?
    的頭像 發表于 01-02 11:47 ?352次閱讀

    使用cpolar內網穿透本地MariaDB數據庫

    本篇教程將使用cpolar內網穿透本地MariaDB數據庫,并實現在外公網環境下使用navicat圖形化工具遠程連接本地內網的MariaDB數據庫。
    的頭像 發表于 01-22 10:28 ?239次閱讀
    使用cpolar<b class='flag-5'>內網</b><b class='flag-5'>穿透</b>本地MariaDB數據庫
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>