frp 實現內網穿透(Windows 版)

zmxyzmxy1234發表於2020-06-05

frp 中文文件:github.com/fatedier/frp/blob/maste...

一、frp 的作用

利用處於內網或防火牆後的機器,對外網環境提供 http 或 https 服務。

對於 http, https 服務支援基於域名的虛擬主機,支援自定義域名繫結,使多個域名可以共用一個80埠。

利用處於內網或防火牆後的機器,對外網環境提供 tcp 和 udp 服務,例如在家裡通過 ssh 訪問處於公司內網環境內的主機。

二、安裝 frp

  1. github下載地址:github.com/fatedier/frp/releases

    公網、內網伺服器都下載一份。


找到第一條,然後下載frp_windwos_amd64.zip這個(amd64是64系統,386是32位系統,現在電腦基本64位了),比如圖片上的frp_0.33.0_windows_amd64.zip

2、將frp_0.33.0_windows_amd64.zip解壓至任意目錄

3、進入解壓目錄這裡所有 frpc 開頭的檔案都是客戶端檔案,所以全部刪了,我們伺服器只需要 frps 開頭的檔案

4、配置服務端(公網伺服器)
我們開啟frps.ini(我用的notepad++編輯器,記事本也可以)
注意配置檔案不支援註釋,請不要把漢字複製進去

stcp是什麼?
安全地暴露內網服務
對於某些服務來說如果直接暴露於公網上將會存在安全隱患。
使用 stcp(secret tcp) 型別的代理可以避免讓任何人都能訪問到要穿透的服務,但是訪問者也需要執行另外一個 frpc。

以下示例將會建立一個只有自己能訪問到的 tcp 服務代理。

[common]
bind_port = 7000           #與客戶端繫結的進行通訊的埠
vhost_http_port = 6081     #訪問客戶端web服務自定義的埠號

[secret_ssh]
type = stcp
# 只有 sk 一致的使用者才能訪問到此服務
sk = abcdefg
local_ip = 127.0.0.1
local_port = 24567 # 伺服器埠 一定要記得開放

儲存然後開啟cmd進入當前目錄(cmd不會用自行百度),輸入:frps.exe -c ./frps.ini,此時會提示網路防火牆安全警告,點允許

提示 start frps success則服務啟動成功

警告:雲伺服器一定要開放埠,不會開放自行百度,圖中的7000是frp繫結的預設埠要開啟,另外一個是http(用不到可以刪了)

至此服務端配置完成!

5、配置客戶端(內網伺服器),首先刪掉 frps 開標頭檔案檔案,然後再進行配置,編輯 frpc.ini
注意配置檔案不支援註釋,請不要把漢字複製進去

[common]
server_addr = 155.94.169.143   #公網伺服器ip
server_port = 7000            #與服務端bind_port一致
[secret_ssh_visitor]
type = stcp
# stcp 的訪問者
role = visitor
# 要訪問的 stcp 代理的名字
server_name = secret_ssh
sk = abcdefg
# 繫結本地埠用於訪問 TCP 服務
bind_addr = 127.0.0.1
bind_port = 3389


儲存然後執行
windows 使用cmd或者powershell進入當前目錄,執行

./frpc.exe -c ./frpc.ini

6、訪問方式

(1)外網 ssh 訪問內網伺服器(直接使用配置裡面資料演示)

ip:47.93.33.108:6000

(2) 遠端連線windows bind_post要繫結3389,其他的不行
ip:47.93.33.108:24567 (這個是伺服器開放的埠,對映本地的3389)

三、結尾

1.客戶端連線服務端提示訪問被拒絕,則需要服務端開放防火牆埠(學習的話全開就行了,生產環境除外)。

2.其他功能請閱讀 frp 中文文件:github.com/fatedier/frp/blob/maste...

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章