frp客戶端沒有域名如何配置
① 用frp一定要域名嗎
frp要域名,一樓不懂就不要回答。
② frp內網穿透客戶端frpc.ini各配置參數詳解
中文文檔 https://www.cnblogs.com/sanzxcvbnm/p/8508741.html
[必須]標識頭
[common]
是不可或缺的部分
[必須]frps服務端IP
server_addr = 0.0.0.0
0.0.0.0為FRP服務端IP,客戶端要填寫為服務端已配置的對應的IP,或者是服務端的伺服器(VPS)IP。
[必須]frps服務端通訊埠
server_port = 7000
客戶端連接到服務端內網穿透傳輸數據的埠,請改為服務端已配置的對應埠。
[必須]連接認證密鑰-特權模式
privilege_token = www.nat.ee
客戶端連接到FRP服務端的登錄驗證密鑰,請改為服務端已配置的對應密鑰。
記錄運行日誌
日誌存放路徑
log_file = /etc/frp/log/frps.log
請改為需要存放在那裡的正確路徑。
日誌記錄類別
log_level = info
可選:trace, debug, info, warn, error
最多保存多少天日誌
log_max_days = 7
可自定義保存多少天。
你的內網穿透名稱,將顯示為 {名稱}.{對應服務名稱}
user = your_name
請填大小寫字母和數字,不要用中文填寫。
決定第一次登錄失敗時是否退出程序,否則連續登錄到frps服務端
login_fail_exit = true
可選:false,true
默認是true,否則可以不填此參數或者改為false,則持續連接登錄到frps而不退出。
用於連接frps服務端的通訊協議
protocol = tcp
支持tcp和kcp,默認是tcp
注意:kcp需要服務端配置參數已開啟,才支持。
使用tcp流復用,默認為true
tcp_mux = true
可選:false,true
必須與frps服務端已經配置參數相同,否則服務端沒有,可以不填此參數。
內網穿透服務限制最大連接池上限
pool_count = 5
限制本客戶端內網穿透可以創建的總連接池上限,避免大量資源佔用。可自定義。默認為0不限制,或者不填此參數。
注意:假如服務端已配置了限制,而你設置的高於服務端的,則按服務端的為准採取限制。
通過http api設置管理frpc動作的管理地址,例如reload
【上面用於總體對接frps服務端各參數,下面的用於客戶端穿透各應用的配置參數。】
對應穿透服務名稱
[name]
建立每個穿透服務,都需要命名一個此服務的名稱,不能和其他已建立的相同。
穿透協議類型
type = tcp
可選:tcp,udp,http,https,stcp,xtcp
你要穿透什麼應用要搞清楚,此應用是用什麼協議的。
本地監聽IP
local_ip = 127.0.0.1
可以是本地的區域網IP,也可以是本機的127.0.0.1 IP,
例如你的區域網是互通的,你可以在本設備建立穿透區域網其他IP的應用。
本地監聽埠
local_port = 22
用於監聽本地設備需要穿透的埠,比如我要穿透到本機的SSH埠,而SSH埠為22,則這樣理解。
遠程監聽埠
remote_port = 6001
用於frps服務端的,分配建立穿透到內網對應應用的公網埠。
需要frps服務端已開放此埠給frpc客戶端允許對接使用。
例如我可以連接到此(frps服務端IP:埠),則可以穿透到我的內網對應應用服務。
穿透通訊加密
use_encryption = false
可選:false,true
默認為false則不開啟,或者不填此參數,為true則開啟frps服務端和frpc客戶端之間通訊加密。
穿透通訊壓縮
use_compression = false
可選:false,true
默認為false則不開啟,或者不填此參數,為true則開啟frps服務端和frpc客戶端之間通訊壓縮。
分配自定義域名訪問穿透服務
custom_domains = demo.com
用於你的穿透服務的唯一訪問域名,假如沒有域名,則此處請填為frps服務端的伺服器(IP)
自己有多個域名,可以配置不同穿透應用服務,用不同域名,只需要將對應域名解析到frps服務端的伺服器(IP)既可。
也支持泛解析識別,例如將(demo.com)域名已經泛解析到frps服務端的伺服器(IP)
而想通過(abc123.demo.com)訪問到對應穿透服務
則在對應穿透服務,custom_domains參數中填abc123.demo.com
分配對應穿透應用服務唯一的子域名,用於訪問
subdomain = abc123
假如frps服務端已經配置了subdomain_host參數域名,並且已經泛(*)解析到frps服務端的伺服器(VPS)IP,則可以使用此參數,否則不能用。
例如已經泛解析(demo.com)域名並且frps服務端配置好的,使用此subdomain參數,只需要填子域名,而不需要填(demo.com)
subdomain = 填abc123,則可以通過(abc123.demo.com)訪問
為HTTP協議,添加HTTP用戶名和密碼安全認證
http_user = admin
自定義用戶名
http_pwd = admin
自定義密碼
僅支持http,https類型協議。
例如我的WEB頁面,訪問前,需要進行驗證,才可以訪問。可以添加此參數。
安全地暴露內網服務
對於某些服務來說如果直接暴露於公網上將會存在安全隱患。
sk = abcdefg
可自定義
此參數用於進一步驗證,本地訪問穿透服務的安全連接,需要雙方frpc客戶端都需要配置,僅適用於stcp和xtcp協議類型。
修改 Host Header
通常情況下 frp 不會修改轉發的任何數據。但有一些後端服務會根據 http 請求 header 中的 host 欄位來展現不同的網站,例如 nginx 的虛擬主機服務,啟用 host-header 的修改功能可以動態修改 http 請求中的 host 欄位。該功能僅限於 http 類型的代理。
原來 http 請求中的 host 欄位 test.yourdomain.com 轉發到後端服務時會被替換為 dev.yourdomain.com。
URL 路由
frp 支持根據請求的 URL 路徑路由轉發到不同的後端服務。
通過配置文件中的 locations 欄位指定一個或多個 proxy 能夠匹配的 URL 前綴(目前僅支持最大前綴匹配,之後會考慮正則匹配)。例如指定 locations = /news,則所有 URL 以 /news 開頭的請求都會被轉發到這個服務。
按照上述的示例配置後,web.yourdomain.com 這個域名下所有以 /news 以及 /about 作為前綴的 URL 請求都會被轉發到 web02,其餘的請求會被轉發到 web01。
通過代理連接 frps
在只能通過代理訪問外網的環境內,frpc 支持通過 HTTP PROXY 和 frps 進行通信。
可以通過設置 HTTP_PROXY 系統環境變數或者通過在 frpc 的配置文件中設置 http_proxy 參數來使用此功能。
僅在 protocol = tcp 時生效
插件
默認情況下,frpc 只會轉發請求到本地 tcp 或 udp 埠。
插件模式是為了在客戶端提供更加豐富的功能,目前內置的插件有 unix_domain_socket、http_proxy、socks5。
通過 plugin 指定需要使用的插件,插件的配置參數都以 plugin_ 開頭。使用插件後 local_ip 和 local_port 不再需要配置。
使用 http_proxy 插件的示例:
范圍埠映射
在 frpc 的配置文件中可以指定映射多個埠,目前只支持 tcp 和 udp 的類型。
這一功能通過 range: 段落標記來實現,客戶端會解析這個標記中的配置,將其拆分成多個 proxy,每一個 proxy 以數字為後綴命名。
例如要映射本地 6000-6005, 6007 這6個埠,主要配置如下:
實際連接成功後會創建 6 個 proxy,命名為 test_tcp_0, test_tcp_1 ... test_tcp_5。
③ 樹莓派使用FRP實現內網穿透教程
簡單說就是內網中的一台計算機具有自己的內部IP,外網的計算機具有公共的IP,而內部IP是無法直接通過外網來訪問的,這就需要一種方式來將外網的IP轉化為內部的合法IP來進行合法訪問。
frp 是一個可用於內網穿透的高性能的反向代理應用,支持 tcp, udp, http, https 協議。
VPS(Virtual Private Server 虛擬專用伺服器)技術,將一台 伺服器 分割成多個虛擬專享伺服器的優質服務。實現VPS的技術分為容器技術,和 虛擬化技術 。在容器或虛擬機中,每個VPS都可分配獨立公網IP地址、獨立操作系統、實現不同VPS間磁碟空間、內存、CPU資源、進程和系統配置的隔離,為用戶和應用程序模擬出「獨占」使用計算資源的體驗。VPS可以像獨立伺服器一樣,重裝操作系統,安裝程序,單獨重啟伺服器。VPS為使用者提供了管理配置的自由,可用於企業虛擬化,也可以用於IDC資源租用。
公網伺服器與FRP構成一個橋梁.我們通過它將可以訪問我們放置在內網的樹莓派.伺服器
VirMach 它是一家非常便宜的支持linux VPS和Windows VPS 美國主機商
購買鏈接(也可以選擇其他家)
買好以後
會收到3個郵件
最上面的郵件裡面就是你的IP還有賬號密碼
點擊我的服務
然後點擊下方按鍵
進入到伺服器後台
打開PUTTY輸入你的ip(公眾號發送putty即可獲得該軟體)
輸入賬戶root還有初始密碼(郵件裡面有)
首次登錄到伺服器終端
修改登錄密碼
直接輸入
輸入兩遍,新密碼即可。
利用FXP(公眾號發送「fxp」即可獲得該軟體」)把下好的frp安裝包上傳到伺服器(公眾號發送「frp」即可獲得。
如果你的VPS和本教程的不一樣可以再下面網址選擇適合你VPS的FRP
登陸FXP用的是你的伺服器IP以及你剛才修改的密碼
文件解壓後,一般都含有frps(frp服務端運行文件)、frpc(frp客戶端運行文件)、frps.ini(frp服務端配置文件)、frpc.ini(frp客戶端配置文件),以及frp_full.ini(frp全部配置文件解釋說明和參考。)
在伺服器終端輸入以下指令
在 frps.ini 中輸入:
[common]部分是必須有的配置
其中bind_port是自己設定的frp服務端埠
dashboard_port_number 改為一個特定的埠號,如8000,如此便可以通過 http://yourip:8000 來訪問 frps 的網頁控制台頁面.
dashboard_user 和 dashboard_pwd要填寫一個自定義的用戶名和密碼,用於在訪問 frps 控制台頁面時輸入.
保存上面的配置後,使用以下指令啟動frp服務端。
在瀏覽器輸入「IP:7500」可以看到你的FRP的後台
樹莓派正常登陸putty,輸入以下指令
寫入下面內容
注意
這里是用VNC舉例子,你也可以做域名的映射
輸入下面指令運行
成功
我們開始用VNC來測試一下是否成功
可以用你的手機的VNC或者是電腦的VNC進行登陸測試(不要和樹莓派連接在同一網路)
還可以在我們剛才的FRP後台看一看埠的情況
④ frp穿透NAS如何訪問NAS里的ftp
FTP分主動模式和被動模式情況如下:
主動FTP:
命令連接:客戶端 >1023埠 -> 伺服器 21埠
數據連接:客戶端 >1023埠 <- 伺服器 20埠
被動FTP:
命令連接:客戶端 >1023埠 -> 伺服器 21埠
數據連接:客戶端 >1023埠 -> 伺服器 >1023埠
所以說你使用內網穿透那麼配置就很關鍵了,如果說你的內網穿透軟體只支持一個埠或者只支持單向埠,在被動模式下,伺服器是不知道客戶機是連接的那個埠,自然就找不到了。所以說配置FTP首先要學習FTP理論,小白上手就直接配肯定出問題。
⑤ Ngrok有時很不穩定,有什麼更好的內網穿透方法
以下內容來自公眾號逆鋒起筆,關注每日干貨及時送達
原文:v0w.top/2020/08/11/IntranetProxy
前言
本文以滲透的視角,總結幾種個人常用的內網穿透,內網代理工具,介紹其簡單原理和使用方法。
1、nps-npc1.1 簡介
nps是一款輕量級、高性能、功能強大的內網穿透代理伺服器。目前支持tcp、udp流量轉發,可支持任何tcp、udp上層協議(訪問內網網站、本地支付介面調試、ssh訪問、遠程桌面,內網dns解析等等……),此外還支持內網http代理、內網socks5代理、p2p等,並帶有功能強大的web管理端。
一台有公網IP的伺服器(VPS)運行服務端(NPS)
一個或多個運行在內網的伺服器或者PC運行客戶端(NPC)
- 1.2 特點
Go語言編寫
支持跨平台
支持多種協議的代理
web管理端
- 1.3 使用方法
- frp 是一個專注於內網穿透的高性能的反向代理應用,支持 TCP、UDP、HTTP、HTTPS 等多種協議。可以將內網服務以安全、便捷的方式通過具有公網 IP 節點的中轉暴露到公網。
- 2.2 特點
客戶端服務端通信支持 TCP、KCP 以及 Websocket 等多種協議。
埠復用,多個服務通過同一個服務端埠暴露。
跨平台,但是支持的比nps少一點
多種插件,提供很多功能
- 2.3 使用方法
- 以下內容摘自:https://segmentfault.com/a/11900000218768361. 通過 rdp 訪問家裡的機器
- EW 是一套攜帶型的網路穿透工具,具有 SOCKS v5服務架設和埠轉發兩大核心功能,可在復雜網路環境下完成網路穿透。但是,現在工具已經不更新了。。。
- 3.2 特點
輕量級,C語言編寫
可以設置多級代理
跨平台
但是只支持Socks5代理
- 3.3 使用方法以下使用方法均摘自:http://rootkiter.com/EarthWorm/
- 4.2 特點
官方維護,一般較為穩定
跨平台,閉源
有流量記錄和重發功能
- 4.3 使用方法
進入ngrok官網(https://ngrok.com/),注冊ngrok賬號並下載ngrok;
根據官網給定的授權碼,運行如下授權命令;
./ngrok authtoken 1hAotxhmORtzCYvUc3BsxDBPh1H_******************
./ngrok http 80即可將機器的80埠http服務暴露到公網,並且會提供一個公網域名。
內網滲透之內網穿透
開源內網穿透工具 frp 簡單使用教程
http://rootkiter.com/EarthWorm/
https://github.com/ehang-io/nps/releases
NPS
安裝配置
找到自己伺服器相應版本的server:
cd ~
wget https://github.com/cnlh/nps/releases/download/v0.23.2/linux_amd64_server.tar.gz
tar xzvf linux_amd64_server.tar.gz
cd ~/nps
在nps目錄下面會有一個nps可執行文件、conf配置目錄和web網頁目錄,我們只需要修改conf/nps.conf即可:
vim conf/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
./nps test|start|stop|restart|status 測試配置文件|啟動|停止|重啟|狀態
#Windows
nps.exe test|start|stop|restart|status 測試配置文件|啟動|停止|重啟|狀態
NPC
./npc -server=你的IP:8024 -vkey=唯一驗證密碼 -type=tcp
新建好客戶端後,也可以在+中看到,詳細的客戶端連接命令:
在客戶端界面可以通過新增的方式添加客戶端連接,每一個連接的vkey都是唯一區分的。
每一個客戶端,在建立連接後,都可以建立多個不同協議的隧道,這一個個隧道就是不同的代理了。
通過不同的協議和埠就可以連接代理的內網機器。
2、frp
2.1 簡介
下載: https://github.com/fatedier/frp/releases
1.修改 frps.ini 文件,為了安全起見,這里最好配置一下身份驗證,服務端和客戶端的 common 配置中的token參數一致則身份驗證通過:
# frps.ini
[common]
bind_port = 7000
# 用於身份驗證,請自行修改,要保證服務端與客戶端一致
token = abcdefgh
2.啟動 frps:
./frps -c ./frps.ini
3.修改 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
4.啟動 frpc:
./frpc -c ./frpc.ini
5.通過 rdp 訪問遠程的機器,地址為:
x.x.x.x:6000
開機自啟
針對 Windows 系統,為了便於使用,可以配置一下開機的時候靜默啟動。
1.在 frpc.exe 的同級目錄創建一個 start_frpc.vbs:
'start_frpc.vbs
'請根據實際情況修改路徑
CreateObject("WScript.Shell").Run """D:Program Filesfrp_windows_amd64frpc.exe""" & "-c" & """D:Program Filesfrp_windows_amd64frpc.ini""",0
2.復制 start_frpc.vbs 文件,打開以下目錄,注意將
改為你的用戶名:
C:Users\ MenuProgramsStartup
3.滑鼠右擊,粘貼為快捷方式即可。
2. 通過 SSH 訪問公司內網機器
frps 的部署步驟同上。
1.啟動 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
2.通過 SSH 訪問內網機器,假設用戶名為 test:
ssh -oPort=6000 [email protected]
3. 通過自定義域名訪問部署於內網的 Web 服務
1.修改 frps.ini 文件,設置 http 訪問埠為 8080:
# frps.ini
[common]
bind_port = 7000
vhost_http_port = 8080
# 用於身份驗證,請自行修改,要保證服務端與客戶端一致
token = abcdefgh
2.啟動 frps:
./frps -c ./frps.ini
3.修改 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
4.啟動 frpc:
./frpc -c ./frpc.ini
5 .將www.yourdomain.com的域名 A 記錄解析到 IPx.x.x.x,如果伺服器已經有對應的域名,也可以將 CNAME 記錄解析到伺服器原先的域名。
6.通過瀏覽器訪問http://www.yourdomain.com:8080即可訪問到處於內網機器上的 Web 服務。
4. 對外提供簡單的文件訪問服務
通過static_file插件可以對外提供一個簡單的基於 HTTP 的文件訪問服務。
frps 的部署步驟同上。
1.啟動 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
2.通過瀏覽器訪問http://x.x.x.x:6000/static/來查看位於/tmp/file目錄下的文件,會要求輸入已設置好的用戶名和密碼。
常用功能
統計面板(Dashboard)
通過瀏覽器查看 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。
加密與壓縮
這兩個功能默認是不開啟的,需要在 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 資源。
[TLS
從 v0.25.0 版本開始 frpc 和 frps 之間支持通過 TLS 協議加密傳輸。通過在frpc.ini的common中配置tls_enable = true來啟用此功能,安全性更高。
為了埠復用,frp 建立 TLS 連接的第一個位元組為 0x17。
注意:啟用此功能後除 xtcp 外,不需要再設置 use_encryption。
代理限速
目前支持在客戶端的代理配置中設置代理級別的限速,限制單個 proxy 可以佔用的帶寬。
# frpc.ini
[ssh]
type = tcp
local_port = 22
remote_port = 6000
bandwidth_limit = 1MB
在代理配置中增加bandwidth_limit欄位啟用此功能,目前僅支持MB和KB單位。
范圍埠映射
在 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、ew3.1 簡介
以下所有樣例,如無特殊說明代理埠均為1080,服務均為SOCKSv5代理服務.
該工具共有 6 種命令格式(ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran)。
1. 正向 SOCKS v5 伺服器
$ ./ew -s ssocksd -l 1080
2. 反彈 SOCKS v5 伺服器
這個操作具體分兩步:
a) 先在一台具有公網 ip 的主機A上運行以下命令:
$ ./ew -s rcsocks -l 1080 -e 8888
b) 在目標主機B上啟動 SOCKS v5 服務 並反彈到公網主機的 8888埠
$ ./ew -s rssocks -d 1.1.1.1 -e 8888
成功。
3. 多級級聯
工具中自帶的三條埠轉發指令, 它們的參數格式分別為:
$ ./ew -s lcx_listen -l 1080 -e 8888
$ ./ew -s lcx_tran -l 1080 -f 2.2.2.3 -g 9999
$ ./ew -s lcx_slave -d 1.1.1.1 -e 8888 -f 2.2.2.3 -g 9999
通過這些埠轉發指令可以將處於網路深層的基於TCP的服務轉發至根前,比如 SOCKS v5。首先提供兩個「二級級聯」本地SOCKS測試樣例:
a)lcx_tran的用法
$ ./ew -s ssocksd -l 9999
$ ./ew -s lcx_tran -l 1080 -f 127.0.0.1 -g 9999
b)lcx_listen、lcx_slave的用法
$ ./ew -s lcx_listen -l 1080 -e 8888
$ ./ew -s ssocksd -l 9999
$ ./ew -s lcx_slave -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999
再提供一個「三級級聯」的本地SOCKS測試用例以供參考
$ ./ew -s rcsocks -l 1080 -e 8888
$ ./ew -s lcx_slave -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999
$ ./ew -s lcx_listen -l 9999 -e 7777
$ ./ew -s rssocks -d 127.0.0.1 -e 7777
數據流向:SOCKS v5 -> 1080 -> 8888 -> 9999 -> 7777 -> rssocks
4、ngrok4.1 簡介
可以通過官網的UI界面查看數據包和流量等等(但是要付費==、)
還可以通過一些命令將內網的文件和其他TCP服務 暴露到公網中。
有授權的設置文件共享
ngrok http -auth="user:password" file:///Users/alan/share
無授權的設置文件共享
ngrok http "file:///C:\Users\alan\Public Folder"
將主機的3389的TCP埠暴露到公網
ngrok tcp 3389
更多使用方法參考:https://ngrok.com/docs
⑥ 內網穿透|FRP|NGROK|一步搞定
內網穿透從字面上來說就是將本地的伺服器映射到外網可訪問
設想下
如果有已知的公網伺服器,那內網的本地服務就可以映射到外網了。
如果沒有已知的公網伺服器,那隻能代理到外網的伺服器訪問即可。
ps: 公網伺服器與可訪問外網的伺服器是有區別的。區別在於用戶訪問某寶服務,先是到公網伺服器然後再轉發的淘寶服務。所以可訪問外網的伺服器不等於公網伺服器。
換句話說直接將伺服器部署在與公網伺服器相通的機器上不就可以了,我也是這樣想的。所以就有生產環境與測試環境,其實內網穿透還是存在安全隱患的,內網穿透大部分應用於測試環境,比如常用的微信相關開發。
最後我們來聊聊FRP與NGROK
兩者的原理都一樣,通過解析過的域名做本地服務埠映射。
Ngrok相對比較簡單,只需要能訪問外網的機器即可。可參考 http://ngrok.cc 裡面有教程, 但是唯一不足的是免費分配的域名容易被微信限制,如果不是做微信相關的服務可忽略。
接下來就是FRP,不僅僅需要能訪問外網的機器,還需要一台公網伺服器。如果需要做域名相關的測試,就需要申請域名解析到公網伺服器。可參考 https://gofrp.org/ 裡面有文檔。強調下服務端必須部署在公網伺服器上才行。個人感覺功能也比Ngrok強大些,穩定些。
⑦ 在Win10系統下如何實現內網的穿透
內網穿透有何用處?
寬頻為內網IP的用戶即內網用戶,以下范圍內的IP地址屬於內網保留地址,即不是公網IP,而是屬於內網IP:
10.0.0.0 - 10.255.255.255;
100.64.0.0 - 100.127.255.255;
172.16.0.0 - 172.31.255.255;
192.168.0.0 - 192.168.255.255。
例如某小區用戶均被分配的內網IP,通過一個公共的網關訪問外網,小區內每家用戶的計算機均可連接外網,但是Internet上的其他用戶卻無法對內網的計算機發送連接請求,自然也就無法訪問內網計算機所搭建的網站,也無法為內網計算機提供僅公網IP才能支持的下載、傳輸服務,例如BT下載、電驢等。
內網穿透即NAT穿透,通過埠映射將一台主機的內網(LAN)IP地址映射成一個公網(WAN)IP地址,讓互聯網上的用戶可以通過此公網IP地址訪問特定的內網主機所提供的網站或者伺服器。
內網穿透教程:花生殼DDNS埠映射
1、花生殼客戶端,沒有護照的用戶需要先注冊花生殼護照。
2、在Windows10系統內安裝花生殼,完成後登陸。
3、點擊客戶端內網映射,則跳轉至花生殼管理的內網映射web頁面,可以直接在網頁中對域名進行添加映射,即使不在伺服器現場,也可以遠程管理。
下面介紹內網映射添加步驟:
1、點擊【內網映射】——【添加映射】。
2、在添加映射頁面,填寫好「應用名稱」,「內網伺服器IP」,「內網服務埠」以及選擇「外網埠」形式,點擊確定即可。
3、添加成功後,會生成一個外網訪問地址。
4、在瀏覽器地址欄輸入外網訪問地址,即可成功訪問內網主機搭建的服務和應用。
5、搞定埠映射之後,內網用戶也能同公網用戶一樣隨心所欲使用強大的互聯網服務了。除了搭建網站之外,完成內網穿透的用戶還可以輕松實現遠程桌面的搭建和訪問、遠程監控攝像頭、自己開服玩游戲、搭建各類辦公系統等等。
⑧ 如何讓內網的CENTOS伺服器能用域名訪問
利用frp穿透技術,來實現你要的功能,不需要公網IP。畢竟現在公網IP運營商有很多限制:
以下文章轉載自吳昊博客
frp內網穿透是通過一個帶有公網IP的伺服器進行中轉,對被控主機實現反向代理,用戶通過訪問frps(中轉伺服器)來實現對frpc(被控主機)的遠程訪問。
frp流程圖如下:
frp項目地址:https://github.com/fatedier/frp
本實驗環境以阿里雲伺服器作為中轉機,中轉伺服器使用Centos7.6,被控主機使用Centos7.6,用戶使用Windows10由於網路原因,文中鏈接已經替換成了本地鏈接,如不放心,請自行去GitHub下載
frps中轉伺服器配置
1、下載frp
在一台有公網IP的主機上配置frps,我這里以阿里雲Centos7.x主機為例
1 wget http://down.whsir.com/downloads/frp_0.27.0_linux_amd64.tar.gz
2 tar xf frp_0.27.0_linux_amd64.tar.gz
3 mv frp_0.27.0_linux_amd64 /usr/local
4 cd /usr/local/frp_0.27.0_linux_amd64
5 rm -f frpc*
2、配置frps
這里使用最基礎的配置,bind_port 表示frp面板的監控埠,dashboard_user表示面板的登陸帳號,dashboard_pwd表示面板的登陸密碼,其它不動。
1 vi
frps.ini
配置文件說明:
1 [common]
2 bind_port = 7000
3
4 dashboard_user = whsir
5 dashboard_pwd = blog.whsir.com
6 dashboard_port = 8000
3、啟動frps
配置啟動服務
1 vi /etc/systemd/system/frps.service
1 [Unit]
2 Description=frps daemon
3 After=syslog.target network.target
4 Wants=network.target
5
6 [Service]
7 Type=simple
8 ExecStart=/usr/local/frp_0.27.0_linux_amd64/frps -c /usr/local/frp_0.27.0_linux_amd64/frps.ini
9
10 [Install]
11 WantedBy=multi-user.target
技行以下兩個命令
1 systemctl enable frps
2 systemctl start frps
4、訪問監控平台
http://公網IP:8000
賬號whsir
密碼blog.whsir.com
如果訪問不了,請使用ss -lnt命令檢查埠是否啟動,是否因為防火牆原因攔截。
至此frps中轉伺服器配置完成
frpc內網主機配置
1、內網主機下載frp
1 wget http://down.whsir.com/downloads/frp_0.27.0_linux_amd64.tar.gz
2 tar xf frp_0.27.0_linux_amd64.tar.gz
3 mv frp_0.27.0_linux_amd64 /usr/local
4 cd /usr/local/frp_0.27.0_linux_amd64
5 rm -f frps*
2、配置frpc
其中x.x.x.x表示frps中轉伺服器IP地址
ssh欄位:local_port = 22示被控(內網)主機的ssh埠,remote_port = 6000表示ssh中轉埠
web欄位:local_port = 80表示被控(內網)主機的web埠,remote_port = 8081表示web中轉埠
1 vi frpc.ini
1 [common]
2 server_addr = x.x.x.x
3 server_port = 7000
4
5 [ssh]
6 type = tcp
7 local_ip = 127.0.0.1
8 local_port = 22
9 remote_port = 6000
10
11 [web]
12 type = tcp
13 local_ip = 127.0.0.1
14 local_port = 80
15 remote_port = 8081
3、啟動frpc
配置啟動服務
1 vi /etc/systemd/system/frpc.service
1 [Unit]
2 Description=frpc daemon
3 After=syslog.target network.target
4 Wants=network.target
5
6 [Service]
7 Type=simple
8 ExecStart=/usr/local/frp_0.27.0_linux_amd64/frpc -c /usr/local/frp_0.27.0_linux_amd64/frpc.ini
9
10 [Install]
11 WantedBy=multi-user.target
執行如下命令
1 systemctl enable frpc
2 systemctl start frpc
至此frpc被控主機配置完成
此時可通過x.x.x.x:6000連接內網ssh,通過http://x.x.x.x:8081訪問內網主機web,訪問速度取決於帶寬
這時候,內網主機就映射到外網去了,然後,用域名指定你的frp主機ip就可以了。這樣就可以實現你的功能了。
⑨ 內網穿透工具用什麼樣的
1.1 簡介
nps是一款輕量級、高性能、功能強大的內網穿透代理伺服器。目前支持tcp、udp流量轉發,可支持任何tcp、udp上層協議(訪問內網網站、本地支付介面調試、ssh訪問、遠程桌面,內網dns解析等等……),此外還支持內網http代理、內網socks5代理、p2p等,並帶有功能強大的web管理端。
一台有公網IP的伺服器(VPS)運行服務端(NPS)
一個或多個運行在內網的伺服器或者PC運行客戶端(NPC)
1.2 特點
Go語言編寫
支持跨平台
支持多種協議的代理
web管理端
1.3 使用方法
https://github.com/ehang-io/nps/releases
NPS
安裝配置
找到自己伺服器相應版本的server:
在nps目錄下面會有一個nps可執行文件、conf配置目錄和web網頁目錄,我們只需要修改即可:
需要改一下下面的幾個參數,
修改 可以更改 NPC的連接埠。比如我們拿到一台許可權受限的伺服器,有防火牆,可能只有部分埠(80,443)可以出網,就需要修改成出網埠。
啟動
NPC
新建好客戶端後,也可以在中看到,詳細的客戶端連接命令:
web管理端
在客戶端界面可以通過的方式添加客戶端連接,每一個連接的vkey都是唯一區分的。
每一個客戶端,在建立連接後,都可以建立多個不同協議的隧道,這一個個隧道就是不同的代理了。
通過不同的協議和埠就可以連接代理的內網機器。
frp
2.1 簡介
frp 是一個專注於內網穿透的高性能的反向代理應用,支持 TCP、UDP、HTTP、HTTPS 等多種協議。可以將內網服務以安全、便捷的方式通過具有公網 IP 節點的中轉暴露到公網。
2.2 特點
客戶端服務端通信支持 TCP、KCP 以及 Websocket 等多種協議。
埠復用,多個服務通過同一個服務端埠暴露。
跨平台,但是支持的比nps少一點
多種插件,提供很多功能
2.3 使用方法
下載:https://github.com/fatedier/frp/releases
以下內容摘自:https://segmentfault.com/a/1190000021876836
1. 通過 rdp 訪問家裡的機器
1.修改 frps.ini 文件,為了安全起見,這里最好配置一下身份驗證,服務端和客戶端的 common 配置中的 參數一致則身份驗證通過:
2. 啟動 frps:
3. 修改 frpc.ini 文件,假設 frps 所在伺服器的公網 IP 為 x.x.x.x:
4. 啟動 frpc:
5.通過 rdp 訪問遠程的機器,地址為:
開機自啟
針對 Windows 系統,為了便於使用,可以配置一下開機的時候靜默啟動。
1.在 frpc.exe 的同級目錄創建一個 start_frpc.vbs:
2.復制 start_frpc.vbs 文件,打開以下目錄,注意將
改為你的用戶名:
3.滑鼠右擊,粘貼為快捷方式即可。
2. 通過 SSH 訪問公司內網機器
frps 的部署步驟同上。
1.啟動 frpc,配置如下:
2.通過 SSH 訪問內網機器,假設用戶名為 test:
3. 通過自定義域名訪問部署於內網的 Web 服務
有時想要讓其他人通過域名訪問或者測試我們在本地搭建的 Web 服務,但是由於本地機器沒有公網 IP,無法將域名解析到本地的機器,通過 frp 就可以實現這一功能,以下示例為 http 服務,https 服務配置方法相同, vhost_http_port 替換為 vhost_https_port, type 設置為 https 即可。
1.修改 frps.ini 文件,設置 http 訪問埠為 8080:
2.啟動 frps:
3.修改 frpc.ini 文件,假設 frps 所在的伺服器的 IP 為 x.x.x.x,local_port 為本地機器上 Web 服務對應的埠, 綁定自定義域名 :
4.啟動 frpc:
5.將 的域名 A 記錄解析到 IP ,如果伺服器已經有對應的域名,也可以將 CNAME 記錄解析到伺服器原先的域名。
6.通過瀏覽器訪問 即可訪問到處於內網機器上的 Web 服務。
4. 對外提供簡單的文件訪問服務
通過 插件可以對外提供一個簡單的基於 HTTP 的文件訪問服務。
frps 的部署步驟同上。
1.啟動 frpc,啟用 插件,配置如下:
2.通過瀏覽器訪問 來查看位於 目錄下的文件,會要求輸入已設置好的用戶名和密碼。
常用功能
統計面板(Dashboard)
通過瀏覽器查看 frp 的狀態以及代理統計信息展示。
註:Dashboard 尚未針對大量的 proxy 數據展示做優化,如果出現 Dashboard 訪問較慢的情況,請不要啟用此功能。
需要在 frps.ini 中指定 dashboard 服務使用的埠,即可開啟此功能:
打開瀏覽器通過 訪問 dashboard 界面,用戶名密碼默認為 。
加密與壓縮
這兩個功能默認是不開啟的,需要在 frpc.ini 中通過配置來為指定的代理啟用加密與壓縮的功能,壓縮演算法使用 snappy:
如果公司內網防火牆對外網訪問進行了流量識別與屏蔽,例如禁止了 SSH 協議等,通過設置 ,將 frpc 與 frps 之間的通信內容加密傳輸,將會有效防止流量被攔截。
如果傳輸的報文長度較長,通過設置 對傳輸內容進行壓縮,可以有效減小 frpc 與 frps 之間的網路流量,加快流量轉發速度,但是會額外消耗一些 CPU 資源。
⑩ frp 內網穿透不成功
是的,frp和Ngrok都是需要技術性操作的,你可以試試nas伴侶,零遁的,比較簡單